{
 "contractName": "Realitio",
 "abi": [
  {
   "constant": false,
   "inputs": [],
   "name": "withdraw",
   "outputs": [],
   "payable": false,
   "stateMutability": "nonpayable",
   "type": "function",
   "signature": "0x3ccfd60b"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "",
     "type": "uint256"
    }
   ],
   "name": "template_hashes",
   "outputs": [
    {
     "name": "",
     "type": "bytes32"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function",
   "signature": "0x4e60f883"
  },
  {
   "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",
   "signature": "0x590158a7"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "",
     "type": "address"
    }
   ],
   "name": "arbitrator_question_fees",
   "outputs": [
    {
     "name": "",
     "type": "uint256"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function",
   "signature": "0x6fa42742"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "",
     "type": "address"
    }
   ],
   "name": "balanceOf",
   "outputs": [
    {
     "name": "",
     "type": "uint256"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function",
   "signature": "0x70a08231"
  },
  {
   "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",
   "signature": "0x839df945"
  },
  {
   "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",
   "signature": "0x95addb90"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "",
     "type": "uint256"
    }
   ],
   "name": "templates",
   "outputs": [
    {
     "name": "",
     "type": "uint256"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function",
   "signature": "0xbc525652"
  },
  {
   "inputs": [],
   "payable": false,
   "stateMutability": "nonpayable",
   "type": "constructor",
   "signature": "constructor"
  },
  {
   "anonymous": false,
   "inputs": [
    {
     "indexed": false,
     "name": "arbitrator",
     "type": "address"
    },
    {
     "indexed": false,
     "name": "amount",
     "type": "uint256"
    }
   ],
   "name": "LogSetQuestionFee",
   "type": "event",
   "signature": "0xdca703d022171824d3d639b33c1525fd2338120b4cfb89507c0b59596893acda"
  },
  {
   "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",
   "signature": "0xb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e4"
  },
  {
   "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",
   "signature": "0xfe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c"
  },
  {
   "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",
   "signature": "0x54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab66"
  },
  {
   "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",
   "signature": "0xe47ca4ebbbc2990134d1168821f38c5e177f3d5ee564bffeadeaa351905e6221"
  },
  {
   "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",
   "signature": "0xa7b2d313bc7a062e30b2c3b811aa4c9faf09755a6b4ea3bf42deff920944332f"
  },
  {
   "anonymous": false,
   "inputs": [
    {
     "indexed": true,
     "name": "question_id",
     "type": "bytes32"
    },
    {
     "indexed": true,
     "name": "user",
     "type": "address"
    }
   ],
   "name": "LogNotifyOfArbitrationRequest",
   "type": "event",
   "signature": "0x75d7939999bc902187c4aed400872883e445145f1983539166f783fa040b4762"
  },
  {
   "anonymous": false,
   "inputs": [
    {
     "indexed": true,
     "name": "question_id",
     "type": "bytes32"
    },
    {
     "indexed": true,
     "name": "answer",
     "type": "bytes32"
    }
   ],
   "name": "LogFinalize",
   "type": "event",
   "signature": "0x18d760beffe3717270cd90d9d920ec1a48c194e9ad7bba23eb1c92d3eb974f97"
  },
  {
   "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",
   "signature": "0x9c121aff33b50c1a53fef034ebec5f83da2d5a5187048f9c76c397ba27c1a1a6"
  },
  {
   "anonymous": false,
   "inputs": [
    {
     "indexed": true,
     "name": "user",
     "type": "address"
    },
    {
     "indexed": false,
     "name": "amount",
     "type": "uint256"
    }
   ],
   "name": "LogWithdraw",
   "type": "event",
   "signature": "0x4ce7033d118120e254016dccf195288400b28fc8936425acd5f17ce2df3ab708"
  },
  {
   "constant": false,
   "inputs": [
    {
     "name": "fee",
     "type": "uint256"
    }
   ],
   "name": "setQuestionFee",
   "outputs": [],
   "payable": false,
   "stateMutability": "nonpayable",
   "type": "function",
   "signature": "0x4df6ca2a"
  },
  {
   "constant": false,
   "inputs": [
    {
     "name": "content",
     "type": "string"
    }
   ],
   "name": "createTemplate",
   "outputs": [
    {
     "name": "",
     "type": "uint256"
    }
   ],
   "payable": false,
   "stateMutability": "nonpayable",
   "type": "function",
   "signature": "0x83bf4609"
  },
  {
   "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": true,
   "stateMutability": "payable",
   "type": "function",
   "signature": "0xa1130d04"
  },
  {
   "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": true,
   "stateMutability": "payable",
   "type": "function",
   "signature": "0x762c38fd"
  },
  {
   "constant": false,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    }
   ],
   "name": "fundAnswerBounty",
   "outputs": [],
   "payable": true,
   "stateMutability": "payable",
   "type": "function",
   "signature": "0x59245ff3"
  },
  {
   "constant": false,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    },
    {
     "name": "answer",
     "type": "bytes32"
    },
    {
     "name": "max_previous",
     "type": "uint256"
    }
   ],
   "name": "submitAnswer",
   "outputs": [],
   "payable": true,
   "stateMutability": "payable",
   "type": "function",
   "signature": "0x77f325df"
  },
  {
   "constant": false,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    },
    {
     "name": "answer_hash",
     "type": "bytes32"
    },
    {
     "name": "max_previous",
     "type": "uint256"
    },
    {
     "name": "_answerer",
     "type": "address"
    }
   ],
   "name": "submitAnswerCommitment",
   "outputs": [],
   "payable": true,
   "stateMutability": "payable",
   "type": "function",
   "signature": "0xd7cff986"
  },
  {
   "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",
   "signature": "0x4dc266b4"
  },
  {
   "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",
   "signature": "0xf6a94ecb"
  },
  {
   "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",
   "signature": "0xfe92049d"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    }
   ],
   "name": "isFinalized",
   "outputs": [
    {
     "name": "",
     "type": "bool"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function",
   "signature": "0x7f8d429e"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    }
   ],
   "name": "getFinalAnswer",
   "outputs": [
    {
     "name": "",
     "type": "bytes32"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function",
   "signature": "0xa462fb7b"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    }
   ],
   "name": "resultFor",
   "outputs": [
    {
     "name": "",
     "type": "bytes32"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function",
   "signature": "0xd09cc57e"
  },
  {
   "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",
   "signature": "0x12a203c3"
  },
  {
   "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",
   "signature": "0x1101a0fd"
  },
  {
   "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",
   "signature": "0x28828b1e"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    }
   ],
   "name": "getContentHash",
   "outputs": [
    {
     "name": "",
     "type": "bytes32"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function",
   "signature": "0x51577ea9"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    }
   ],
   "name": "getArbitrator",
   "outputs": [
    {
     "name": "",
     "type": "address"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function",
   "signature": "0x2518904c"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    }
   ],
   "name": "getOpeningTS",
   "outputs": [
    {
     "name": "",
     "type": "uint32"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function",
   "signature": "0x9e63fa6a"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    }
   ],
   "name": "getTimeout",
   "outputs": [
    {
     "name": "",
     "type": "uint32"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function",
   "signature": "0x9f1025c6"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    }
   ],
   "name": "getFinalizeTS",
   "outputs": [
    {
     "name": "",
     "type": "uint32"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function",
   "signature": "0xacae8f4e"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    }
   ],
   "name": "isPendingArbitration",
   "outputs": [
    {
     "name": "",
     "type": "bool"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function",
   "signature": "0x924532fb"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    }
   ],
   "name": "getBounty",
   "outputs": [
    {
     "name": "",
     "type": "uint256"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function",
   "signature": "0x2417395c"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    }
   ],
   "name": "getBestAnswer",
   "outputs": [
    {
     "name": "",
     "type": "bytes32"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function",
   "signature": "0x8d552d46"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    }
   ],
   "name": "getHistoryHash",
   "outputs": [
    {
     "name": "",
     "type": "bytes32"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function",
   "signature": "0x82ffa9f7"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    }
   ],
   "name": "getBond",
   "outputs": [
    {
     "name": "",
     "type": "uint256"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function",
   "signature": "0x26d6c97b"
  }
 ],
 "bytecode": "0x608060405260006001553480156200001657600080fd5b506200008d606060405190810160405280603f81526020017f7b227469746c65223a20222573222c202274797065223a2022626f6f6c222c2081526020017f2263617465676f7279223a20222573222c20226c616e67223a20222573227d0081525062000308640100000000026401000000009004565b506200012a608060405190810160405280604f81526020017f7b227469746c65223a20222573222c202274797065223a202275696e74222c2081526020017f22646563696d616c73223a2031382c202263617465676f7279223a202225732281526020017f2c20226c616e67223a20222573227d000000000000000000000000000000000081525062000308640100000000026401000000009004565b50620001c7608060405190810160405280605a81526020017f7b227469746c65223a20222573222c202274797065223a202273696e676c652d81526020017f73656c656374222c20226f7574636f6d6573223a205b25735d2c20226361746581526020017f676f7279223a20222573222c20226c616e67223a20222573227d00000000000081525062000308640100000000026401000000009004565b5062000264608060405190810160405280605c81526020017f7b227469746c65223a20222573222c202274797065223a20226d756c7469706c81526020017f652d73656c656374222c20226f7574636f6d6573223a205b25735d2c2022636181526020017f7465676f7279223a20222573222c20226c616e67223a20222573227d0000000081525062000308640100000000026401000000009004565b5062000301608060405190810160405280604381526020017f7b227469746c65223a20222573222c202274797065223a20226461746574696d81526020017f65222c202263617465676f7279223a20222573222c20226c616e67223a20222581526020017f73227d000000000000000000000000000000000000000000000000000000000081525062000308640100000000026401000000009004565b50620004ca565b60015460008181526002602090815260408083204390555184519293928592918201918291908401908083835b60208310620003565780518252601f19909201916020918201910162000335565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310620003bb5780518252601f1990920191602091820191016200039a565b51815160209384036101000a6000190180199092169116179052604080519290940182900382206000888152600383528581209190915581835289518383015289513397508896507fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e4958b955084939084019290860191908190849084905b83811015620004545781810151838201526020016200043a565b50505050905090810190601f168015620004825780820380516001836020036101000a031916815260200191505b509250505060405180910390a3620004aa8160016401000000006200314a620004b382021704565b60015592915050565b600082820183811015620004c357fe5b9392505050565b6139a680620004da6000396000f3006080604052600436106101925763ffffffff60e060020a6000350416631101a0fd811461019757806312a203c31461029e5780632417395c146102e35780632518904c146102fb57806326d6c97b1461032f57806328828b1e146103475780633ccfd60b146104b95780634dc266b4146104ce5780634df6ca2a146104ef5780634e60f8831461050757806351577ea91461051f578063590158a71461053757806359245ff3146105775780636fa427421461058257806370a08231146105a3578063762c38fd146105c457806377f325df1461063a5780637f8d429e1461064b57806382ffa9f714610677578063839df9451461068f57806383bf4609146106cc5780638d552d4614610725578063924532fb1461073d57806395addb90146107555780639e63fa6a146107d15780639f1025c614610802578063a1130d041461081a578063a462fb7b146108c9578063acae8f4e146108e1578063bc525652146108f9578063d09cc57e146108c9578063d7cff98614610911578063f6a94ecb1461092e578063fe92049d14610955575b600080fd5b3480156101a357600080fd5b5060408051602060046024803582810135848102808701860190975280865261029c96843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975061097c9650505050505050565b005b3480156102aa57600080fd5b506102d1600435602435600160a060020a036044351663ffffffff60643516608435610cac565b60408051918252519081900360200190f35b3480156102ef57600080fd5b506102d1600435610ee9565b34801561030757600080fd5b50610313600435610efe565b60408051600160a060020a039092168252519081900360200190f35b34801561033b57600080fd5b506102d1600435610f1c565b34801561035357600080fd5b506040805160206004803580820135838102808601850190965280855261029c95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610f319650505050505050565b3480156104c557600080fd5b5061029c611145565b3480156104da57600080fd5b5061029c6004356024356044356064356111c0565b3480156104fb57600080fd5b5061029c600435611660565b34801561051357600080fd5b506102d16004356116af565b34801561052b57600080fd5b506102d16004356116c1565b34801561054357600080fd5b5061054f6004356116d3565b60408051600160a060020a039094168452602084019290925282820152519081900360600190f35b61029c6004356116fe565b34801561058e57600080fd5b506102d1600160a060020a036004351661195b565b3480156105af57600080fd5b506102d1600160a060020a036004351661196d565b60408051602060046024803582810135601f81018590048502860185019096528585526102d195833595369560449491939091019190819084018382808284375094975050508335600160a060020a03169450505050602081013563ffffffff908116916040810135909116906060013561197f565b61029c600435602435604435611ca3565b34801561065757600080fd5b50610663600435612037565b604080519115158252519081900360200190f35b34801561068357600080fd5b506102d1600435612094565b34801561069b57600080fd5b506106a76004356120a9565b6040805163ffffffff9094168452911515602084015282820152519081900360600190f35b3480156106d857600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102d19436949293602493928401919081908401838280828437509497506120d69650505050505050565b34801561073157600080fd5b506102d1600435612270565b34801561074957600080fd5b50610663600435612286565b34801561076157600080fd5b5061076d60043561229e565b604080519a8b52600160a060020a0390991660208b015263ffffffff9788168a8a015295871660608a015293909516608088015290151560a087015260c086015260e085019290925261010084019190915261012083015251908190036101400190f35b3480156107dd57600080fd5b506107e9600435612309565b6040805163ffffffff9092168252519081900360200190f35b34801561080e57600080fd5b506107e960043561232b565b6040805160206004803580820135601f81018490048402850184019095528484526102d194369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375094975050508335600160a060020a03169450505050602081013563ffffffff908116916040810135909116906060013561234d565b3480156108d557600080fd5b506102d1600435612375565b3480156108ed57600080fd5b506107e96004356123ef565b34801561090557600080fd5b506102d1600435612411565b61029c600435602435604435600160a060020a0360643516612423565b34801561093a57600080fd5b5061029c600435600160a060020a036024351660443561293a565b34801561096157600080fd5b5061029c600435602435600160a060020a0360443516612d10565b60008060008060008060008b61099181612037565b15156109e7576040805160e560020a62461bcd02815260206004820152601a60248201527f7175657374696f6e206d7573742062652066696e616c697a6564000000000000604482015290519081900360640190fd5b8b51600010610a66576040805160e560020a62461bcd02815260206004820152603060248201527f6174206c65617374206f6e6520686973746f7279206861736820656e7472792060448201527f6d7573742062652070726f766964656400000000000000000000000000000000606482015290519081900360840190fd5b60008d815260056020818152604080842080546001820154600290920154600494859052928620948501549490930154600160a060020a039093169c509a509850909650945092505b8b51831015610bcf57610b21858d85815181101515610aca57fe5b906020019060200201518b86815181101515610ae257fe5b906020019060200201518d87815181101515610afa57fe5b906020019060200201518f88815181101515610b1257fe5b90602001906020020151612f34565b9150610b33868863ffffffff61314a16565b9550610b8a8d85888b8f88815181101515610b4a57fe5b906020019060200201518f89815181101515610b6257fe5b906020019060200201518f8a815181101515610b7a57fe5b9060200190602002015189613164565b8b519099509096508a9084908110610b9e57fe5b9060200190602002015196508b83815181101515610bb857fe5b602090810290910101519450600190920191610aaf565b8415610c3a57600160a060020a03881615610bf457610bef8d8988613294565b600095505b60008d8152600560205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038a1617815560018101889055600201869055610c89565b610c548d89610c4f898b63ffffffff61314a16565b613294565b60008d8152600560205260408120805473ffffffffffffffffffffffffffffffffffffffff1916815560018101829055600201555b5050506000998a5250600460205260409098206005019790975550505050505050565b600085610cb881612037565b1515610d0e576040805160e560020a62461bcd02815260206004820152601a60248201527f7175657374696f6e206d7573742062652066696e616c697a6564000000000000604482015290519081900360640190fd5b6000878152600460205260409020548614610d73576040805160e560020a62461bcd02815260206004820152601760248201527f636f6e74656e742068617368206d757374206d61746368000000000000000000604482015290519081900360640190fd5b600087815260046020526040902060010154600160a060020a03868116911614610de7576040805160e560020a62461bcd02815260206004820152601560248201527f61726269747261746f72206d757374206d617463680000000000000000000000604482015290519081900360640190fd5b60008781526004602052604090206001015463ffffffff60c060020a90910481169085161115610e61576040805160e560020a62461bcd02815260206004820152601b60248201527f74696d656f7574206d757374206265206c6f6e6720656e6f7567680000000000604482015290519081900360640190fd5b600087815260046020526040902060060154831115610eca576040805160e560020a62461bcd02815260206004820152601860248201527f626f6e64206d757374206265206869676820656e6f7567680000000000000000604482015290519081900360640190fd5b6000878152600460208190526040909120015491505095945050505050565b60009081526004602052604090206003015490565b600090815260046020526040902060010154600160a060020a031690565b60009081526004602052604090206006015490565b60008080806060808080845b8e5189101561112c578e89815181101515610f5457fe5b9060200190602002015196508d89815181101515610f6e57fe5b90602001906020020151955085604051908082528060200260200182016040528015610fa4578160200160208202803883390190505b50945085604051908082528060200260200182016040528015610fd1578160200160208202803883390190505b50935085604051908082528060200260200182016040528015610ffe578160200160208202803883390190505b5092508560405190808252806020026020018201604052801561102b578160200160208202803883390190505b509150600090505b85811015611114578c8881518110151561104957fe5b90602001906020020151858281518110151561106157fe5b602090810290910101528b518c908990811061107957fe5b90602001906020020151848281518110151561109157fe5b600160a060020a039092166020928302909101909101528a518b90899081106110b657fe5b9060200190602002015183828151811015156110ce57fe5b6020908102909101015289518a90899081106110e657fe5b9060200190602002015182828151811015156110fe57fe5b6020908102909101015260019788019701611033565b611121878686868661097c565b600190980197610f3d565b611134611145565b505050505050505050505050505050565b33600081815260208190526040808220805490839055905190929183156108fc02918491818181858888f19350505050158015611186573d6000803e3d6000fd5b5060408051828152905133917f4ce7033d118120e254016dccf195288400b28fc8936425acd5f17ce2df3ab708919081900360200190a250565b600084815260046020526040812060010154819086908290819060c060020a900463ffffffff16811061122b576040805160e560020a62461bcd02815260206004820152601360248201526000805160206138bb833981519152604482015290519081900360640190fd5b60008381526004602052604090206001015460e060020a900463ffffffff16915081158061126457504263ffffffff168263ffffffff16115b15156112e0576040805160e560020a62461bcd02815260206004820152602960248201527f66696e616c697a6174696f6e206465616c696e65206d757374206e6f7420686160448201527f7665207061737365640000000000000000000000000000000000000000000000606482015290519081900360840190fd5b5060008281526004602052604090206001015460a060020a900463ffffffff1680158061131957504263ffffffff168163ffffffff1611155b151561135d576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061393b833981519152604482015290519081900360640190fd5b6040805160208082018b90528183018a9052825180830384018152606090920192839052815191929182918401908083835b602083106113ae5780518252601f19909201916020918201910161138f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209450888587604051602001808460001916600019168152602001836000191660001916815260200182815260200193505050506040516020818303038152906040526040518082805190602001908083835b6020831061144c5780518252601f19909201916020918201910161142d565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120600081815260069092529290205491975050640100000000900460ff161591506115109050576040805160e560020a62461bcd02815260206004820152602a60248201527f636f6d6d69746d656e74206d757374206e6f742068617665206265656e20726560448201527f7665616c65642079657400000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008481526006602052604090205463ffffffff4281169116116115a3576040805160e560020a62461bcd028152602060048201526024808201527f72657665616c20646561646c696e65206d757374206e6f74206861766520706160448201527f7373656400000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000848152600660208181526040808420600181018d9055805464ff0000000019166401000000001790558c84526004909152909120015486141561160e5760008981526004602052604090206001015461160e908a908a9060c060020a900463ffffffff16613315565b60408051898152602081018990528082018890529051869133918c917fa7b2d313bc7a062e30b2c3b811aa4c9faf09755a6b4ea3bf42deff920944332f919081900360600190a4505050505050505050565b336000818152600760209081526040918290208490558151928352820183905280517fdca703d022171824d3d639b33c1525fd2338120b4cfb89507c0b59596893acda9281900390910190a150565b60036020526000908152604090205481565b60009081526004602052604090205490565b600560205260009081526040902080546001820154600290920154600160a060020a03909116919083565b600081815260046020526040812060010154829190819060c060020a900463ffffffff168110611766576040805160e560020a62461bcd02815260206004820152601360248201526000805160206138bb833981519152604482015290519081900360640190fd5b60008381526004602052604090206002015460ff16156117d2576040805160e560020a62461bcd02815260206004820152602860248201526000805160206138fb83398151915260448201526000805160206138db833981519152606482015290519081900360840190fd5b60008381526004602052604090206001015460e060020a900463ffffffff16915081158061180b57504263ffffffff168263ffffffff16115b1515611863576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061391b833981519152604482015260008051602061395b833981519152606482015290519081900360840190fd5b5060008281526004602052604090206001015460a060020a900463ffffffff1680158061189c57504263ffffffff168163ffffffff1611155b15156118e0576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061393b833981519152604482015290519081900360640190fd5b600084815260046020526040902060030154611902903463ffffffff61314a16565b6000858152600460209081526040918290206003018390558151348152908101929092528051339287927f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab6692918290030190a350505050565b60076020526000908152604090205481565b60006020819052908152604090205481565b6000868152600260205260408120548190819081106119e8576040805160e560020a62461bcd02815260206004820152601360248201527f74656d706c617465206d75737420657869737400000000000000000000000000604482015290519081900360640190fd5b888589604051602001808481526020018363ffffffff1663ffffffff1660e060020a02815260040182805190602001908083835b60208310611a3b5780518252601f199092019160209182019101611a1c565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b60208310611aa05780518252601f199092019160209182019101611a81565b51815160209384036101000a600019018019909216911617905260408051929094018290038220828201819052600160a060020a038e166c010000000000000000000000009081028487015263ffffffff8e1660e060020a02605485015233026058840152606c8084018c905285518085039091018152608c9093019485905282519098509195509293508392850191508083835b60208310611b545780518252601f199092019160209182019101611b35565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050611b90818389898961338c565b816000191633600160a060020a031682600019167ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8c8c8c8c8c8c42604051808881526020018060200187600160a060020a0316600160a060020a031681526020018663ffffffff1663ffffffff1681526020018563ffffffff1663ffffffff168152602001848152602001838152602001828103825288818151815260200191508051906020019080838360005b83811015611c57578181015183820152602001611c3f565b50505050905090810190601f168015611c845780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390a498975050505050505050565b600083815260046020526040812060010154849190819060c060020a900463ffffffff168110611d0b576040805160e560020a62461bcd02815260206004820152601360248201526000805160206138bb833981519152604482015290519081900360640190fd5b60008381526004602052604090206002015460ff1615611d77576040805160e560020a62461bcd02815260206004820152602860248201526000805160206138fb83398151915260448201526000805160206138db833981519152606482015290519081900360840190fd5b60008381526004602052604090206001015460e060020a900463ffffffff169150811580611db057504263ffffffff168263ffffffff16115b1515611e08576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061391b833981519152604482015260008051602061395b833981519152606482015290519081900360840190fd5b5060008281526004602052604090206001015460a060020a900463ffffffff16801580611e4157504263ffffffff168163ffffffff1611155b1515611e85576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061393b833981519152604482015290519081900360640190fd5b8560003411611ede576040805160e560020a62461bcd02815260206004820152601560248201527f626f6e64206d75737420626520706f7369746976650000000000000000000000604482015290519081900360640190fd5b600081815260046020526040902060060154611f0190600263ffffffff6136ed16565b341015611f7e576040805160e560020a62461bcd02815260206004820152602a60248201527f626f6e64206d75737420626520646f75626c65206174206c656173742070726560448201527f76696f757320626f6e6400000000000000000000000000000000000000000000606482015290519081900360840190fd5b86856000811115611ff257600082815260046020526040902060060154811015611ff2576040805160e560020a62461bcd02815260206004820152601d60248201527f626f6e64206d75737420657863656564206d61785f70726576696f7573000000604482015290519081900360640190fd5b612000898933346000613718565b60008981526004602052604090206001015461202c908a908a9060c060020a900463ffffffff16613315565b505050505050505050565b6000818152600460205260408120600181015460029091015460e060020a90910463ffffffff169060ff161580156120755750600063ffffffff8216115b801561208d57504263ffffffff168163ffffffff1611155b9392505050565b60009081526004602052604090206005015490565b6006602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b60015460008181526002602090815260408083204390555184519293928592918201918291908401908083835b602083106121225780518252601f199092019160209182019101612103565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b602083106121855780518252601f199092019160209182019101612166565b51815160209384036101000a6000190180199092169116179052604080519290940182900382206000888152600383528581209190915581835289518383015289513397508896507fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e4958b955084939084019290860191908190849084905b8381101561221c578181015183820152602001612204565b50505050905090810190601f1680156122495780820380516001836020036101000a031916815260200191505b509250505060405180910390a361226781600163ffffffff61314a16565b60015592915050565b6000908152600460208190526040909120015490565b60009081526004602052604090206002015460ff1690565b600460208190526000918252604090912080546001820154600283015460038401549484015460058501546006909501549395600160a060020a0384169563ffffffff60a060020a860481169660c060020a870482169660e060020a90049091169460ff169391908a565b60009081526004602052604090206001015460a060020a900463ffffffff1690565b60009081526004602052604090206001015460c060020a900463ffffffff1690565b600080612359886120d6565b905061236981888888888861197f565b98975050505050505050565b60008161238181612037565b15156123d7576040805160e560020a62461bcd02815260206004820152601a60248201527f7175657374696f6e206d7573742062652066696e616c697a6564000000000000604482015290519081900360640190fd5b50506000908152600460208190526040909120015490565b60009081526004602052604090206001015460e060020a900463ffffffff1690565b60026020526000908152604090205481565b6000848152600460205260408120600101548190819087908290819060c060020a900463ffffffff168110612490576040805160e560020a62461bcd02815260206004820152601360248201526000805160206138bb833981519152604482015290519081900360640190fd5b60008381526004602052604090206002015460ff16156124fc576040805160e560020a62461bcd02815260206004820152602860248201526000805160206138fb83398151915260448201526000805160206138db833981519152606482015290519081900360840190fd5b60008381526004602052604090206001015460e060020a900463ffffffff16915081158061253557504263ffffffff168263ffffffff16115b151561258d576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061391b833981519152604482015260008051602061395b833981519152606482015290519081900360840190fd5b5060008281526004602052604090206001015460a060020a900463ffffffff168015806125c657504263ffffffff168163ffffffff1611155b151561260a576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061393b833981519152604482015290519081900360640190fd5b8960003411612663576040805160e560020a62461bcd02815260206004820152601560248201527f626f6e64206d75737420626520706f7369746976650000000000000000000000604482015290519081900360640190fd5b60008181526004602052604090206006015461268690600263ffffffff6136ed16565b341015612703576040805160e560020a62461bcd02815260206004820152602a60248201527f626f6e64206d75737420626520646f75626c65206174206c656173742070726560448201527f76696f757320626f6e6400000000000000000000000000000000000000000000606482015290519081900360840190fd5b8a89600081111561277757600082815260046020526040902060060154811015612777576040805160e560020a62461bcd02815260206004820152601d60248201527f626f6e64206d75737420657863656564206d61785f70726576696f7573000000604482015290519081900360640190fd5b8c8c34604051602001808460001916600019168152602001836000191660001916815260200182815260200193505050506040516020818303038152906040526040518082805190602001908083835b602083106127e65780518252601f1990920191602091820191016127c7565b5181516020939093036101000a600019018019909116921691909117905260405192018290039091209b50505050600160a060020a038a1615612829578961282b565b335b60008a81526006602052604090205490985063ffffffff16156128be576040805160e560020a62461bcd02815260206004820152602160248201527f636f6d6d69746d656e74206d757374206e6f7420616c7265616479206578697360448201527f7400000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008d81526004602052604090206001015460089060c060020a900463ffffffff160496506128f763ffffffff42811690899061389016565b60008a8152600660205260409020805463ffffffff191663ffffffff9290921691909117905561292b8d8a8a346001613718565b50505050505050505050505050565b6000838152600460205260409020600101548390600160a060020a031633146129ad576040805160e560020a62461bcd02815260206004820152601d60248201527f6d73672e73656e646572206d7573742062652061726269747261746f72000000604482015290519081900360640190fd5b600084815260046020526040812060010154859190819060c060020a900463ffffffff168110612a15576040805160e560020a62461bcd02815260206004820152601360248201526000805160206138bb833981519152604482015290519081900360640190fd5b60008381526004602052604090206002015460ff1615612a81576040805160e560020a62461bcd02815260206004820152602860248201526000805160206138fb83398151915260448201526000805160206138db833981519152606482015290519081900360840190fd5b60008381526004602052604090206001015460e060020a900463ffffffff169150811580612aba57504263ffffffff168263ffffffff16115b1515612b12576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061391b833981519152604482015260008051602061395b833981519152606482015290519081900360840190fd5b5060008281526004602052604090206001015460a060020a900463ffffffff16801580612b4b57504263ffffffff168163ffffffff1611155b1515612b8f576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061393b833981519152604482015290519081900360640190fd5b86856000811115612c0357600082815260046020526040902060060154811015612c03576040805160e560020a62461bcd02815260206004820152601d60248201527f626f6e64206d75737420657863656564206d61785f70726576696f7573000000604482015290519081900360640190fd5b60008981526004602052604081206006015411612cb6576040805160e560020a62461bcd02815260206004820152604260248201527f5175657374696f6e206d75737420616c7265616479206861766520616e20616e60448201527f73776572207768656e206172626974726174696f6e206973207265717565737460648201527f6564000000000000000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b600089815260046020526040808220600201805460ff1916600117905551600160a060020a038a16918b917f75d7939999bc902187c4aed400872883e445145f1983539166f783fa040b47629190a3505050505050505050565b6000838152600460205260409020600101548390600160a060020a03163314612d83576040805160e560020a62461bcd02815260206004820152601d60248201527f6d73672e73656e646572206d7573742062652061726269747261746f72000000604482015290519081900360640190fd5b600084815260046020526040902060020154849060ff161515612e15576040805160e560020a62461bcd028152602060048201526024808201527f7175657374696f6e206d7573742062652070656e64696e67206172626974726160448201527f74696f6e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b3415612e6b576040805160e560020a62461bcd02815260206004820152601160248201527f626f6e64206d757374206265207a65726f000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0383161515612ecb576040805160e560020a62461bcd02815260206004820152601960248201527f616e737765726572206d7573742062652070726f766964656400000000000000604482015290519081900360640190fd5b604051849086907f18d760beffe3717270cd90d9d920ec1a48c194e9ad7bba23eb1c92d3eb974f9790600090a36000858152600460205260408120600201805460ff19169055612f219086908690869080613718565b612f2d85856000613315565b5050505050565b604080516020808201879052818301869052606082018590526c01000000000000000000000000600160a060020a0385160260808301527f01000000000000000000000000000000000000000000000000000000000000006094830152825160758184030181526095909201928390528151600093918291908401908083835b60208310612fd35780518252601f199092019160209182019101612fb4565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120891415925061301091505057506001613141565b604080516020808201889052818301879052606082018690526c01000000000000000000000000600160a060020a0386160260808301526000609483015282516075818403018152609590920192839052815191929182918401908083835b6020831061308e5780518252601f19909201916020918201910161306f565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912089141592506130cb91505057506000613141565b6040805160e560020a62461bcd02815260206004820152603660248201527f486973746f727920696e7075742070726f766964656420646964206e6f74206d60448201527f6174636820746865206578706563746564206861736800000000000000000000606482015290519081900360840190fd5b95945050505050565b60008282018381101561315957fe5b8091505b5092915050565b60008060008084156131e457600086815260066020526040902054869250640100000000900460ff1615156131bc576000828152600660205260408120805464ffffffffff1916815560010155899350889250613285565b6000828152600660205260408120600181018054825464ffffffffff19169092559190915595505b858b141561327e57600160a060020a038916151561323d5760008c8152600460205260409020600301549798508897613224908b9063ffffffff61314a16565b60008d815260046020526040812060030155995061327e565b600160a060020a03888116908a161461327e57868a101561325e5789613260565b865b90506132778c8a610c4f8d8563ffffffff6138a816565b8798508099505b8989935093505b50509850989650505050505050565b600160a060020a0382166000908152602081905260409020546132bd908263ffffffff61314a16565b600160a060020a038316600081815260208181526040918290209390935580518481529051919286927f9c121aff33b50c1a53fef034ebec5f83da2d5a5187048f9c76c397ba27c1a1a69281900390910190a3505050565b60008381526004602081905260409091200182905561333e63ffffffff42811690839061389016565b600093845260046020526040909320600101805463ffffffff9490941660e060020a027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff909416939093179092555050565b6000858152600460205260408120600101548190879060c060020a900463ffffffff1615613404576040805160e560020a62461bcd02815260206004820152601760248201527f7175657374696f6e206d757374206e6f74206578697374000000000000000000604482015290519081900360640190fd5b600063ffffffff861611613462576040805160e560020a62461bcd02815260206004820152601860248201527f74696d656f7574206d75737420626520706f7369746976650000000000000000604482015290519081900360640190fd5b6301e1338063ffffffff8616106134e9576040805160e560020a62461bcd02815260206004820152602260248201527f74696d656f7574206d757374206265206c657373207468616e2033363520646160448201527f7973000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0386161515613549576040805160e560020a62461bcd02815260206004820152601660248201527f61726269747261746f72206d7573742062652073657400000000000000000000604482015290519081900360640190fd5b34925033600160a060020a0387161461364a57600160a060020a0386166000908152600760205260409020549150818310156135f4576040805160e560020a62461bcd028152602060048201526024808201527f4554482070726f7669646564206d75737420636f766572207175657374696f6e60448201527f2066656500000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b613604838363ffffffff6138a816565b600160a060020a038716600090815260208190526040902054909350613630908363ffffffff61314a16565b600160a060020a0387166000908152602081905260409020555b505060009586526004602052604090952093845560018401805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03949094169390931777ffffffff0000000000000000000000000000000000000000191660a060020a63ffffffff92831602177fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff1660c060020a929091169190910217905560030155565b600080831515613700576000915061315d565b5082820282848281151561371057fe5b041461315957fe5b600085815260046020908152604080832060050154815180840191909152808201889052606081018690526c01000000000000000000000000600160a060020a0388160260808201527f010000000000000000000000000000000000000000000000000000000000000085151502609482015281516075818303018152609590910191829052805190928291908401908083835b602083106137cb5780518252601f1990920191602091820191016137ac565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060008311156138185760008681526004602052604090206006018390555b600086815260046020908152604091829020600501839055815187815290810183905280820185905242606082015283151560808201529051600160a060020a0386169188917fe47ca4ebbbc2990134d1168821f38c5e177f3d5ee564bffeadeaa351905e62219181900360a00190a3505050505050565b600082820163ffffffff808516908216101561315957fe5b6000828211156138b457fe5b5090039056007175657374696f6e206d757374206578697374000000000000000000000000006974726174696f6e0000000000000000000000000000000000000000000000007175657374696f6e206d757374206e6f742062652070656e64696e672061726266696e616c697a6174696f6e20646561646c696e65206d757374206e6f7420686f70656e696e672064617465206d7573742068617665207061737365640000006176652070617373656400000000000000000000000000000000000000000000a165627a7a72305820e7af9378240e218241c6138a31e3e3b63a25874b9949b4e903f6f855bfc899100029",
 "deployedBytecode": "0x6080604052600436106101925763ffffffff60e060020a6000350416631101a0fd811461019757806312a203c31461029e5780632417395c146102e35780632518904c146102fb57806326d6c97b1461032f57806328828b1e146103475780633ccfd60b146104b95780634dc266b4146104ce5780634df6ca2a146104ef5780634e60f8831461050757806351577ea91461051f578063590158a71461053757806359245ff3146105775780636fa427421461058257806370a08231146105a3578063762c38fd146105c457806377f325df1461063a5780637f8d429e1461064b57806382ffa9f714610677578063839df9451461068f57806383bf4609146106cc5780638d552d4614610725578063924532fb1461073d57806395addb90146107555780639e63fa6a146107d15780639f1025c614610802578063a1130d041461081a578063a462fb7b146108c9578063acae8f4e146108e1578063bc525652146108f9578063d09cc57e146108c9578063d7cff98614610911578063f6a94ecb1461092e578063fe92049d14610955575b600080fd5b3480156101a357600080fd5b5060408051602060046024803582810135848102808701860190975280865261029c96843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975061097c9650505050505050565b005b3480156102aa57600080fd5b506102d1600435602435600160a060020a036044351663ffffffff60643516608435610cac565b60408051918252519081900360200190f35b3480156102ef57600080fd5b506102d1600435610ee9565b34801561030757600080fd5b50610313600435610efe565b60408051600160a060020a039092168252519081900360200190f35b34801561033b57600080fd5b506102d1600435610f1c565b34801561035357600080fd5b506040805160206004803580820135838102808601850190965280855261029c95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610f319650505050505050565b3480156104c557600080fd5b5061029c611145565b3480156104da57600080fd5b5061029c6004356024356044356064356111c0565b3480156104fb57600080fd5b5061029c600435611660565b34801561051357600080fd5b506102d16004356116af565b34801561052b57600080fd5b506102d16004356116c1565b34801561054357600080fd5b5061054f6004356116d3565b60408051600160a060020a039094168452602084019290925282820152519081900360600190f35b61029c6004356116fe565b34801561058e57600080fd5b506102d1600160a060020a036004351661195b565b3480156105af57600080fd5b506102d1600160a060020a036004351661196d565b60408051602060046024803582810135601f81018590048502860185019096528585526102d195833595369560449491939091019190819084018382808284375094975050508335600160a060020a03169450505050602081013563ffffffff908116916040810135909116906060013561197f565b61029c600435602435604435611ca3565b34801561065757600080fd5b50610663600435612037565b604080519115158252519081900360200190f35b34801561068357600080fd5b506102d1600435612094565b34801561069b57600080fd5b506106a76004356120a9565b6040805163ffffffff9094168452911515602084015282820152519081900360600190f35b3480156106d857600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102d19436949293602493928401919081908401838280828437509497506120d69650505050505050565b34801561073157600080fd5b506102d1600435612270565b34801561074957600080fd5b50610663600435612286565b34801561076157600080fd5b5061076d60043561229e565b604080519a8b52600160a060020a0390991660208b015263ffffffff9788168a8a015295871660608a015293909516608088015290151560a087015260c086015260e085019290925261010084019190915261012083015251908190036101400190f35b3480156107dd57600080fd5b506107e9600435612309565b6040805163ffffffff9092168252519081900360200190f35b34801561080e57600080fd5b506107e960043561232b565b6040805160206004803580820135601f81018490048402850184019095528484526102d194369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375094975050508335600160a060020a03169450505050602081013563ffffffff908116916040810135909116906060013561234d565b3480156108d557600080fd5b506102d1600435612375565b3480156108ed57600080fd5b506107e96004356123ef565b34801561090557600080fd5b506102d1600435612411565b61029c600435602435604435600160a060020a0360643516612423565b34801561093a57600080fd5b5061029c600435600160a060020a036024351660443561293a565b34801561096157600080fd5b5061029c600435602435600160a060020a0360443516612d10565b60008060008060008060008b61099181612037565b15156109e7576040805160e560020a62461bcd02815260206004820152601a60248201527f7175657374696f6e206d7573742062652066696e616c697a6564000000000000604482015290519081900360640190fd5b8b51600010610a66576040805160e560020a62461bcd02815260206004820152603060248201527f6174206c65617374206f6e6520686973746f7279206861736820656e7472792060448201527f6d7573742062652070726f766964656400000000000000000000000000000000606482015290519081900360840190fd5b60008d815260056020818152604080842080546001820154600290920154600494859052928620948501549490930154600160a060020a039093169c509a509850909650945092505b8b51831015610bcf57610b21858d85815181101515610aca57fe5b906020019060200201518b86815181101515610ae257fe5b906020019060200201518d87815181101515610afa57fe5b906020019060200201518f88815181101515610b1257fe5b90602001906020020151612f34565b9150610b33868863ffffffff61314a16565b9550610b8a8d85888b8f88815181101515610b4a57fe5b906020019060200201518f89815181101515610b6257fe5b906020019060200201518f8a815181101515610b7a57fe5b9060200190602002015189613164565b8b519099509096508a9084908110610b9e57fe5b9060200190602002015196508b83815181101515610bb857fe5b602090810290910101519450600190920191610aaf565b8415610c3a57600160a060020a03881615610bf457610bef8d8988613294565b600095505b60008d8152600560205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038a1617815560018101889055600201869055610c89565b610c548d89610c4f898b63ffffffff61314a16565b613294565b60008d8152600560205260408120805473ffffffffffffffffffffffffffffffffffffffff1916815560018101829055600201555b5050506000998a5250600460205260409098206005019790975550505050505050565b600085610cb881612037565b1515610d0e576040805160e560020a62461bcd02815260206004820152601a60248201527f7175657374696f6e206d7573742062652066696e616c697a6564000000000000604482015290519081900360640190fd5b6000878152600460205260409020548614610d73576040805160e560020a62461bcd02815260206004820152601760248201527f636f6e74656e742068617368206d757374206d61746368000000000000000000604482015290519081900360640190fd5b600087815260046020526040902060010154600160a060020a03868116911614610de7576040805160e560020a62461bcd02815260206004820152601560248201527f61726269747261746f72206d757374206d617463680000000000000000000000604482015290519081900360640190fd5b60008781526004602052604090206001015463ffffffff60c060020a90910481169085161115610e61576040805160e560020a62461bcd02815260206004820152601b60248201527f74696d656f7574206d757374206265206c6f6e6720656e6f7567680000000000604482015290519081900360640190fd5b600087815260046020526040902060060154831115610eca576040805160e560020a62461bcd02815260206004820152601860248201527f626f6e64206d757374206265206869676820656e6f7567680000000000000000604482015290519081900360640190fd5b6000878152600460208190526040909120015491505095945050505050565b60009081526004602052604090206003015490565b600090815260046020526040902060010154600160a060020a031690565b60009081526004602052604090206006015490565b60008080806060808080845b8e5189101561112c578e89815181101515610f5457fe5b9060200190602002015196508d89815181101515610f6e57fe5b90602001906020020151955085604051908082528060200260200182016040528015610fa4578160200160208202803883390190505b50945085604051908082528060200260200182016040528015610fd1578160200160208202803883390190505b50935085604051908082528060200260200182016040528015610ffe578160200160208202803883390190505b5092508560405190808252806020026020018201604052801561102b578160200160208202803883390190505b509150600090505b85811015611114578c8881518110151561104957fe5b90602001906020020151858281518110151561106157fe5b602090810290910101528b518c908990811061107957fe5b90602001906020020151848281518110151561109157fe5b600160a060020a039092166020928302909101909101528a518b90899081106110b657fe5b9060200190602002015183828151811015156110ce57fe5b6020908102909101015289518a90899081106110e657fe5b9060200190602002015182828151811015156110fe57fe5b6020908102909101015260019788019701611033565b611121878686868661097c565b600190980197610f3d565b611134611145565b505050505050505050505050505050565b33600081815260208190526040808220805490839055905190929183156108fc02918491818181858888f19350505050158015611186573d6000803e3d6000fd5b5060408051828152905133917f4ce7033d118120e254016dccf195288400b28fc8936425acd5f17ce2df3ab708919081900360200190a250565b600084815260046020526040812060010154819086908290819060c060020a900463ffffffff16811061122b576040805160e560020a62461bcd02815260206004820152601360248201526000805160206138bb833981519152604482015290519081900360640190fd5b60008381526004602052604090206001015460e060020a900463ffffffff16915081158061126457504263ffffffff168263ffffffff16115b15156112e0576040805160e560020a62461bcd02815260206004820152602960248201527f66696e616c697a6174696f6e206465616c696e65206d757374206e6f7420686160448201527f7665207061737365640000000000000000000000000000000000000000000000606482015290519081900360840190fd5b5060008281526004602052604090206001015460a060020a900463ffffffff1680158061131957504263ffffffff168163ffffffff1611155b151561135d576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061393b833981519152604482015290519081900360640190fd5b6040805160208082018b90528183018a9052825180830384018152606090920192839052815191929182918401908083835b602083106113ae5780518252601f19909201916020918201910161138f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209450888587604051602001808460001916600019168152602001836000191660001916815260200182815260200193505050506040516020818303038152906040526040518082805190602001908083835b6020831061144c5780518252601f19909201916020918201910161142d565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120600081815260069092529290205491975050640100000000900460ff161591506115109050576040805160e560020a62461bcd02815260206004820152602a60248201527f636f6d6d69746d656e74206d757374206e6f742068617665206265656e20726560448201527f7665616c65642079657400000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008481526006602052604090205463ffffffff4281169116116115a3576040805160e560020a62461bcd028152602060048201526024808201527f72657665616c20646561646c696e65206d757374206e6f74206861766520706160448201527f7373656400000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000848152600660208181526040808420600181018d9055805464ff0000000019166401000000001790558c84526004909152909120015486141561160e5760008981526004602052604090206001015461160e908a908a9060c060020a900463ffffffff16613315565b60408051898152602081018990528082018890529051869133918c917fa7b2d313bc7a062e30b2c3b811aa4c9faf09755a6b4ea3bf42deff920944332f919081900360600190a4505050505050505050565b336000818152600760209081526040918290208490558151928352820183905280517fdca703d022171824d3d639b33c1525fd2338120b4cfb89507c0b59596893acda9281900390910190a150565b60036020526000908152604090205481565b60009081526004602052604090205490565b600560205260009081526040902080546001820154600290920154600160a060020a03909116919083565b600081815260046020526040812060010154829190819060c060020a900463ffffffff168110611766576040805160e560020a62461bcd02815260206004820152601360248201526000805160206138bb833981519152604482015290519081900360640190fd5b60008381526004602052604090206002015460ff16156117d2576040805160e560020a62461bcd02815260206004820152602860248201526000805160206138fb83398151915260448201526000805160206138db833981519152606482015290519081900360840190fd5b60008381526004602052604090206001015460e060020a900463ffffffff16915081158061180b57504263ffffffff168263ffffffff16115b1515611863576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061391b833981519152604482015260008051602061395b833981519152606482015290519081900360840190fd5b5060008281526004602052604090206001015460a060020a900463ffffffff1680158061189c57504263ffffffff168163ffffffff1611155b15156118e0576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061393b833981519152604482015290519081900360640190fd5b600084815260046020526040902060030154611902903463ffffffff61314a16565b6000858152600460209081526040918290206003018390558151348152908101929092528051339287927f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab6692918290030190a350505050565b60076020526000908152604090205481565b60006020819052908152604090205481565b6000868152600260205260408120548190819081106119e8576040805160e560020a62461bcd02815260206004820152601360248201527f74656d706c617465206d75737420657869737400000000000000000000000000604482015290519081900360640190fd5b888589604051602001808481526020018363ffffffff1663ffffffff1660e060020a02815260040182805190602001908083835b60208310611a3b5780518252601f199092019160209182019101611a1c565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b60208310611aa05780518252601f199092019160209182019101611a81565b51815160209384036101000a600019018019909216911617905260408051929094018290038220828201819052600160a060020a038e166c010000000000000000000000009081028487015263ffffffff8e1660e060020a02605485015233026058840152606c8084018c905285518085039091018152608c9093019485905282519098509195509293508392850191508083835b60208310611b545780518252601f199092019160209182019101611b35565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050611b90818389898961338c565b816000191633600160a060020a031682600019167ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8c8c8c8c8c8c42604051808881526020018060200187600160a060020a0316600160a060020a031681526020018663ffffffff1663ffffffff1681526020018563ffffffff1663ffffffff168152602001848152602001838152602001828103825288818151815260200191508051906020019080838360005b83811015611c57578181015183820152602001611c3f565b50505050905090810190601f168015611c845780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390a498975050505050505050565b600083815260046020526040812060010154849190819060c060020a900463ffffffff168110611d0b576040805160e560020a62461bcd02815260206004820152601360248201526000805160206138bb833981519152604482015290519081900360640190fd5b60008381526004602052604090206002015460ff1615611d77576040805160e560020a62461bcd02815260206004820152602860248201526000805160206138fb83398151915260448201526000805160206138db833981519152606482015290519081900360840190fd5b60008381526004602052604090206001015460e060020a900463ffffffff169150811580611db057504263ffffffff168263ffffffff16115b1515611e08576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061391b833981519152604482015260008051602061395b833981519152606482015290519081900360840190fd5b5060008281526004602052604090206001015460a060020a900463ffffffff16801580611e4157504263ffffffff168163ffffffff1611155b1515611e85576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061393b833981519152604482015290519081900360640190fd5b8560003411611ede576040805160e560020a62461bcd02815260206004820152601560248201527f626f6e64206d75737420626520706f7369746976650000000000000000000000604482015290519081900360640190fd5b600081815260046020526040902060060154611f0190600263ffffffff6136ed16565b341015611f7e576040805160e560020a62461bcd02815260206004820152602a60248201527f626f6e64206d75737420626520646f75626c65206174206c656173742070726560448201527f76696f757320626f6e6400000000000000000000000000000000000000000000606482015290519081900360840190fd5b86856000811115611ff257600082815260046020526040902060060154811015611ff2576040805160e560020a62461bcd02815260206004820152601d60248201527f626f6e64206d75737420657863656564206d61785f70726576696f7573000000604482015290519081900360640190fd5b612000898933346000613718565b60008981526004602052604090206001015461202c908a908a9060c060020a900463ffffffff16613315565b505050505050505050565b6000818152600460205260408120600181015460029091015460e060020a90910463ffffffff169060ff161580156120755750600063ffffffff8216115b801561208d57504263ffffffff168163ffffffff1611155b9392505050565b60009081526004602052604090206005015490565b6006602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b60015460008181526002602090815260408083204390555184519293928592918201918291908401908083835b602083106121225780518252601f199092019160209182019101612103565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b602083106121855780518252601f199092019160209182019101612166565b51815160209384036101000a6000190180199092169116179052604080519290940182900382206000888152600383528581209190915581835289518383015289513397508896507fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e4958b955084939084019290860191908190849084905b8381101561221c578181015183820152602001612204565b50505050905090810190601f1680156122495780820380516001836020036101000a031916815260200191505b509250505060405180910390a361226781600163ffffffff61314a16565b60015592915050565b6000908152600460208190526040909120015490565b60009081526004602052604090206002015460ff1690565b600460208190526000918252604090912080546001820154600283015460038401549484015460058501546006909501549395600160a060020a0384169563ffffffff60a060020a860481169660c060020a870482169660e060020a90049091169460ff169391908a565b60009081526004602052604090206001015460a060020a900463ffffffff1690565b60009081526004602052604090206001015460c060020a900463ffffffff1690565b600080612359886120d6565b905061236981888888888861197f565b98975050505050505050565b60008161238181612037565b15156123d7576040805160e560020a62461bcd02815260206004820152601a60248201527f7175657374696f6e206d7573742062652066696e616c697a6564000000000000604482015290519081900360640190fd5b50506000908152600460208190526040909120015490565b60009081526004602052604090206001015460e060020a900463ffffffff1690565b60026020526000908152604090205481565b6000848152600460205260408120600101548190819087908290819060c060020a900463ffffffff168110612490576040805160e560020a62461bcd02815260206004820152601360248201526000805160206138bb833981519152604482015290519081900360640190fd5b60008381526004602052604090206002015460ff16156124fc576040805160e560020a62461bcd02815260206004820152602860248201526000805160206138fb83398151915260448201526000805160206138db833981519152606482015290519081900360840190fd5b60008381526004602052604090206001015460e060020a900463ffffffff16915081158061253557504263ffffffff168263ffffffff16115b151561258d576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061391b833981519152604482015260008051602061395b833981519152606482015290519081900360840190fd5b5060008281526004602052604090206001015460a060020a900463ffffffff168015806125c657504263ffffffff168163ffffffff1611155b151561260a576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061393b833981519152604482015290519081900360640190fd5b8960003411612663576040805160e560020a62461bcd02815260206004820152601560248201527f626f6e64206d75737420626520706f7369746976650000000000000000000000604482015290519081900360640190fd5b60008181526004602052604090206006015461268690600263ffffffff6136ed16565b341015612703576040805160e560020a62461bcd02815260206004820152602a60248201527f626f6e64206d75737420626520646f75626c65206174206c656173742070726560448201527f76696f757320626f6e6400000000000000000000000000000000000000000000606482015290519081900360840190fd5b8a89600081111561277757600082815260046020526040902060060154811015612777576040805160e560020a62461bcd02815260206004820152601d60248201527f626f6e64206d75737420657863656564206d61785f70726576696f7573000000604482015290519081900360640190fd5b8c8c34604051602001808460001916600019168152602001836000191660001916815260200182815260200193505050506040516020818303038152906040526040518082805190602001908083835b602083106127e65780518252601f1990920191602091820191016127c7565b5181516020939093036101000a600019018019909116921691909117905260405192018290039091209b50505050600160a060020a038a1615612829578961282b565b335b60008a81526006602052604090205490985063ffffffff16156128be576040805160e560020a62461bcd02815260206004820152602160248201527f636f6d6d69746d656e74206d757374206e6f7420616c7265616479206578697360448201527f7400000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008d81526004602052604090206001015460089060c060020a900463ffffffff160496506128f763ffffffff42811690899061389016565b60008a8152600660205260409020805463ffffffff191663ffffffff9290921691909117905561292b8d8a8a346001613718565b50505050505050505050505050565b6000838152600460205260409020600101548390600160a060020a031633146129ad576040805160e560020a62461bcd02815260206004820152601d60248201527f6d73672e73656e646572206d7573742062652061726269747261746f72000000604482015290519081900360640190fd5b600084815260046020526040812060010154859190819060c060020a900463ffffffff168110612a15576040805160e560020a62461bcd02815260206004820152601360248201526000805160206138bb833981519152604482015290519081900360640190fd5b60008381526004602052604090206002015460ff1615612a81576040805160e560020a62461bcd02815260206004820152602860248201526000805160206138fb83398151915260448201526000805160206138db833981519152606482015290519081900360840190fd5b60008381526004602052604090206001015460e060020a900463ffffffff169150811580612aba57504263ffffffff168263ffffffff16115b1515612b12576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061391b833981519152604482015260008051602061395b833981519152606482015290519081900360840190fd5b5060008281526004602052604090206001015460a060020a900463ffffffff16801580612b4b57504263ffffffff168163ffffffff1611155b1515612b8f576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061393b833981519152604482015290519081900360640190fd5b86856000811115612c0357600082815260046020526040902060060154811015612c03576040805160e560020a62461bcd02815260206004820152601d60248201527f626f6e64206d75737420657863656564206d61785f70726576696f7573000000604482015290519081900360640190fd5b60008981526004602052604081206006015411612cb6576040805160e560020a62461bcd02815260206004820152604260248201527f5175657374696f6e206d75737420616c7265616479206861766520616e20616e60448201527f73776572207768656e206172626974726174696f6e206973207265717565737460648201527f6564000000000000000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b600089815260046020526040808220600201805460ff1916600117905551600160a060020a038a16918b917f75d7939999bc902187c4aed400872883e445145f1983539166f783fa040b47629190a3505050505050505050565b6000838152600460205260409020600101548390600160a060020a03163314612d83576040805160e560020a62461bcd02815260206004820152601d60248201527f6d73672e73656e646572206d7573742062652061726269747261746f72000000604482015290519081900360640190fd5b600084815260046020526040902060020154849060ff161515612e15576040805160e560020a62461bcd028152602060048201526024808201527f7175657374696f6e206d7573742062652070656e64696e67206172626974726160448201527f74696f6e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b3415612e6b576040805160e560020a62461bcd02815260206004820152601160248201527f626f6e64206d757374206265207a65726f000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0383161515612ecb576040805160e560020a62461bcd02815260206004820152601960248201527f616e737765726572206d7573742062652070726f766964656400000000000000604482015290519081900360640190fd5b604051849086907f18d760beffe3717270cd90d9d920ec1a48c194e9ad7bba23eb1c92d3eb974f9790600090a36000858152600460205260408120600201805460ff19169055612f219086908690869080613718565b612f2d85856000613315565b5050505050565b604080516020808201879052818301869052606082018590526c01000000000000000000000000600160a060020a0385160260808301527f01000000000000000000000000000000000000000000000000000000000000006094830152825160758184030181526095909201928390528151600093918291908401908083835b60208310612fd35780518252601f199092019160209182019101612fb4565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120891415925061301091505057506001613141565b604080516020808201889052818301879052606082018690526c01000000000000000000000000600160a060020a0386160260808301526000609483015282516075818403018152609590920192839052815191929182918401908083835b6020831061308e5780518252601f19909201916020918201910161306f565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912089141592506130cb91505057506000613141565b6040805160e560020a62461bcd02815260206004820152603660248201527f486973746f727920696e7075742070726f766964656420646964206e6f74206d60448201527f6174636820746865206578706563746564206861736800000000000000000000606482015290519081900360840190fd5b95945050505050565b60008282018381101561315957fe5b8091505b5092915050565b60008060008084156131e457600086815260066020526040902054869250640100000000900460ff1615156131bc576000828152600660205260408120805464ffffffffff1916815560010155899350889250613285565b6000828152600660205260408120600181018054825464ffffffffff19169092559190915595505b858b141561327e57600160a060020a038916151561323d5760008c8152600460205260409020600301549798508897613224908b9063ffffffff61314a16565b60008d815260046020526040812060030155995061327e565b600160a060020a03888116908a161461327e57868a101561325e5789613260565b865b90506132778c8a610c4f8d8563ffffffff6138a816565b8798508099505b8989935093505b50509850989650505050505050565b600160a060020a0382166000908152602081905260409020546132bd908263ffffffff61314a16565b600160a060020a038316600081815260208181526040918290209390935580518481529051919286927f9c121aff33b50c1a53fef034ebec5f83da2d5a5187048f9c76c397ba27c1a1a69281900390910190a3505050565b60008381526004602081905260409091200182905561333e63ffffffff42811690839061389016565b600093845260046020526040909320600101805463ffffffff9490941660e060020a027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff909416939093179092555050565b6000858152600460205260408120600101548190879060c060020a900463ffffffff1615613404576040805160e560020a62461bcd02815260206004820152601760248201527f7175657374696f6e206d757374206e6f74206578697374000000000000000000604482015290519081900360640190fd5b600063ffffffff861611613462576040805160e560020a62461bcd02815260206004820152601860248201527f74696d656f7574206d75737420626520706f7369746976650000000000000000604482015290519081900360640190fd5b6301e1338063ffffffff8616106134e9576040805160e560020a62461bcd02815260206004820152602260248201527f74696d656f7574206d757374206265206c657373207468616e2033363520646160448201527f7973000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0386161515613549576040805160e560020a62461bcd02815260206004820152601660248201527f61726269747261746f72206d7573742062652073657400000000000000000000604482015290519081900360640190fd5b34925033600160a060020a0387161461364a57600160a060020a0386166000908152600760205260409020549150818310156135f4576040805160e560020a62461bcd028152602060048201526024808201527f4554482070726f7669646564206d75737420636f766572207175657374696f6e60448201527f2066656500000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b613604838363ffffffff6138a816565b600160a060020a038716600090815260208190526040902054909350613630908363ffffffff61314a16565b600160a060020a0387166000908152602081905260409020555b505060009586526004602052604090952093845560018401805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03949094169390931777ffffffff0000000000000000000000000000000000000000191660a060020a63ffffffff92831602177fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff1660c060020a929091169190910217905560030155565b600080831515613700576000915061315d565b5082820282848281151561371057fe5b041461315957fe5b600085815260046020908152604080832060050154815180840191909152808201889052606081018690526c01000000000000000000000000600160a060020a0388160260808201527f010000000000000000000000000000000000000000000000000000000000000085151502609482015281516075818303018152609590910191829052805190928291908401908083835b602083106137cb5780518252601f1990920191602091820191016137ac565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060008311156138185760008681526004602052604090206006018390555b600086815260046020908152604091829020600501839055815187815290810183905280820185905242606082015283151560808201529051600160a060020a0386169188917fe47ca4ebbbc2990134d1168821f38c5e177f3d5ee564bffeadeaa351905e62219181900360a00190a3505050505050565b600082820163ffffffff808516908216101561315957fe5b6000828211156138b457fe5b5090039056007175657374696f6e206d757374206578697374000000000000000000000000006974726174696f6e0000000000000000000000000000000000000000000000007175657374696f6e206d757374206e6f742062652070656e64696e672061726266696e616c697a6174696f6e20646561646c696e65206d757374206e6f7420686f70656e696e672064617465206d7573742068617665207061737365640000006176652070617373656400000000000000000000000000000000000000000000a165627a7a72305820e7af9378240e218241c6138a31e3e3b63a25874b9949b4e903f6f855bfc899100029",
 "sourceMap": "128:34707:6:-;;;3057:1;3032:26;;5932:564;8:9:-1;5:2;;;30:1;27;20:12;5:2;5932:564:6;5968:81;;;;;;;;;;;;;;;;;;;;;;;;:14;;;:81;;;:::i;:::-;;6059:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;:97;;;:::i;:::-;;6166:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;:108;;;:::i;:::-;;6284:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;:110;;;:::i;:::-;;6404:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;:85;;;:::i;:::-;;128:34707;;7329:348;7441:14;;7409:7;7465:13;;;:9;:13;;;;;;;;7481:12;7465:28;;7535:25;;;7409:7;;7441:14;7552:7;;7535:25;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;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;;;7535:25:6;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7535:25:6;;;7525:36;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;7525:36:6;;;;;;;;;;;;-1:-1:-1;7503:19:6;;;:15;:19;;;;;:58;;;;7576:39;;;;;;;;;;;7595:10;;-1:-1:-1;7503:19:6;;-1:-1:-1;7576:39:6;;;;-1:-1:-1;7525:36:6;;7576:39;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7576:39:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7642:9;:2;7649:1;7642:6;;;;;;:9;:::i;:::-;7625:14;:26;7668:2;7329:348;-1:-1:-1;;7329:348:6:o;718:129:7:-;776:7;803:5;;;821:6;;;;814:14;;;;841:1;718:129;-1:-1:-1;;;718:129:7:o;128:34707:6:-;;;;;;;",
 "deployedSourceMap": "128:34707:6:-;;;;;;;;;-1:-1:-1;;;128:34707:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24199:2779;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;24199:2779:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;24199:2779:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24199:2779:6;;;;-1:-1:-1;24199:2779:6;-1:-1:-1;24199:2779:6;;-1:-1:-1;24199:2779:6;;;;;;;;;-1:-1:-1;;24199:2779:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24199:2779:6;;;;-1:-1:-1;24199:2779:6;-1:-1:-1;24199:2779:6;;-1:-1:-1;24199:2779:6;;;;;;;;;-1:-1:-1;;24199:2779:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24199:2779:6;;;;-1:-1:-1;24199:2779:6;-1:-1:-1;24199:2779:6;;-1:-1:-1;24199:2779:6;;;;;;;;;-1:-1:-1;24199:2779:6;;-1:-1:-1;24199:2779:6;;-1:-1:-1;;;;;;;24199:2779:6;;;22224:657;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22224:657:6;;;;;-1:-1:-1;;;;;22224:657:6;;;;;;;;;;;;;;;;;;;;;;;;;;;33892:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;33892:127:6;;;;;32505:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;32505:135:6;;;;;;;;;-1:-1:-1;;;;;32505:135:6;;;;;;;;;;;;;;34709:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;34709:123:6;;;;;31099:1003;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;31099:1003:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;31099:1003:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31099:1003:6;;;;-1:-1:-1;31099:1003:6;-1:-1:-1;31099:1003:6;;-1:-1:-1;31099:1003:6;;;;;;;;;-1:-1:-1;;31099:1003:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31099:1003:6;;;;-1:-1:-1;31099:1003:6;-1:-1:-1;31099:1003:6;;-1:-1:-1;31099:1003:6;;;;;;;;;-1:-1:-1;;31099:1003:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31099:1003:6;;;;-1:-1:-1;31099:1003:6;-1:-1:-1;31099:1003:6;;-1:-1:-1;31099:1003:6;;;;;;;;;-1:-1:-1;;31099:1003:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31099:1003:6;;;;-1:-1:-1;31099:1003:6;-1:-1:-1;31099:1003:6;;-1:-1:-1;31099:1003:6;;;;;;;;;-1:-1:-1;;31099:1003:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31099:1003:6;;;;-1:-1:-1;31099:1003:6;-1:-1:-1;31099:1003:6;;-1:-1:-1;31099:1003:6;;;;;;;;;-1:-1:-1;31099:1003:6;;-1:-1:-1;31099:1003:6;;-1:-1:-1;;;;;;;31099:1003:6;191:196:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;191:196:1;;;;16321:905:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16321:905:6;;;;;;;;;;;6770:179;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6770:179:6;;;;;3114:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3114:50:6;;;;;32246:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;32246:138:6;;;;;3221:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3221:48:6;;;;;;;;;-1:-1:-1;;;;;3221:48:6;;;;;;;;;;;;;;;;;;;;;;;;;12367:294;;;;;;3330:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3330:59:6;-1:-1:-1;;;;;3330:59:6;;;;;56:44:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;56:44:1;-1:-1:-1;;;;;56:44:1;;;;;9857:768:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9857:768:6;;-1:-1:-1;;;9857:768:6;;-1:-1:-1;;;;;9857:768:6;;-1:-1:-1;;;;9857:768:6;;;;;;;;;;;;;;;;;;;;;;13152:410;;;;;;;;;;20437:275;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20437:275:6;;;;;;;;;;;;;;;;;;;;;;;34444:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;34444:138:6;;;;;3275:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3275:49:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7329:348;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7329:348:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7329:348:6;;-1:-1:-1;7329:348:6;;-1:-1:-1;;;;;;;7329:348:6;34124:136;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;34124:136:6;;;;;33562:151;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;33562:151:6;;;;;3170:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3170:45:6;;;;;;;;;;;;-1:-1:-1;;;;;3170:45:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32775:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;32775:133:6;;;;;;;;;;;;;;;;;;;;;;;;33035:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;33035:128:6;;;;;8551:424;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8551:424:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8551:424:6;;;;-1:-1:-1;8551:424:6;-1:-1:-1;8551:424:6;;-1:-1:-1;8551:424:6;;;;;;;;-1:-1:-1;8551:424:6;;-1:-1:-1;;;8551:424:6;;-1:-1:-1;;;;;8551:424:6;;-1:-1:-1;;;;8551:424:6;;;;;;;;;;;;;;;;;;;;;;20927:176;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20927:176:6;;;;;33302:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;33302:135:6;;;;;3064:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3064:44:6;;;;;14499:847;;;;;;;;-1:-1:-1;;;;;14499:847:6;;;;;18634:506;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18634:506:6;;;-1:-1:-1;;;;;18634:506:6;;;;;;;19736:523;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19736:523:6;;;;;-1:-1:-1;;;;;19736:523:6;;;;;24199:2779;24581:13;24642:17;24711:20;24996:25;25070:19;25137:9;25334:18;24369:11;5101:24;5113:11;5101;:24::i;:::-;5093:63;;;;;;;-1:-1:-1;;;;;5093:63:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;24412:21;;24436:1;-1:-1:-1;24404:86:6;;;;;-1:-1:-1;;;;;24404:86:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24597:28;;;;:15;:28;;;;;;;;:34;;;24662:38;;;24734:41;;;;;25024:9;:22;;;;;;;:35;;;;25092:34;;;;;-1:-1:-1;;;;;24597:34:6;;;;-1:-1:-1;24662:38:6;-1:-1:-1;24734:41:6;-1:-1:-1;25024:35:6;;-1:-1:-1;25092:34:6;-1:-1:-1;24597:28:6;-1:-1:-1;25156:746:6;25172:14;:21;25168:1;:25;25156:746;;;25355:97;25383:17;25402:14;25417:1;25402:17;;;;;;;;;;;;;;;;;;25421:7;25429:1;25421:10;;;;;;;;;;;;;;;;;;25433:5;25439:1;25433:8;;;;;;;;;;;;;;;;;;25443:5;25449:1;25443:8;;;;;;;;;;;;;;;;;;25355:27;:97::i;:::-;25334:118;-1:-1:-1;25494:27:6;:12;25511:9;25494:27;:16;:27;:::i;:::-;25479:42;;25560:147;25597:11;25610;25623:12;25637:5;25661;25667:1;25661:8;;;;;;;;;;;;;;;;;;25671:5;25677:1;25671:8;;;;;;;;;;;;;;;;;;25681:7;25689:1;25681:10;;;;;;;;;;;;;;;;;;25693:13;25560:19;:147::i;:::-;25831:8;;25536:171;;-1:-1:-1;25536:171:6;;-1:-1:-1;25831:5:6;;25837:1;;25831:8;;;;;;;;;;;;;;25819:20;;25873:14;25888:1;25873:17;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25195:3:6;;;;;25156:746;;;25917:30;;25913:992;;-1:-1:-1;;;;;26352:21:6;;;26348:137;;26393:43;26403:11;26416:5;26423:12;26393:9;:43::i;:::-;26469:1;26454:16;;26348:137;26499:28;;;;:15;:28;;;;;:42;;-1:-1:-1;;26499:42:6;-1:-1:-1;;;;;26499:42:6;;;;;-1:-1:-1;26555:38:6;;:50;;;26619:41;;:56;;;25913:992;;;26787:58;26797:11;26810:5;26817:27;:12;26834:9;26817:27;:16;:27;:::i;:::-;26787:9;:58::i;:::-;26866:28;;;;:15;:28;;;;;26859:35;;-1:-1:-1;;26859:35:6;;;;;;;;;;;;25913:992;-1:-1:-1;;;26915:22:6;;;;-1:-1:-1;26915:9:6;:22;;;;;;:35;;:55;;;;-1:-1:-1;;;;;;;24199:2779:6:o;22224:657::-;22445:7;22405:11;5101:24;5113:11;5101;:24::i;:::-;5093:63;;;;;;;-1:-1:-1;;;;;5093:63:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;22488:22;;;;:9;:22;;;;;:35;22472:51;;22464:87;;;;;-1:-1:-1;;;;;22464:87:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;22583:22;;;;:9;:22;;;;;:33;;;-1:-1:-1;;;;;22569:47:6;;;22583:33;;22569:47;22561:81;;;;;-1:-1:-1;;;;;22561:81:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;22675:22;;;;:9;:22;;;;;:30;;;;-1:-1:-1;;;22675:30:6;;;;;22660:45;;;;;22652:85;;;;;-1:-1:-1;;;;;22652:85:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;22767:22;;;;:9;:22;;;;;:27;;;22755:39;;;22747:76;;;;;-1:-1:-1;;;;;22747:76:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;22840:22;;;;:9;:22;;;;;;;;:34;;;-1:-1:-1;22224:657:6;;;;;;;;:::o;33892:127::-;33957:7;33983:22;;;:9;:22;;;;;:29;;;;33892:127::o;32505:135::-;32574:7;32600:22;;;:9;:22;;;;;:33;;;-1:-1:-1;;;;;32600:33:6;;32505:135::o;34709:123::-;34772:7;34798:22;;;:9;:22;;;;;:27;;;;34709:123::o;31099:1003::-;31398:10;;;;31578:19;;;;31398:10;31437:639;31455:12;:19;31450:2;:24;31437:639;;;31510:12;31523:2;31510:16;;;;;;;;;;;;;;;;;;31496:30;;31553:7;31561:2;31553:11;;;;;;;;;;;;;;;;;;31540:24;;31614:2;31600:17;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;31600:17:6;;31578:39;;31667:2;31653:17;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;31653:17:6;;31631:39;;31720:2;31706:17;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;31706:17:6;;31684:39;;31773:2;31759:17;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;31759:17:6;;31737:39;;31822:1;31818:5;;31813:205;31829:2;31825:1;:6;31813:205;;;31864:11;31876:1;31864:14;;;;;;;;;;;;;;;;;;31856:2;31859:1;31856:5;;;;;;;;;;;;;;;;;;:22;31904:8;;:5;;31910:1;;31904:8;;;;;;;;;;;;;;31896:2;31899:1;31896:5;;;;;;;;;;-1:-1:-1;;;;;31896:16:6;;;:5;;;;;;;;;;:16;31938:8;;:5;;31944:1;;31938:8;;;;;;;;;;;;;;31930:2;31933:1;31930:5;;;;;;;;;;;;;;;;;;:16;31972:10;;:7;;31980:1;;31972:10;;;;;;;;;;;;;;31964:2;31967:1;31964:5;;;;;;;;;;;;;;;;;;:18;32000:3;;;;;31833;31813:205;;;32031:34;32045:3;32050:2;32054;32058;32062;32031:13;:34::i;:::-;31476:4;;;;;31437:639;;;32085:10;:8;:10::i;:::-;31099:1003;;;;;;;;;;;;;;;:::o;191:196:1:-;257:10;233:11;247:21;;;;;;;;;;;;;278:25;;;;313:24;;247:21;;257:10;313:24;;;;;247:21;;313:24;233:11;313:24;247:21;257:10;313:24;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;352:28:1;;;;;;;;364:10;;352:28;;;;;;;;;;191:196;:::o;16321:905:6:-;16491:19;4613:22;;;:9;:22;;;;;:30;;;16491:19;;4613:22;;16491:19;;;;-1:-1:-1;;;4613:30:6;;;;-1:-1:-1;;4605:66:6;;;;;-1:-1:-1;;;;;4605:66:6;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4605:66:6;;;;;;;;;;;;;;;4702:22;;;;:9;:22;;;;;:34;;;-1:-1:-1;;;4702:34:6;;;;;-1:-1:-1;4754:25:6;;;:54;;;4804:3;4783:25;;:11;:25;;;4754:54;4746:108;;;;;;;-1:-1:-1;;;;;4746:108:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4884:22:6;;;;:9;:22;;;;;:33;;;-1:-1:-1;;;4884:33:6;;;;4935:15;;;:44;;;4975:3;4954:25;;:10;:25;;;;4935:44;4927:86;;;;;;;-1:-1:-1;;;;;4927:86:6;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4927:86:6;;;;;;;;;;;;;;;16523:31;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;16523:31:6;;;;;;;;16513:42;;16523:31;;;;;16513:42;;;;16523:31;16513:42;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;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;;;16513:42:6;;;;;;;;;;;;;;;;16491:64;;16616:11;16629;16642:4;16599:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;16599:48:6;;;16589:59;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;16589:59:6;;;;;;;;;;;;;-1:-1:-1;16668:26:6;;;:11;:26;;;;;;:38;16589:59;;-1:-1:-1;;16668:38:6;;;;;16667:39;;-1:-1:-1;16659:94:6;;-1:-1:-1;16659:94:6;;;;-1:-1:-1;;;;;16659:94:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16771:26;;;;:11;:26;;;;;:36;:50;16817:3;16771:50;;:36;;:50;16763:99;;;;;-1:-1:-1;;;;;16763:99:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16873:26;;;;:11;:26;;;;;;;;:42;;;:51;;;16934:45;;-1:-1:-1;;16934:45:6;;;;;17002:22;;;16934:38;17002:22;;;;;;:27;;16994:35;;16990:139;;;17087:22;;;;:9;:22;;;;;:30;;;17045:73;;17087:22;;17079:6;;-1:-1:-1;;;17087:30:6;;;;17045:20;:73::i;:::-;17144:74;;;;;;;;;;;;;;;;;;;;17185:11;;17173:10;;17160:11;;17144:74;;;;;;;;;;16321:905;;;;;;;;;:::o;6770:179::-;6876:10;6851:36;;;;:24;:36;;;;;;;;;:42;;;6908:34;;;;;;;;;;;;;;;;;;;;;;6770:179;:::o;3114:50::-;;;;;;;;;;;;;:::o;32246:138::-;32316:7;32342:22;;;:9;:22;;;;;:35;;32246:138::o;3221:48::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3221:48:6;;;;;;:::o;12367:294::-;3995:18;3818:22;;;:9;:22;;;;;:30;;;:22;;3995:18;;;-1:-1:-1;;;3818:30:6;;;;-1:-1:-1;;3810:66:6;;;;;-1:-1:-1;;;;;3810:66:6;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3810:66:6;;;;;;;;;;;;;;;3895:22;;;;:9;:22;;;;;:45;;;;;3894:46;3886:99;;;;;-1:-1:-1;;;;;3886:99:6;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3886:99:6;;;;-1:-1:-1;;;;;;;;;;;3886:99:6;;;;;;;;;;;;;;;4016:22;;;;:9;:22;;;;;:34;;;-1:-1:-1;;;4016:34:6;;;;;-1:-1:-1;4068:25:6;;;:54;;;4118:3;4097:25;;:11;:25;;;4068:54;4060:109;;;;;;;-1:-1:-1;;;;;4060:109:6;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4060:109:6;;;;-1:-1:-1;;;;;;;;;;;4060:109:6;;;;;;;;;;;;;;;-1:-1:-1;4199:22:6;;;;:9;:22;;;;;:33;;;-1:-1:-1;;;4199:33:6;;;;4250:15;;;:44;;;4290:3;4269:25;;:10;:25;;;;4250:44;4242:86;;;;;;;-1:-1:-1;;;;;4242:86:6;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4242:86:6;;;;;;;;;;;;;;;12509:22;;;;:9;:22;;;;;:29;;;:44;;12543:9;12509:44;:33;:44;:::i;:::-;12477:22;;;;:9;:22;;;;;;;;;:29;;:76;;;12568:86;;12601:9;12568:86;;;;;;;;;;;12643:10;;12487:11;;12568:86;;;;;;;;;12367:294;;;;:::o;3330:59::-;;;;;;;;;;;;;:::o;56:44:1:-;;;;;;;;;;;;;;:::o;9857:768:6:-;10083:7;10111:22;;;:9;:22;;;;;;10083:7;;;;10111:26;-1:-1:-1;10103:58:6;;;;;-1:-1:-1;;;;;10103:58:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;10222:11;10235:10;10247:8;10205:51;;;;;;;;;;;;;;;-1:-1:-1;;;10205:51:6;;;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;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;;;10205:51:6;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;10205:51:6;;;10195:62;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;10195:62:6;;;;;;;;;;;;10299:70;;;;;;-1:-1:-1;;;;;10299:70:6;;;;;;;;;;;;;-1:-1:-1;;;10299:70:6;;;;;10351:10;10299:70;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;10299:70:6;;;;;;;;10289:81;;10195:62;;-1:-1:-1;10299:70:6;;-1:-1:-1;10299:70:6;;-1:-1:-1;10299:70:6;;10289:81;;;-1:-1:-1;10289:81:6;10299:70;10289:81;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;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;;;10289:81:6;;;;;;;;;;;;;;;;10267:103;;10381:72;10394:11;10407:12;10421:10;10433:7;10442:10;10381:12;:72::i;:::-;10531:12;10468:121;;;10496:10;-1:-1:-1;;;;;10468:121:6;10483:11;10468:121;;;;10508:11;10521:8;10545:10;10557:7;10566:10;10578:5;10585:3;10468:121;;;;;;;;;;;;-1:-1:-1;;;;;10468:121:6;-1:-1:-1;;;;;10468:121:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10468:121:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10607:11;9857:768;-1:-1:-1;;;;;;;;9857:768:6:o;13152:410::-;3995:18;3818:22;;;:9;:22;;;;;:30;;;:22;;3995:18;;;-1:-1:-1;;;3818:30:6;;;;-1:-1:-1;;3810:66:6;;;;;-1:-1:-1;;;;;3810:66:6;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3810:66:6;;;;;;;;;;;;;;;3895:22;;;;:9;:22;;;;;:45;;;;;3894:46;3886:99;;;;;-1:-1:-1;;;;;3886:99:6;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3886:99:6;;;;-1:-1:-1;;;;;;;;;;;3886:99:6;;;;;;;;;;;;;;;4016:22;;;;:9;:22;;;;;:34;;;-1:-1:-1;;;4016:34:6;;;;;-1:-1:-1;4068:25:6;;;:54;;;4118:3;4097:25;;:11;:25;;;4068:54;4060:109;;;;;;;-1:-1:-1;;;;;4060:109:6;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4060:109:6;;;;-1:-1:-1;;;;;;;;;;;4060:109:6;;;;;;;;;;;;;;;-1:-1:-1;4199:22:6;;;;:9;:22;;;;;:33;;;-1:-1:-1;;;4199:33:6;;;;4250:15;;;:44;;;4290:3;4269:25;;:10;:25;;;;4250:44;4242:86;;;;;;;-1:-1:-1;;;;;4242:86:6;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4242:86:6;;;;;;;;;;;;;;;13288:11;5359:1;5347:9;:13;5339:47;;;;;-1:-1:-1;;;;;5339:47:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;5419:22;;;;:9;:22;;;;;:27;;;:34;;5451:1;5419:34;:31;:34;:::i;:::-;5405:9;:49;;5397:104;;;;;-1:-1:-1;;;;;5397:104:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13344:11;13357:12;5641:1;5626:12;:16;5622:132;;;5666:22;;;;:9;:22;;;;;:27;;;:43;-1:-1:-1;5666:43:6;5658:85;;;;;-1:-1:-1;;;;;5658:85:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;13402:70;13422:11;13435:6;13443:10;13455:9;13466:5;13402:19;:70::i;:::-;13524:22;;;;:9;:22;;;;;:30;;;13482:73;;13524:22;;13516:6;;-1:-1:-1;;;13524:30:6;;;;13482:20;:73::i;:::-;5511:1;;4339;13152:410;;;;;;:::o;20437:275::-;20505:4;20542:22;;;:9;:22;;;;;:34;;;;20596:45;;;;;-1:-1:-1;;;20542:34:6;;;;;;20596:45;;20595:46;:76;;;;-1:-1:-1;543:1:6;20646:24;;;;20595:76;:108;;;;;20698:3;20676:26;;:11;:26;;;;20595:108;20586:119;20437:275;-1:-1:-1;;;20437:275:6:o;34444:138::-;34514:7;34540:22;;;:9;:22;;;;;:35;;;;34444:138::o;3275:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7329:348::-;7441:14;;7409:7;7465:13;;;:9;:13;;;;;;;;7481:12;7465:28;;7535:25;;;7409:7;;7441:14;7552:7;;7535:25;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;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;;;7535:25:6;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7535:25:6;;;7525:36;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;7525:36:6;;;;;;;;;;;;-1:-1:-1;7503:19:6;;;:15;:19;;;;;:58;;;;7576:39;;;;;;;;;;;7595:10;;-1:-1:-1;7503:19:6;;-1:-1:-1;7576:39:6;;;;-1:-1:-1;7525:36:6;;7576:39;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7576:39:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7642:9;:2;7649:1;7642:9;:6;:9;:::i;:::-;7625:14;:26;7668:2;7329:348;-1:-1:-1;;7329:348:6:o;34124:136::-;34193:7;34219:22;;;:9;:22;;;;;;;;:34;;;34124:136::o;33562:151::-;33638:4;33661:22;;;:9;:22;;;;;:45;;;;;;33562:151::o;3170:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3170:45:6;;;;-1:-1:-1;;;3170:45:6;;;;;-1:-1:-1;;;3170:45:6;;;;;-1:-1:-1;;;3170:45:6;;;;;;;;;;;;:::o;32775:133::-;32843:6;32868:22;;;:9;:22;;;;;:33;;;-1:-1:-1;;;32868:33:6;;;;;32775:133::o;33035:128::-;33101:6;33126:22;;;:9;:22;;;;;:30;;;-1:-1:-1;;;33126:30:6;;;;;33035:128::o;8551:424::-;8813:7;8832:19;8854:23;8869:7;8854:14;:23::i;:::-;8832:45;;8894:74;8906:11;8919:8;8929:10;8941:7;8950:10;8962:5;8894:11;:74::i;:::-;8887:81;8551:424;-1:-1:-1;;;;;;;;8551:424:6:o;20927:176::-;21036:7;20996:11;5101:24;5113:11;5101;:24::i;:::-;5093:63;;;;;;;-1:-1:-1;;;;;5093:63:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21062:22:6;;;;:9;:22;;;;;;;;:34;;;20927:176::o;33302:135::-;33371:6;33396:22;;;:9;:22;;;;;:34;;;-1:-1:-1;;;33396:34:6;;;;;33302:135::o;3064:44::-;;;;;;;;;;;;;:::o;14499:847::-;14784:21;3818:22;;;:9;:22;;;;;:30;;;14784:21;;;;3818:22;;14784:21;;;;-1:-1:-1;;;3818:30:6;;;;-1:-1:-1;;3810:66:6;;;;;-1:-1:-1;;;;;3810:66:6;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3810:66:6;;;;;;;;;;;;;;;3895:22;;;;:9;:22;;;;;:45;;;;;3894:46;3886:99;;;;;-1:-1:-1;;;;;3886:99:6;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3886:99:6;;;;-1:-1:-1;;;;;;;;;;;3886:99:6;;;;;;;;;;;;;;;4016:22;;;;:9;:22;;;;;:34;;;-1:-1:-1;;;4016:34:6;;;;;-1:-1:-1;4068:25:6;;;:54;;;4118:3;4097:25;;:11;:25;;;4068:54;4060:109;;;;;;;-1:-1:-1;;;;;4060:109:6;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4060:109:6;;;;-1:-1:-1;;;;;;;;;;;4060:109:6;;;;;;;;;;;;;;;-1:-1:-1;4199:22:6;;;;:9;:22;;;;;:33;;;-1:-1:-1;;;4199:33:6;;;;4250:15;;;:44;;;4290:3;4269:25;;:10;:25;;;;4250:44;4242:86;;;;;;;-1:-1:-1;;;;;4242:86:6;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4242:86:6;;;;;;;;;;;;;;;14669:11;5359:1;5347:9;:13;5339:47;;;;;-1:-1:-1;;;;;5339:47:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;5419:22;;;;:9;:22;;;;;:27;;;:34;;5451:1;5419:34;:31;:34;:::i;:::-;5405:9;:49;;5397:104;;;;;-1:-1:-1;;;;;5397:104:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14725:11;14738:12;5641:1;5626:12;:16;5622:132;;;5666:22;;;;:9;:22;;;;;:27;;;:43;-1:-1:-1;5666:43:6;5658:85;;;;;-1:-1:-1;;;;;5658:85:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;14835:11;14848;14861:9;14818:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;14818:53:6;;;14808:64;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;;;;365:33;;14808:64:6;;;;;;;;;;;-1:-1:-1;;;;;;;;;14902:25:6;;;14901:52;;14944:9;14901:52;;;14931:10;14901:52;680:1;14972:26;;;:11;:26;;;;;:36;14882:71;;-1:-1:-1;14972:36:6;;:63;14964:109;;;;;-1:-1:-1;;;;;14964:109:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15112:22;;;;:9;:22;;;;;:30;;;808:1;;-1:-1:-1;;;15112:30:6;;:57;:30;:57;;-1:-1:-1;15218:35:6;:15;15225:3;15218:15;;;15112:57;;15218:15;:35;:::i;:::-;15179:26;;;;:11;:26;;;;;:74;;-1:-1:-1;;15179:74:6;;;;;;;;;;;;15264;15284:11;15179:26;15312:8;15322:9;-1:-1:-1;15264:19:6;:74::i;:::-;5511:1;;4339;14499:847;;;;;;;;;;:::o;18634:506::-;3474:22;;;;:9;:22;;;;;:33;;;:22;;-1:-1:-1;;;;;3474:33:6;3460:10;:47;3452:89;;;;;-1:-1:-1;;;;;3452:89:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;3995:18;3818:22;;;:9;:22;;;;;:30;;;:22;;3995:18;;;-1:-1:-1;;;3818:30:6;;;;-1:-1:-1;;3810:66:6;;;;;-1:-1:-1;;;;;3810:66:6;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3810:66:6;;;;;;;;;;;;;;;3895:22;;;;:9;:22;;;;;:45;;;;;3894:46;3886:99;;;;;-1:-1:-1;;;;;3886:99:6;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3886:99:6;;;;-1:-1:-1;;;;;;;;;;;3886:99:6;;;;;;;;;;;;;;;4016:22;;;;:9;:22;;;;;:34;;;-1:-1:-1;;;4016:34:6;;;;;-1:-1:-1;4068:25:6;;;:54;;;4118:3;4097:25;;:11;:25;;;4068:54;4060:109;;;;;;;-1:-1:-1;;;;;4060:109:6;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4060:109:6;;;;-1:-1:-1;;;;;;;;;;;4060:109:6;;;;;;;;;;;;;;;-1:-1:-1;4199:22:6;;;;:9;:22;;;;;:33;;;-1:-1:-1;;;4199:33:6;;;;4250:15;;;:44;;;4290:3;4269:25;;:10;:25;;;;4250:44;4242:86;;;;;;;-1:-1:-1;;;;;4242:86:6;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4242:86:6;;;;;;;;;;;;;;;18843:11;18856:12;5641:1;5626:12;:16;5622:132;;;5666:22;;;;:9;:22;;;;;:27;;;:43;-1:-1:-1;5666:43:6;5658:85;;;;;-1:-1:-1;;;;;5658:85:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;18931:1;18901:22;;;:9;:22;;;;;:27;;;:31;18893:110;;;;;-1:-1:-1;;;;;18893:110:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19013:22;;;;:9;:22;;;;;;:45;;:52;;-1:-1:-1;;19013:52:6;19061:4;19013:52;;;19080:53;-1:-1:-1;;;;;19080:53:6;;;19023:11;;19080:53;;19013:22;19080:53;4339:1;;3551;;;18634:506;;;;:::o;19736:523::-;3474:22;;;;:9;:22;;;;;:33;;;:22;;-1:-1:-1;;;;;3474:33:6;3460:10;:47;3452:89;;;;;-1:-1:-1;;;;;3452:89:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;4425:22;;;;:9;:22;;;;;:45;;;19894:11;;4425:45;;4417:94;;;;;;;-1:-1:-1;;;;;4417:94:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5224:9;:14;5216:44;;;;;-1:-1:-1;;;;;5216:44:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19962:24:6;;;;19954:62;;;;;-1:-1:-1;;;;;19954:62:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;20031:32;;20056:6;;20043:11;;20031:32;;;;;20122:5;20074:22;;;:9;:22;;;;;:45;;:53;;-1:-1:-1;;20074:53:6;;;20137:60;;20084:11;;20170:6;;20178:8;;20122:5;20137:19;:60::i;:::-;20207:44;20228:11;20241:6;20249:1;20207:20;:44::i;:::-;3551:1;19736:523;;;;:::o;27187:549::-;27417:56;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27417:56:6;;;;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;27417:56:6;;;;;;;;27407:67;;27366:4;;27417:56;;;27407:67;;;;;27417:56;27407:67;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;;;;365:33;;27407:67:6;;;;;;;;;;27386:88;;27382:131;;-1:-1:-1;27382:131:6;;-1:-1:-1;;27382:131:6;-1:-1:-1;27498:4:6;27491:11;;27382:131;27557:57;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27557:57:6;;;;;;;27608:5;27557:57;;;;;;22:32:-1;26:21;;;22:32;6:49;;27557:57:6;;;;;;;;27547:68;;27557:57;;;;;27547:68;;;;27557:57;27547:68;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;;;;365:33;;27547:68:6;;;;;;;;;;27526:89;;27522:133;;-1:-1:-1;27522:133:6;;-1:-1:-1;;27522:133:6;-1:-1:-1;27639:5:6;27632:12;;27522:133;27665:64;;;-1:-1:-1;;;;;27665:64:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27187:549;;;;;;;;:::o;718:129:7:-;776:7;803:5;;;821:6;;;;814:14;;;;841:1;834:8;;718:129;;;;;;:::o;27742:2412:6:-;27968:7;27977;28214:21;29692:27;28185:13;28181:482;;;28360:26;;;;:11;:26;;;;;:38;:26;;-1:-1:-1;28360:38:6;;;;;28359:39;28355:298;;;28425:26;;;;:11;:26;;;;;28418:33;;-1:-1:-1;;28418:33:6;;;;;;28477:12;;-1:-1:-1;28491:5:6;;-1:-1:-1;28469:28:6;;28355:298;28545:26;;;;:11;:26;;;;;:42;;;;;28605:33;;-1:-1:-1;;28605:33:6;;;;;;;;28545:42;-1:-1:-1;28355:298:6;28677:21;;;28673:1435;;;-1:-1:-1;;;;;28719:21:6;;;28715:1382;;;28951:22;;;;:9;:22;;;;;:29;;;28897:4;;-1:-1:-1;28897:4:6;;28934:47;;:12;;:47;:16;:47;:::i;:::-;29031:1;28999:22;;;:9;:22;;;;;:29;;:33;28919:62;-1:-1:-1;28715:1382:6;;;-1:-1:-1;;;;;29058:13:6;;;;;;;29054:1043;;29739:4;29723:12;:20;;29722:44;;29754:12;29722:44;;;29747:4;29722:44;29692:74;-1:-1:-1;29849:68:6;29859:11;29872:5;29879:37;:12;29692:74;29879:37;:16;:37;:::i;29849:68::-;30025:4;30017:12;;30062:19;30047:34;;29054:1043;30126:12;30140:5;30118:28;;;;27742:2412;;;;;;;;;;;;;;:::o;26984:197::-;-1:-1:-1;;;;;27097:16:6;;:9;:16;;;;;;;;;;;:27;;27118:5;27097:27;:20;:27;:::i;:::-;-1:-1:-1;;;;;27078:16:6;;:9;:16;;;;;;;;;;;;:46;;;;27139:35;;;;;;;27078:16;;27148:11;;27139:35;;;;;;;;;;26984:197;;;:::o;17916:237::-;18027:22;;;;:9;:22;;;;;;;;:34;:43;;;18117:29;:15;18124:3;18117:15;;;18133:12;;18117:15;:29;:::i;:::-;18080:22;;;;:9;:22;;;;;;:34;;:66;;;;;;;-1:-1:-1;;;18080:66:6;;;;;;;;;;;;-1:-1:-1;;17916:237:6:o;10631:1487::-;11102:14;3673:22;;;:9;:22;;;;;:30;;;11102:14;;3673:22;;-1:-1:-1;;;3673:30:6;;;;:35;3665:71;;;;;-1:-1:-1;;;;;3665:71:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;10913:1;10903:11;;;;10895:48;;;;;-1:-1:-1;;;;;10895:48:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;10972:8;10962:18;;;;10954:65;;;;;-1:-1:-1;;;;;10954:65:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11038:26:6;;;;11030:61;;;;;-1:-1:-1;;;;;11030:61:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;11119:9;;-1:-1:-1;11520:10:6;-1:-1:-1;;;;;11520:24:6;;;11516:324;;-1:-1:-1;;;;;11583:36:6;;;;;;:24;:36;;;;;;;-1:-1:-1;11641:22:6;;;;11633:71;;;;;-1:-1:-1;;;;;11633:71:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11728:24;:6;11739:12;11728:24;:10;:24;:::i;:::-;-1:-1:-1;;;;;11790:21:6;;:9;:21;;;;;;;;;;;11719:33;;-1:-1:-1;11790:39:6;;11816:12;11790:39;:25;:39;:::i;:::-;-1:-1:-1;;;;;11766:21:6;;:9;:21;;;;;;;;;;:63;11516:324;-1:-1:-1;;11850:22:6;;;;:9;:22;;;;;;:50;;;11910:33;;;:46;;-1:-1:-1;;11910:46:6;-1:-1:-1;;;;;11910:46:6;;;;;;;;-1:-1:-1;;11966:46:6;-1:-1:-1;;;11966:46:6;;;;;;12022:40;;-1:-1:-1;;;12022:40:6;;;;;;;;;;;12072:29;;:38;10631:1487::o;158:173:7:-;216:7;;235:6;;231:35;;;258:1;251:8;;;;231:35;-1:-1:-1;283:5:7;;;287:1;283;:5;301;;;;;;;;:10;294:18;;;17232:678:6;17396:24;17450:22;;;:9;:22;;;;;;;;:35;;;17433:109;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17433:109:6;;;;;;;;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;17433:109:6;;;;;;;;17423:120;;17433:109;;;;17423:120;;;;;17433:109;17423:120;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;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;;;17423:120:6;;;;;;;;;;;;;;;;17396:147;;17658:1;17651:4;:8;17647:73;;;17675:22;;;;:9;:22;;;;;:27;;:34;;;17647:73;17729:22;;;;:9;:22;;;;;;;;;:35;;:54;;;17799:104;;;;;;;;;;;;;;;;;17884:3;17799:104;;;;;;;;;;;;;-1:-1:-1;;;;;17799:104:6;;;17739:11;;17799:104;;;;;;;;;17232:678;;;;;;:::o;254:125:8:-;310:6;335:5;;;353:6;;;;;;;;;346:14;;;604:110:7;662:7;684:6;;;;677:14;;;;-1:-1:-1;704:5:7;;;604:110::o",
 "source": "pragma solidity 0.4.25;\n\nimport './RealitioSafeMath256.sol';\nimport './RealitioSafeMath32.sol';\nimport './BalanceHolder.sol';\n\n\ncontract Realitio 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 bondMustBeZero() {\n        require(msg.value == 0, \"bond must be zero\");\n        _;\n    }\n\n    modifier bondMustDouble(bytes32 question_id) {\n        require(msg.value > 0, \"bond must be positive\"); \n        require(msg.value >= (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    /// @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 payable 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 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    /// @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 payable 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);\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 _askQuestion(bytes32 question_id, bytes32 content_hash, address arbitrator, uint32 timeout, uint32 opening_ts) \n        stateNotCreated(question_id)\n    internal {\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        uint256 bounty = msg.value;\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, \"ETH 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    function fundAnswerBounty(bytes32 question_id) \n        stateOpen(question_id)\n    external payable {\n        questions[question_id].bounty = questions[question_id].bounty.add(msg.value);\n        emit LogFundAnswerBounty(question_id, msg.value, 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    function submitAnswer(bytes32 question_id, bytes32 answer, uint256 max_previous) \n        stateOpen(question_id)\n        bondMustDouble(question_id)\n        previousBondMustNotBeatMaxPrevious(question_id, max_previous)\n    external payable {\n        _addAnswerToHistory(question_id, answer, msg.sender, msg.value, false);\n        _updateCurrentAnswer(question_id, answer, questions[question_id].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    /// @dev Specifying the answerer is useful if you want to delegate the commit-and-reveal to a third-party.\n    function submitAnswerCommitment(bytes32 question_id, bytes32 answer_hash, uint256 max_previous, address _answerer) \n        stateOpen(question_id)\n        bondMustDouble(question_id)\n        previousBondMustNotBeatMaxPrevious(question_id, max_previous)\n    external payable {\n\n        bytes32 commitment_id = keccak256(abi.encodePacked(question_id, answer_hash, msg.value));\n        address answerer = (_answerer == NULL_ADDRESS) ? msg.sender : _answerer;\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        _addAnswerToHistory(question_id, commitment_id, answerer, msg.value, 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        bondMustBeZero\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/Realitio.sol",
 "ast": {
  "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/Realitio.sol",
  "exportedSymbols": {
   "Realitio": [
    2516
   ]
  },
  "id": 2517,
  "nodeType": "SourceUnit",
  "nodes": [
   {
    "id": 500,
    "literals": [
     "solidity",
     "0.4",
     ".25"
    ],
    "nodeType": "PragmaDirective",
    "src": "0:23:6"
   },
   {
    "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/RealitioSafeMath256.sol",
    "file": "./RealitioSafeMath256.sol",
    "id": 501,
    "nodeType": "ImportDirective",
    "scope": 2517,
    "sourceUnit": 2615,
    "src": "25:35:6",
    "symbolAliases": [],
    "unitAlias": ""
   },
   {
    "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/RealitioSafeMath32.sol",
    "file": "./RealitioSafeMath32.sol",
    "id": 502,
    "nodeType": "ImportDirective",
    "scope": 2517,
    "sourceUnit": 2642,
    "src": "61:34:6",
    "symbolAliases": [],
    "unitAlias": ""
   },
   {
    "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/BalanceHolder.sol",
    "file": "./BalanceHolder.sol",
    "id": 503,
    "nodeType": "ImportDirective",
    "scope": 2517,
    "sourceUnit": 357,
    "src": "96:29:6",
    "symbolAliases": [],
    "unitAlias": ""
   },
   {
    "baseContracts": [
     {
      "arguments": null,
      "baseName": {
       "contractScope": null,
       "id": 504,
       "name": "BalanceHolder",
       "nodeType": "UserDefinedTypeName",
       "referencedDeclaration": 356,
       "src": "149:13:6",
       "typeDescriptions": {
        "typeIdentifier": "t_contract$_BalanceHolder_$356",
        "typeString": "contract BalanceHolder"
       }
      },
      "id": 505,
      "nodeType": "InheritanceSpecifier",
      "src": "149:13:6"
     }
    ],
    "contractDependencies": [
     356
    ],
    "contractKind": "contract",
    "documentation": null,
    "fullyImplemented": true,
    "id": 2516,
    "linearizedBaseContracts": [
     2516,
     356
    ],
    "name": "Realitio",
    "nodeType": "ContractDefinition",
    "nodes": [
     {
      "id": 508,
      "libraryName": {
       "contractScope": null,
       "id": 506,
       "name": "RealitioSafeMath256",
       "nodeType": "UserDefinedTypeName",
       "referencedDeclaration": 2614,
       "src": "176:19:6",
       "typeDescriptions": {
        "typeIdentifier": "t_contract$_RealitioSafeMath256_$2614",
        "typeString": "library RealitioSafeMath256"
       }
      },
      "nodeType": "UsingForDirective",
      "src": "170:38:6",
      "typeName": {
       "id": 507,
       "name": "uint256",
       "nodeType": "ElementaryTypeName",
       "src": "200:7:6",
       "typeDescriptions": {
        "typeIdentifier": "t_uint256",
        "typeString": "uint256"
       }
      }
     },
     {
      "id": 511,
      "libraryName": {
       "contractScope": null,
       "id": 509,
       "name": "RealitioSafeMath32",
       "nodeType": "UserDefinedTypeName",
       "referencedDeclaration": 2641,
       "src": "219:18:6",
       "typeDescriptions": {
        "typeIdentifier": "t_contract$_RealitioSafeMath32_$2641",
        "typeString": "library RealitioSafeMath32"
       }
      },
      "nodeType": "UsingForDirective",
      "src": "213:36:6",
      "typeName": {
       "id": 510,
       "name": "uint32",
       "nodeType": "ElementaryTypeName",
       "src": "242:6:6",
       "typeDescriptions": {
        "typeIdentifier": "t_uint32",
        "typeString": "uint32"
       }
      }
     },
     {
      "constant": true,
      "id": 516,
      "name": "NULL_ADDRESS",
      "nodeType": "VariableDeclaration",
      "scope": 2516,
      "src": "255:42:6",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_address",
       "typeString": "address"
      },
      "typeName": {
       "id": 512,
       "name": "address",
       "nodeType": "ElementaryTypeName",
       "src": "255:7:6",
       "typeDescriptions": {
        "typeIdentifier": "t_address",
        "typeString": "address"
       }
      },
      "value": {
       "argumentTypes": null,
       "arguments": [
        {
         "argumentTypes": null,
         "hexValue": "30",
         "id": 514,
         "isConstant": false,
         "isLValue": false,
         "isPure": true,
         "kind": "number",
         "lValueRequested": false,
         "nodeType": "Literal",
         "src": "295:1:6",
         "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": 513,
        "isConstant": false,
        "isLValue": false,
        "isPure": true,
        "lValueRequested": false,
        "nodeType": "ElementaryTypeNameExpression",
        "src": "287:7:6",
        "typeDescriptions": {
         "typeIdentifier": "t_type$_t_address_$",
         "typeString": "type(address)"
        },
        "typeName": "address"
       },
       "id": 515,
       "isConstant": false,
       "isLValue": false,
       "isPure": true,
       "kind": "typeConversion",
       "lValueRequested": false,
       "names": [],
       "nodeType": "FunctionCall",
       "src": "287:10:6",
       "typeDescriptions": {
        "typeIdentifier": "t_address",
        "typeString": "address"
       }
      },
      "visibility": "internal"
     },
     {
      "constant": true,
      "id": 521,
      "name": "NULL_HASH",
      "nodeType": "VariableDeclaration",
      "scope": 2516,
      "src": "380:39:6",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_bytes32",
       "typeString": "bytes32"
      },
      "typeName": {
       "id": 517,
       "name": "bytes32",
       "nodeType": "ElementaryTypeName",
       "src": "380:7:6",
       "typeDescriptions": {
        "typeIdentifier": "t_bytes32",
        "typeString": "bytes32"
       }
      },
      "value": {
       "argumentTypes": null,
       "arguments": [
        {
         "argumentTypes": null,
         "hexValue": "30",
         "id": 519,
         "isConstant": false,
         "isLValue": false,
         "isPure": true,
         "kind": "number",
         "lValueRequested": false,
         "nodeType": "Literal",
         "src": "417:1:6",
         "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": 518,
        "isConstant": false,
        "isLValue": false,
        "isPure": true,
        "lValueRequested": false,
        "nodeType": "ElementaryTypeNameExpression",
        "src": "409:7:6",
        "typeDescriptions": {
         "typeIdentifier": "t_type$_t_bytes32_$",
         "typeString": "type(bytes32)"
        },
        "typeName": "bytes32"
       },
       "id": 520,
       "isConstant": false,
       "isLValue": false,
       "isPure": true,
       "kind": "typeConversion",
       "lValueRequested": false,
       "names": [],
       "nodeType": "FunctionCall",
       "src": "409:10:6",
       "typeDescriptions": {
        "typeIdentifier": "t_bytes32",
        "typeString": "bytes32"
       }
      },
      "visibility": "internal"
     },
     {
      "constant": true,
      "id": 524,
      "name": "UNANSWERED",
      "nodeType": "VariableDeclaration",
      "scope": 2516,
      "src": "514:30:6",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_uint32",
       "typeString": "uint32"
      },
      "typeName": {
       "id": 522,
       "name": "uint32",
       "nodeType": "ElementaryTypeName",
       "src": "514:6:6",
       "typeDescriptions": {
        "typeIdentifier": "t_uint32",
        "typeString": "uint32"
       }
      },
      "value": {
       "argumentTypes": null,
       "hexValue": "30",
       "id": 523,
       "isConstant": false,
       "isLValue": false,
       "isPure": true,
       "kind": "number",
       "lValueRequested": false,
       "nodeType": "Literal",
       "src": "543:1:6",
       "subdenomination": null,
       "typeDescriptions": {
        "typeIdentifier": "t_rational_0_by_1",
        "typeString": "int_const 0"
       },
       "value": "0"
      },
      "visibility": "internal"
     },
     {
      "constant": true,
      "id": 527,
      "name": "COMMITMENT_NON_EXISTENT",
      "nodeType": "VariableDeclaration",
      "scope": 2516,
      "src": "637:44:6",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_uint256",
       "typeString": "uint256"
      },
      "typeName": {
       "id": 525,
       "name": "uint256",
       "nodeType": "ElementaryTypeName",
       "src": "637:7:6",
       "typeDescriptions": {
        "typeIdentifier": "t_uint256",
        "typeString": "uint256"
       }
      },
      "value": {
       "argumentTypes": null,
       "hexValue": "30",
       "id": 526,
       "isConstant": false,
       "isLValue": false,
       "isPure": true,
       "kind": "number",
       "lValueRequested": false,
       "nodeType": "Literal",
       "src": "680:1:6",
       "subdenomination": null,
       "typeDescriptions": {
        "typeIdentifier": "t_rational_0_by_1",
        "typeString": "int_const 0"
       },
       "value": "0"
      },
      "visibility": "internal"
     },
     {
      "constant": true,
      "id": 530,
      "name": "COMMITMENT_TIMEOUT_RATIO",
      "nodeType": "VariableDeclaration",
      "scope": 2516,
      "src": "765:44:6",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_uint32",
       "typeString": "uint32"
      },
      "typeName": {
       "id": 528,
       "name": "uint32",
       "nodeType": "ElementaryTypeName",
       "src": "765:6:6",
       "typeDescriptions": {
        "typeIdentifier": "t_uint32",
        "typeString": "uint32"
       }
      },
      "value": {
       "argumentTypes": null,
       "hexValue": "38",
       "id": 529,
       "isConstant": false,
       "isLValue": false,
       "isPure": true,
       "kind": "number",
       "lValueRequested": false,
       "nodeType": "Literal",
       "src": "808:1:6",
       "subdenomination": null,
       "typeDescriptions": {
        "typeIdentifier": "t_rational_8_by_1",
        "typeString": "int_const 8"
       },
       "value": "8"
      },
      "visibility": "internal"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 536,
      "name": "LogSetQuestionFee",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 535,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 532,
         "indexed": false,
         "name": "arbitrator",
         "nodeType": "VariableDeclaration",
         "scope": 536,
         "src": "849:18:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 531,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "849:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 534,
         "indexed": false,
         "name": "amount",
         "nodeType": "VariableDeclaration",
         "scope": 536,
         "src": "877:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 533,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "877:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "839:58:6"
      },
      "src": "816:82:6"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 544,
      "name": "LogNewTemplate",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 543,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 538,
         "indexed": true,
         "name": "template_id",
         "nodeType": "VariableDeclaration",
         "scope": 544,
         "src": "934:27:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 537,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "934:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 540,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 544,
         "src": "971:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 539,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "971:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 542,
         "indexed": false,
         "name": "question_text",
         "nodeType": "VariableDeclaration",
         "scope": 544,
         "src": "1002:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_string_memory_ptr",
          "typeString": "string"
         },
         "typeName": {
          "id": 541,
          "name": "string",
          "nodeType": "ElementaryTypeName",
          "src": "1002:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_string_storage_ptr",
           "typeString": "string"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "924:104:6"
      },
      "src": "904:125:6"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 566,
      "name": "LogNewQuestion",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 565,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 546,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 566,
         "src": "1065:27:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 545,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1065:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 548,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 566,
         "src": "1102:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 547,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "1102:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 550,
         "indexed": false,
         "name": "template_id",
         "nodeType": "VariableDeclaration",
         "scope": 566,
         "src": "1133:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 549,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1133:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 552,
         "indexed": false,
         "name": "question",
         "nodeType": "VariableDeclaration",
         "scope": 566,
         "src": "1162:15:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_string_memory_ptr",
          "typeString": "string"
         },
         "typeName": {
          "id": 551,
          "name": "string",
          "nodeType": "ElementaryTypeName",
          "src": "1162:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_string_storage_ptr",
           "typeString": "string"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 554,
         "indexed": true,
         "name": "content_hash",
         "nodeType": "VariableDeclaration",
         "scope": 566,
         "src": "1187:28:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 553,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1187:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 556,
         "indexed": false,
         "name": "arbitrator",
         "nodeType": "VariableDeclaration",
         "scope": 566,
         "src": "1225:18:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 555,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "1225:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 558,
         "indexed": false,
         "name": "timeout",
         "nodeType": "VariableDeclaration",
         "scope": 566,
         "src": "1254:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 557,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "1254:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 560,
         "indexed": false,
         "name": "opening_ts",
         "nodeType": "VariableDeclaration",
         "scope": 566,
         "src": "1278:17:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 559,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "1278:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 562,
         "indexed": false,
         "name": "nonce",
         "nodeType": "VariableDeclaration",
         "scope": 566,
         "src": "1305:13:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 561,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1305:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 564,
         "indexed": false,
         "name": "created",
         "nodeType": "VariableDeclaration",
         "scope": 566,
         "src": "1328:15:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 563,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1328:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "1055:294:6"
      },
      "src": "1035:315:6"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 576,
      "name": "LogFundAnswerBounty",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 575,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 568,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 576,
         "src": "1391:27:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 567,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1391:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 570,
         "indexed": false,
         "name": "bounty_added",
         "nodeType": "VariableDeclaration",
         "scope": 576,
         "src": "1428:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 569,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1428:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 572,
         "indexed": false,
         "name": "bounty",
         "nodeType": "VariableDeclaration",
         "scope": 576,
         "src": "1458:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 571,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1458:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 574,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 576,
         "src": "1482:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 573,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "1482:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "1381:128:6"
      },
      "src": "1356:154:6"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 592,
      "name": "LogNewAnswer",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 591,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 578,
         "indexed": false,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 592,
         "src": "1544:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 577,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1544:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 580,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 592,
         "src": "1568:27:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 579,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1568:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 582,
         "indexed": false,
         "name": "history_hash",
         "nodeType": "VariableDeclaration",
         "scope": 592,
         "src": "1605:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 581,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1605:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 584,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 592,
         "src": "1635:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 583,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "1635:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 586,
         "indexed": false,
         "name": "bond",
         "nodeType": "VariableDeclaration",
         "scope": 592,
         "src": "1665:12:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 585,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1665:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 588,
         "indexed": false,
         "name": "ts",
         "nodeType": "VariableDeclaration",
         "scope": 592,
         "src": "1687:10:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 587,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1687:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 590,
         "indexed": false,
         "name": "is_commitment",
         "nodeType": "VariableDeclaration",
         "scope": 592,
         "src": "1707:18:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         },
         "typeName": {
          "id": 589,
          "name": "bool",
          "nodeType": "ElementaryTypeName",
          "src": "1707:4:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "1534:197:6"
      },
      "src": "1516:216:6"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 606,
      "name": "LogAnswerReveal",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 605,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 594,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 606,
         "src": "1769:27:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 593,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1769:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 596,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 606,
         "src": "1807:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 595,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "1807:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 598,
         "indexed": true,
         "name": "answer_hash",
         "nodeType": "VariableDeclaration",
         "scope": 606,
         "src": "1838:27:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 597,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1838:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 600,
         "indexed": false,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 606,
         "src": "1876:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 599,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1876:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 602,
         "indexed": false,
         "name": "nonce",
         "nodeType": "VariableDeclaration",
         "scope": 606,
         "src": "1901:13:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 601,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1901:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 604,
         "indexed": false,
         "name": "bond",
         "nodeType": "VariableDeclaration",
         "scope": 606,
         "src": "1925:12:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 603,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1925:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "1759:184:6"
      },
      "src": "1738:206:6"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 612,
      "name": "LogNotifyOfArbitrationRequest",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 611,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 608,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 612,
         "src": "1995:27:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 607,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1995:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 610,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 612,
         "src": "2032:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 609,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "2032:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "1985:74:6"
      },
      "src": "1950:110:6"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 618,
      "name": "LogFinalize",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 617,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 614,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 618,
         "src": "2093:27:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 613,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "2093:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 616,
         "indexed": true,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 618,
         "src": "2130:22:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 615,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "2130:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "2083:75:6"
      },
      "src": "2066:93:6"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 626,
      "name": "LogClaim",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 625,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 620,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 626,
         "src": "2189:27:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 619,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "2189:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 622,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 626,
         "src": "2226:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 621,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "2226:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 624,
         "indexed": false,
         "name": "amount",
         "nodeType": "VariableDeclaration",
         "scope": 626,
         "src": "2256:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 623,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "2256:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "2179:97:6"
      },
      "src": "2165:112:6"
     },
     {
      "canonicalName": "Realitio.Question",
      "id": 647,
      "members": [
       {
        "constant": false,
        "id": 628,
        "name": "content_hash",
        "nodeType": "VariableDeclaration",
        "scope": 647,
        "src": "2309:20:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        },
        "typeName": {
         "id": 627,
         "name": "bytes32",
         "nodeType": "ElementaryTypeName",
         "src": "2309:7:6",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 630,
        "name": "arbitrator",
        "nodeType": "VariableDeclaration",
        "scope": 647,
        "src": "2339:18:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_address",
         "typeString": "address"
        },
        "typeName": {
         "id": 629,
         "name": "address",
         "nodeType": "ElementaryTypeName",
         "src": "2339:7:6",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 632,
        "name": "opening_ts",
        "nodeType": "VariableDeclaration",
        "scope": 647,
        "src": "2367:17:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint32",
         "typeString": "uint32"
        },
        "typeName": {
         "id": 631,
         "name": "uint32",
         "nodeType": "ElementaryTypeName",
         "src": "2367:6:6",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 634,
        "name": "timeout",
        "nodeType": "VariableDeclaration",
        "scope": 647,
        "src": "2394:14:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint32",
         "typeString": "uint32"
        },
        "typeName": {
         "id": 633,
         "name": "uint32",
         "nodeType": "ElementaryTypeName",
         "src": "2394:6:6",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 636,
        "name": "finalize_ts",
        "nodeType": "VariableDeclaration",
        "scope": 647,
        "src": "2418:18:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint32",
         "typeString": "uint32"
        },
        "typeName": {
         "id": 635,
         "name": "uint32",
         "nodeType": "ElementaryTypeName",
         "src": "2418:6:6",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 638,
        "name": "is_pending_arbitration",
        "nodeType": "VariableDeclaration",
        "scope": 647,
        "src": "2446:27:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_bool",
         "typeString": "bool"
        },
        "typeName": {
         "id": 637,
         "name": "bool",
         "nodeType": "ElementaryTypeName",
         "src": "2446:4:6",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 640,
        "name": "bounty",
        "nodeType": "VariableDeclaration",
        "scope": 647,
        "src": "2483:14:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        },
        "typeName": {
         "id": 639,
         "name": "uint256",
         "nodeType": "ElementaryTypeName",
         "src": "2483:7:6",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 642,
        "name": "best_answer",
        "nodeType": "VariableDeclaration",
        "scope": 647,
        "src": "2507:19:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        },
        "typeName": {
         "id": 641,
         "name": "bytes32",
         "nodeType": "ElementaryTypeName",
         "src": "2507:7:6",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 644,
        "name": "history_hash",
        "nodeType": "VariableDeclaration",
        "scope": 647,
        "src": "2536:20:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        },
        "typeName": {
         "id": 643,
         "name": "bytes32",
         "nodeType": "ElementaryTypeName",
         "src": "2536:7:6",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 646,
        "name": "bond",
        "nodeType": "VariableDeclaration",
        "scope": 647,
        "src": "2566:12:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        },
        "typeName": {
         "id": 645,
         "name": "uint256",
         "nodeType": "ElementaryTypeName",
         "src": "2566:7:6",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         }
        },
        "value": null,
        "visibility": "internal"
       }
      ],
      "name": "Question",
      "nodeType": "StructDefinition",
      "scope": 2516,
      "src": "2283:302:6",
      "visibility": "public"
     },
     {
      "canonicalName": "Realitio.Commitment",
      "id": 654,
      "members": [
       {
        "constant": false,
        "id": 649,
        "name": "reveal_ts",
        "nodeType": "VariableDeclaration",
        "scope": 654,
        "src": "2716:16:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint32",
         "typeString": "uint32"
        },
        "typeName": {
         "id": 648,
         "name": "uint32",
         "nodeType": "ElementaryTypeName",
         "src": "2716:6:6",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 651,
        "name": "is_revealed",
        "nodeType": "VariableDeclaration",
        "scope": 654,
        "src": "2742:16:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_bool",
         "typeString": "bool"
        },
        "typeName": {
         "id": 650,
         "name": "bool",
         "nodeType": "ElementaryTypeName",
         "src": "2742:4:6",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 653,
        "name": "revealed_answer",
        "nodeType": "VariableDeclaration",
        "scope": 654,
        "src": "2768:23:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        },
        "typeName": {
         "id": 652,
         "name": "bytes32",
         "nodeType": "ElementaryTypeName",
         "src": "2768:7:6",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         }
        },
        "value": null,
        "visibility": "internal"
       }
      ],
      "name": "Commitment",
      "nodeType": "StructDefinition",
      "scope": 2516,
      "src": "2688:110:6",
      "visibility": "public"
     },
     {
      "canonicalName": "Realitio.Claim",
      "id": 661,
      "members": [
       {
        "constant": false,
        "id": 656,
        "name": "payee",
        "nodeType": "VariableDeclaration",
        "scope": 661,
        "src": "2949:13:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_address",
         "typeString": "address"
        },
        "typeName": {
         "id": 655,
         "name": "address",
         "nodeType": "ElementaryTypeName",
         "src": "2949:7:6",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 658,
        "name": "last_bond",
        "nodeType": "VariableDeclaration",
        "scope": 661,
        "src": "2972:17:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        },
        "typeName": {
         "id": 657,
         "name": "uint256",
         "nodeType": "ElementaryTypeName",
         "src": "2972:7:6",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 660,
        "name": "queued_funds",
        "nodeType": "VariableDeclaration",
        "scope": 661,
        "src": "2999:20:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        },
        "typeName": {
         "id": 659,
         "name": "uint256",
         "nodeType": "ElementaryTypeName",
         "src": "2999:7:6",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         }
        },
        "value": null,
        "visibility": "internal"
       }
      ],
      "name": "Claim",
      "nodeType": "StructDefinition",
      "scope": 2516,
      "src": "2926:100:6",
      "visibility": "public"
     },
     {
      "constant": false,
      "id": 664,
      "name": "nextTemplateID",
      "nodeType": "VariableDeclaration",
      "scope": 2516,
      "src": "3032:26:6",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_uint256",
       "typeString": "uint256"
      },
      "typeName": {
       "id": 662,
       "name": "uint256",
       "nodeType": "ElementaryTypeName",
       "src": "3032:7:6",
       "typeDescriptions": {
        "typeIdentifier": "t_uint256",
        "typeString": "uint256"
       }
      },
      "value": {
       "argumentTypes": null,
       "hexValue": "30",
       "id": 663,
       "isConstant": false,
       "isLValue": false,
       "isPure": true,
       "kind": "number",
       "lValueRequested": false,
       "nodeType": "Literal",
       "src": "3057:1:6",
       "subdenomination": null,
       "typeDescriptions": {
        "typeIdentifier": "t_rational_0_by_1",
        "typeString": "int_const 0"
       },
       "value": "0"
      },
      "visibility": "internal"
     },
     {
      "constant": false,
      "id": 668,
      "name": "templates",
      "nodeType": "VariableDeclaration",
      "scope": 2516,
      "src": "3064:44:6",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
       "typeString": "mapping(uint256 => uint256)"
      },
      "typeName": {
       "id": 667,
       "keyType": {
        "id": 665,
        "name": "uint256",
        "nodeType": "ElementaryTypeName",
        "src": "3072:7:6",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        }
       },
       "nodeType": "Mapping",
       "src": "3064:27:6",
       "typeDescriptions": {
        "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
        "typeString": "mapping(uint256 => uint256)"
       },
       "valueType": {
        "id": 666,
        "name": "uint256",
        "nodeType": "ElementaryTypeName",
        "src": "3083:7:6",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        }
       }
      },
      "value": null,
      "visibility": "public"
     },
     {
      "constant": false,
      "id": 672,
      "name": "template_hashes",
      "nodeType": "VariableDeclaration",
      "scope": 2516,
      "src": "3114:50:6",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
       "typeString": "mapping(uint256 => bytes32)"
      },
      "typeName": {
       "id": 671,
       "keyType": {
        "id": 669,
        "name": "uint256",
        "nodeType": "ElementaryTypeName",
        "src": "3122:7:6",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        }
       },
       "nodeType": "Mapping",
       "src": "3114:27:6",
       "typeDescriptions": {
        "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
        "typeString": "mapping(uint256 => bytes32)"
       },
       "valueType": {
        "id": 670,
        "name": "bytes32",
        "nodeType": "ElementaryTypeName",
        "src": "3133:7:6",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        }
       }
      },
      "value": null,
      "visibility": "public"
     },
     {
      "constant": false,
      "id": 676,
      "name": "questions",
      "nodeType": "VariableDeclaration",
      "scope": 2516,
      "src": "3170:45:6",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
       "typeString": "mapping(bytes32 => struct Realitio.Question)"
      },
      "typeName": {
       "id": 675,
       "keyType": {
        "id": 673,
        "name": "bytes32",
        "nodeType": "ElementaryTypeName",
        "src": "3178:7:6",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        }
       },
       "nodeType": "Mapping",
       "src": "3170:28:6",
       "typeDescriptions": {
        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
        "typeString": "mapping(bytes32 => struct Realitio.Question)"
       },
       "valueType": {
        "contractScope": null,
        "id": 674,
        "name": "Question",
        "nodeType": "UserDefinedTypeName",
        "referencedDeclaration": 647,
        "src": "3189:8:6",
        "typeDescriptions": {
         "typeIdentifier": "t_struct$_Question_$647_storage_ptr",
         "typeString": "struct Realitio.Question"
        }
       }
      },
      "value": null,
      "visibility": "public"
     },
     {
      "constant": false,
      "id": 680,
      "name": "question_claims",
      "nodeType": "VariableDeclaration",
      "scope": 2516,
      "src": "3221:48:6",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$661_storage_$",
       "typeString": "mapping(bytes32 => struct Realitio.Claim)"
      },
      "typeName": {
       "id": 679,
       "keyType": {
        "id": 677,
        "name": "bytes32",
        "nodeType": "ElementaryTypeName",
        "src": "3229:7:6",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        }
       },
       "nodeType": "Mapping",
       "src": "3221:25:6",
       "typeDescriptions": {
        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$661_storage_$",
        "typeString": "mapping(bytes32 => struct Realitio.Claim)"
       },
       "valueType": {
        "contractScope": null,
        "id": 678,
        "name": "Claim",
        "nodeType": "UserDefinedTypeName",
        "referencedDeclaration": 661,
        "src": "3240:5:6",
        "typeDescriptions": {
         "typeIdentifier": "t_struct$_Claim_$661_storage_ptr",
         "typeString": "struct Realitio.Claim"
        }
       }
      },
      "value": null,
      "visibility": "public"
     },
     {
      "constant": false,
      "id": 684,
      "name": "commitments",
      "nodeType": "VariableDeclaration",
      "scope": 2516,
      "src": "3275:49:6",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$654_storage_$",
       "typeString": "mapping(bytes32 => struct Realitio.Commitment)"
      },
      "typeName": {
       "id": 683,
       "keyType": {
        "id": 681,
        "name": "bytes32",
        "nodeType": "ElementaryTypeName",
        "src": "3283:7:6",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        }
       },
       "nodeType": "Mapping",
       "src": "3275:30:6",
       "typeDescriptions": {
        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$654_storage_$",
        "typeString": "mapping(bytes32 => struct Realitio.Commitment)"
       },
       "valueType": {
        "contractScope": null,
        "id": 682,
        "name": "Commitment",
        "nodeType": "UserDefinedTypeName",
        "referencedDeclaration": 654,
        "src": "3294:10:6",
        "typeDescriptions": {
         "typeIdentifier": "t_struct$_Commitment_$654_storage_ptr",
         "typeString": "struct Realitio.Commitment"
        }
       }
      },
      "value": null,
      "visibility": "public"
     },
     {
      "constant": false,
      "id": 688,
      "name": "arbitrator_question_fees",
      "nodeType": "VariableDeclaration",
      "scope": 2516,
      "src": "3330:59:6",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
       "typeString": "mapping(address => uint256)"
      },
      "typeName": {
       "id": 687,
       "keyType": {
        "id": 685,
        "name": "address",
        "nodeType": "ElementaryTypeName",
        "src": "3338:7:6",
        "typeDescriptions": {
         "typeIdentifier": "t_address",
         "typeString": "address"
        }
       },
       "nodeType": "Mapping",
       "src": "3330:27:6",
       "typeDescriptions": {
        "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
        "typeString": "mapping(address => uint256)"
       },
       "valueType": {
        "id": 686,
        "name": "uint256",
        "nodeType": "ElementaryTypeName",
        "src": "3349:7:6",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        }
       }
      },
      "value": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 704,
       "nodeType": "Block",
       "src": "3442:117:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            "id": 699,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "id": 693,
              "name": "msg",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2656,
              "src": "3460:3:6",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_message",
               "typeString": "msg"
              }
             },
             "id": 694,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "sender",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "3460:10:6",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "==",
            "rightExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 695,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 676,
               "src": "3474:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
               }
              },
              "id": 697,
              "indexExpression": {
               "argumentTypes": null,
               "id": 696,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 690,
               "src": "3484:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "3474:22:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$647_storage",
               "typeString": "struct Realitio.Question storage ref"
              }
             },
             "id": 698,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "arbitrator",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 630,
             "src": "3474:33:6",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "src": "3460:47:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "6d73672e73656e646572206d7573742062652061726269747261746f72",
            "id": 700,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "3509:31:6",
            "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": 692,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "3452:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 701,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "3452:89:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 702,
         "nodeType": "ExpressionStatement",
         "src": "3452:89:6"
        },
        {
         "id": 703,
         "nodeType": "PlaceholderStatement",
         "src": "3551:1:6"
        }
       ]
      },
      "documentation": null,
      "id": 705,
      "name": "onlyArbitrator",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 691,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 690,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 705,
         "src": "3421:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 689,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "3421:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "3420:21:6"
      },
      "src": "3397:162:6",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 708,
       "nodeType": "Block",
       "src": "3585:18:6",
       "statements": [
        {
         "id": 707,
         "nodeType": "PlaceholderStatement",
         "src": "3595:1:6"
        }
       ]
      },
      "documentation": null,
      "id": 709,
      "name": "stateAny",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 706,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "3582:2:6"
      },
      "src": "3565:38:6",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 724,
       "nodeType": "Block",
       "src": "3655:99:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 719,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 714,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 676,
               "src": "3673:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
               }
              },
              "id": 716,
              "indexExpression": {
               "argumentTypes": null,
               "id": 715,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 711,
               "src": "3683:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "3673:22:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$647_storage",
               "typeString": "struct Realitio.Question storage ref"
              }
             },
             "id": 717,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "timeout",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 634,
             "src": "3673:30:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "==",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 718,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "3707:1:6",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "3673:35:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "7175657374696f6e206d757374206e6f74206578697374",
            "id": 720,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "3710:25:6",
            "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": 713,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "3665:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 721,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "3665:71:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 722,
         "nodeType": "ExpressionStatement",
         "src": "3665:71:6"
        },
        {
         "id": 723,
         "nodeType": "PlaceholderStatement",
         "src": "3746:1:6"
        }
       ]
      },
      "documentation": null,
      "id": 725,
      "name": "stateNotCreated",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 712,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 711,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 725,
         "src": "3634:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 710,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "3634:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "3633:21:6"
      },
      "src": "3609:145:6",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 789,
       "nodeType": "Block",
       "src": "3800:547:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 735,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 730,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 676,
               "src": "3818:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
               }
              },
              "id": 732,
              "indexExpression": {
               "argumentTypes": null,
               "id": 731,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 727,
               "src": "3828:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "3818:22:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$647_storage",
               "typeString": "struct Realitio.Question storage ref"
              }
             },
             "id": 733,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "timeout",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 634,
             "src": "3818:30:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 734,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "3851:1:6",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "3818:34:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "7175657374696f6e206d757374206578697374",
            "id": 736,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "3854:21:6",
            "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": 729,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "3810:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 737,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "3810:66:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 738,
         "nodeType": "ExpressionStatement",
         "src": "3810:66:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 744,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "UnaryOperation",
            "operator": "!",
            "prefix": true,
            "src": "3894:46:6",
            "subExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 740,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 676,
               "src": "3895:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
               }
              },
              "id": 742,
              "indexExpression": {
               "argumentTypes": null,
               "id": 741,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 727,
               "src": "3905:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "3895:22:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$647_storage",
               "typeString": "struct Realitio.Question storage ref"
              }
             },
             "id": 743,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "is_pending_arbitration",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 638,
             "src": "3895:45:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "7175657374696f6e206d757374206e6f742062652070656e64696e67206172626974726174696f6e",
            "id": 745,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "3942:42:6",
            "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": 739,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "3886:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 746,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "3886:99:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 747,
         "nodeType": "ExpressionStatement",
         "src": "3886:99:6"
        },
        {
         "assignments": [
          749
         ],
         "declarations": [
          {
           "constant": false,
           "id": 749,
           "name": "finalize_ts",
           "nodeType": "VariableDeclaration",
           "scope": 790,
           "src": "3995:18:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           },
           "typeName": {
            "id": 748,
            "name": "uint32",
            "nodeType": "ElementaryTypeName",
            "src": "3995:6:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 754,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 750,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "4016:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 752,
           "indexExpression": {
            "argumentTypes": null,
            "id": 751,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 727,
            "src": "4026:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "4016:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 753,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "finalize_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 636,
          "src": "4016:34:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "3995:55:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            },
            "id": 764,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 758,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 756,
              "name": "finalize_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 749,
              "src": "4068:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "==",
             "rightExpression": {
              "argumentTypes": null,
              "id": 757,
              "name": "UNANSWERED",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 524,
              "src": "4083:10:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "src": "4068:25:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "||",
            "rightExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 763,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 759,
              "name": "finalize_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 749,
              "src": "4097:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": ">",
             "rightExpression": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 761,
                "name": "now",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 2658,
                "src": "4118:3:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "id": 760,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "lValueRequested": false,
               "nodeType": "ElementaryTypeNameExpression",
               "src": "4111:6:6",
               "typeDescriptions": {
                "typeIdentifier": "t_type$_t_uint32_$",
                "typeString": "type(uint32)"
               },
               "typeName": "uint32"
              },
              "id": 762,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "4111:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "src": "4097:25:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "src": "4068:54:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "66696e616c697a6174696f6e20646561646c696e65206d757374206e6f74206861766520706173736564",
            "id": 765,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "4124:44:6",
            "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": 755,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "4060:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 766,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "4060:109:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 767,
         "nodeType": "ExpressionStatement",
         "src": "4060:109:6"
        },
        {
         "assignments": [
          769
         ],
         "declarations": [
          {
           "constant": false,
           "id": 769,
           "name": "opening_ts",
           "nodeType": "VariableDeclaration",
           "scope": 790,
           "src": "4179:17:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           },
           "typeName": {
            "id": 768,
            "name": "uint32",
            "nodeType": "ElementaryTypeName",
            "src": "4179:6:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 774,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 770,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "4199:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 772,
           "indexExpression": {
            "argumentTypes": null,
            "id": 771,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 727,
            "src": "4209:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "4199:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 773,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "opening_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 632,
          "src": "4199:33:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "4179:53:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            },
            "id": 784,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 778,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 776,
              "name": "opening_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 769,
              "src": "4250:10:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "==",
             "rightExpression": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 777,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "4264:1:6",
              "subdenomination": null,
              "typeDescriptions": {
               "typeIdentifier": "t_rational_0_by_1",
               "typeString": "int_const 0"
              },
              "value": "0"
             },
             "src": "4250:15:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "||",
            "rightExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 783,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 779,
              "name": "opening_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 769,
              "src": "4269:10:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "<=",
             "rightExpression": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 781,
                "name": "now",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 2658,
                "src": "4290:3:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "id": 780,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "lValueRequested": false,
               "nodeType": "ElementaryTypeNameExpression",
               "src": "4283:6:6",
               "typeDescriptions": {
                "typeIdentifier": "t_type$_t_uint32_$",
                "typeString": "type(uint32)"
               },
               "typeName": "uint32"
              },
              "id": 782,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "4283:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "src": "4269:25:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "src": "4250:44:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "6f70656e696e672064617465206d757374206861766520706173736564",
            "id": 785,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "4296:31:6",
            "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": 775,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "4242:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 786,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "4242:86:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 787,
         "nodeType": "ExpressionStatement",
         "src": "4242:86:6"
        },
        {
         "id": 788,
         "nodeType": "PlaceholderStatement",
         "src": "4339:1:6"
        }
       ]
      },
      "documentation": null,
      "id": 790,
      "name": "stateOpen",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 728,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 727,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 790,
         "src": "3779:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 726,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "3779:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "3778:21:6"
      },
      "src": "3760:587:6",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 803,
       "nodeType": "Block",
       "src": "4407:122:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 795,
              "name": "questions",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 676,
              "src": "4425:9:6",
              "typeDescriptions": {
               "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
               "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
              }
             },
             "id": 797,
             "indexExpression": {
              "argumentTypes": null,
              "id": 796,
              "name": "question_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 792,
              "src": "4435:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "4425:22:6",
             "typeDescriptions": {
              "typeIdentifier": "t_struct$_Question_$647_storage",
              "typeString": "struct Realitio.Question storage ref"
             }
            },
            "id": 798,
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "is_pending_arbitration",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 638,
            "src": "4425:45:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "7175657374696f6e206d7573742062652070656e64696e67206172626974726174696f6e",
            "id": 799,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "4472:38:6",
            "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": 794,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "4417:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 800,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "4417:94:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 801,
         "nodeType": "ExpressionStatement",
         "src": "4417:94:6"
        },
        {
         "id": 802,
         "nodeType": "PlaceholderStatement",
         "src": "4521:1:6"
        }
       ]
      },
      "documentation": null,
      "id": 804,
      "name": "statePendingArbitration",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 793,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 792,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 804,
         "src": "4386:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 791,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "4386:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "4385:21:6"
      },
      "src": "4353:176:6",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 859,
       "nodeType": "Block",
       "src": "4595:437:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 814,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 809,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 676,
               "src": "4613:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
               }
              },
              "id": 811,
              "indexExpression": {
               "argumentTypes": null,
               "id": 810,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 806,
               "src": "4623:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "4613:22:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$647_storage",
               "typeString": "struct Realitio.Question storage ref"
              }
             },
             "id": 812,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "timeout",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 634,
             "src": "4613:30:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 813,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "4646:1:6",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "4613:34:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "7175657374696f6e206d757374206578697374",
            "id": 815,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "4649:21:6",
            "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": 808,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "4605:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 816,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "4605:66:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 817,
         "nodeType": "ExpressionStatement",
         "src": "4605:66:6"
        },
        {
         "assignments": [
          819
         ],
         "declarations": [
          {
           "constant": false,
           "id": 819,
           "name": "finalize_ts",
           "nodeType": "VariableDeclaration",
           "scope": 860,
           "src": "4681:18:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           },
           "typeName": {
            "id": 818,
            "name": "uint32",
            "nodeType": "ElementaryTypeName",
            "src": "4681:6:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 824,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 820,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "4702:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 822,
           "indexExpression": {
            "argumentTypes": null,
            "id": 821,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 806,
            "src": "4712:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "4702:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 823,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "finalize_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 636,
          "src": "4702:34:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "4681:55:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            },
            "id": 834,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 828,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 826,
              "name": "finalize_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 819,
              "src": "4754:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "==",
             "rightExpression": {
              "argumentTypes": null,
              "id": 827,
              "name": "UNANSWERED",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 524,
              "src": "4769:10:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "src": "4754:25:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "||",
            "rightExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 833,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 829,
              "name": "finalize_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 819,
              "src": "4783:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": ">",
             "rightExpression": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 831,
                "name": "now",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 2658,
                "src": "4804:3:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "id": 830,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "lValueRequested": false,
               "nodeType": "ElementaryTypeNameExpression",
               "src": "4797:6:6",
               "typeDescriptions": {
                "typeIdentifier": "t_type$_t_uint32_$",
                "typeString": "type(uint32)"
               },
               "typeName": "uint32"
              },
              "id": 832,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "4797:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "src": "4783:25:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "src": "4754:54:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "66696e616c697a6174696f6e206465616c696e65206d757374206e6f74206861766520706173736564",
            "id": 835,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "4810:43:6",
            "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": 825,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "4746:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 836,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "4746:108:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 837,
         "nodeType": "ExpressionStatement",
         "src": "4746:108:6"
        },
        {
         "assignments": [
          839
         ],
         "declarations": [
          {
           "constant": false,
           "id": 839,
           "name": "opening_ts",
           "nodeType": "VariableDeclaration",
           "scope": 860,
           "src": "4864:17:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           },
           "typeName": {
            "id": 838,
            "name": "uint32",
            "nodeType": "ElementaryTypeName",
            "src": "4864:6:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 844,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 840,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "4884:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 842,
           "indexExpression": {
            "argumentTypes": null,
            "id": 841,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 806,
            "src": "4894:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "4884:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 843,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "opening_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 632,
          "src": "4884:33:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "4864:53:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            },
            "id": 854,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 848,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 846,
              "name": "opening_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 839,
              "src": "4935:10:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "==",
             "rightExpression": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 847,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "4949:1:6",
              "subdenomination": null,
              "typeDescriptions": {
               "typeIdentifier": "t_rational_0_by_1",
               "typeString": "int_const 0"
              },
              "value": "0"
             },
             "src": "4935:15:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "||",
            "rightExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 853,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 849,
              "name": "opening_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 839,
              "src": "4954:10:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "<=",
             "rightExpression": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 851,
                "name": "now",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 2658,
                "src": "4975:3:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "id": 850,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "lValueRequested": false,
               "nodeType": "ElementaryTypeNameExpression",
               "src": "4968:6:6",
               "typeDescriptions": {
                "typeIdentifier": "t_type$_t_uint32_$",
                "typeString": "type(uint32)"
               },
               "typeName": "uint32"
              },
              "id": 852,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "4968:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "src": "4954:25:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "src": "4935:44:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "6f70656e696e672064617465206d757374206861766520706173736564",
            "id": 855,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "4981:31:6",
            "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": 845,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "4927:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 856,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "4927:86:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 857,
         "nodeType": "ExpressionStatement",
         "src": "4927:86:6"
        },
        {
         "id": 858,
         "nodeType": "PlaceholderStatement",
         "src": "5024:1:6"
        }
       ]
      },
      "documentation": null,
      "id": 860,
      "name": "stateOpenOrPendingArbitration",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 807,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 806,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 860,
         "src": "4574:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 805,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "4574:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "4573:21:6"
      },
      "src": "4535:497:6",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 872,
       "nodeType": "Block",
       "src": "5083:91:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 866,
              "name": "question_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 862,
              "src": "5113:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             }
            ],
            "expression": {
             "argumentTypes": [
              {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             ],
             "id": 865,
             "name": "isFinalized",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1726,
             "src": "5101:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
              "typeString": "function (bytes32) view returns (bool)"
             }
            },
            "id": 867,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "5101:24:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "7175657374696f6e206d7573742062652066696e616c697a6564",
            "id": 868,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "5127:28:6",
            "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": 864,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "5093:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 869,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "5093:63:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 870,
         "nodeType": "ExpressionStatement",
         "src": "5093:63:6"
        },
        {
         "id": 871,
         "nodeType": "PlaceholderStatement",
         "src": "5166:1:6"
        }
       ]
      },
      "documentation": null,
      "id": 873,
      "name": "stateFinalized",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 863,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 862,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 873,
         "src": "5062:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 861,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "5062:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "5061:21:6"
      },
      "src": "5038:136:6",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 884,
       "nodeType": "Block",
       "src": "5206:72:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 879,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "id": 876,
              "name": "msg",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2656,
              "src": "5224:3:6",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_message",
               "typeString": "msg"
              }
             },
             "id": 877,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "value",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "5224:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "==",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 878,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "5237:1:6",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "5224:14:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "626f6e64206d757374206265207a65726f",
            "id": 880,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "5240:19:6",
            "subdenomination": null,
            "typeDescriptions": {
             "typeIdentifier": "t_stringliteral_ba71c4def3afbcd4b8b41ca53b4c3c9e8fd523fdd607980c9dbdbd095d236d63",
             "typeString": "literal_string \"bond must be zero\""
            },
            "value": "bond must be zero"
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            },
            {
             "typeIdentifier": "t_stringliteral_ba71c4def3afbcd4b8b41ca53b4c3c9e8fd523fdd607980c9dbdbd095d236d63",
             "typeString": "literal_string \"bond must be zero\""
            }
           ],
           "id": 875,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "5216:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 881,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "5216:44:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 882,
         "nodeType": "ExpressionStatement",
         "src": "5216:44:6"
        },
        {
         "id": 883,
         "nodeType": "PlaceholderStatement",
         "src": "5270:1:6"
        }
       ]
      },
      "documentation": null,
      "id": 885,
      "name": "bondMustBeZero",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 874,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "5203:2:6"
      },
      "src": "5180:98:6",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 913,
       "nodeType": "Block",
       "src": "5329:190:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 893,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "id": 890,
              "name": "msg",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2656,
              "src": "5347:3:6",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_message",
               "typeString": "msg"
              }
             },
             "id": 891,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "value",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "5347:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 892,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "5359:1:6",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "5347:13:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "626f6e64206d75737420626520706f736974697665",
            "id": 894,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "5362:23:6",
            "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": 889,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "5339:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 895,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "5339:47:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 896,
         "nodeType": "ExpressionStatement",
         "src": "5339:47:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 908,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "id": 898,
              "name": "msg",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2656,
              "src": "5405:3:6",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_message",
               "typeString": "msg"
              }
             },
             "id": 899,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "value",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "5405:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">=",
            "rightExpression": {
             "argumentTypes": null,
             "components": [
              {
               "argumentTypes": null,
               "arguments": [
                {
                 "argumentTypes": null,
                 "hexValue": "32",
                 "id": 905,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": true,
                 "kind": "number",
                 "lValueRequested": false,
                 "nodeType": "Literal",
                 "src": "5451:1:6",
                 "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": 900,
                   "name": "questions",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 676,
                   "src": "5419:9:6",
                   "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                    "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                   }
                  },
                  "id": 902,
                  "indexExpression": {
                   "argumentTypes": null,
                   "id": 901,
                   "name": "question_id",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 887,
                   "src": "5429:11:6",
                   "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                   }
                  },
                  "isConstant": false,
                  "isLValue": true,
                  "isPure": false,
                  "lValueRequested": false,
                  "nodeType": "IndexAccess",
                  "src": "5419:22:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_struct$_Question_$647_storage",
                   "typeString": "struct Realitio.Question storage ref"
                  }
                 },
                 "id": 903,
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "memberName": "bond",
                 "nodeType": "MemberAccess",
                 "referencedDeclaration": 646,
                 "src": "5419:27:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "id": 904,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "memberName": "mul",
                "nodeType": "MemberAccess",
                "referencedDeclaration": 2551,
                "src": "5419:31:6",
                "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": 906,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "kind": "functionCall",
               "lValueRequested": false,
               "names": [],
               "nodeType": "FunctionCall",
               "src": "5419:34:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "id": 907,
             "isConstant": false,
             "isInlineArray": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "TupleExpression",
             "src": "5418:36:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "src": "5405:49:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "626f6e64206d75737420626520646f75626c65206174206c656173742070726576696f757320626f6e64",
            "id": 909,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "5456:44:6",
            "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": 897,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "5397:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 910,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "5397:104:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 911,
         "nodeType": "ExpressionStatement",
         "src": "5397:104:6"
        },
        {
         "id": 912,
         "nodeType": "PlaceholderStatement",
         "src": "5511:1:6"
        }
       ]
      },
      "documentation": null,
      "id": 914,
      "name": "bondMustDouble",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 888,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 887,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 914,
         "src": "5308:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 886,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "5308:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "5307:21:6"
      },
      "src": "5284:235:6",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 936,
       "nodeType": "Block",
       "src": "5612:159:6",
       "statements": [
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          },
          "id": 922,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 920,
           "name": "max_previous",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 918,
           "src": "5626:12:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": ">",
          "rightExpression": {
           "argumentTypes": null,
           "hexValue": "30",
           "id": 921,
           "isConstant": false,
           "isLValue": false,
           "isPure": true,
           "kind": "number",
           "lValueRequested": false,
           "nodeType": "Literal",
           "src": "5641:1:6",
           "subdenomination": null,
           "typeDescriptions": {
            "typeIdentifier": "t_rational_0_by_1",
            "typeString": "int_const 0"
           },
           "value": "0"
          },
          "src": "5626:16:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 934,
         "nodeType": "IfStatement",
         "src": "5622:132:6",
         "trueBody": {
          "id": 933,
          "nodeType": "Block",
          "src": "5644:110:6",
          "statements": [
           {
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "commonType": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               },
               "id": 929,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "lValueRequested": false,
               "leftExpression": {
                "argumentTypes": null,
                "expression": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 924,
                  "name": "questions",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 676,
                  "src": "5666:9:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                   "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                  }
                 },
                 "id": 926,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 925,
                  "name": "question_id",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 916,
                  "src": "5676:11:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_bytes32",
                   "typeString": "bytes32"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "nodeType": "IndexAccess",
                 "src": "5666:22:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Question_$647_storage",
                  "typeString": "struct Realitio.Question storage ref"
                 }
                },
                "id": 927,
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "memberName": "bond",
                "nodeType": "MemberAccess",
                "referencedDeclaration": 646,
                "src": "5666:27:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "nodeType": "BinaryOperation",
               "operator": "<=",
               "rightExpression": {
                "argumentTypes": null,
                "id": 928,
                "name": "max_previous",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 918,
                "src": "5697:12:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "src": "5666:43:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
               }
              },
              {
               "argumentTypes": null,
               "hexValue": "626f6e64206d75737420657863656564206d61785f70726576696f7573",
               "id": 930,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "kind": "string",
               "lValueRequested": false,
               "nodeType": "Literal",
               "src": "5711:31:6",
               "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": 923,
              "name": "require",
              "nodeType": "Identifier",
              "overloadedDeclarations": [
               2659,
               2660
              ],
              "referencedDeclaration": 2660,
              "src": "5658:7:6",
              "typeDescriptions": {
               "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
               "typeString": "function (bool,string memory) pure"
              }
             },
             "id": 931,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "5658:85:6",
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 932,
            "nodeType": "ExpressionStatement",
            "src": "5658:85:6"
           }
          ]
         }
        },
        {
         "id": 935,
         "nodeType": "PlaceholderStatement",
         "src": "5763:1:6"
        }
       ]
      },
      "documentation": null,
      "id": 937,
      "name": "previousBondMustNotBeatMaxPrevious",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 919,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 916,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 937,
         "src": "5569:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 915,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "5569:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 918,
         "name": "max_previous",
         "nodeType": "VariableDeclaration",
         "scope": 937,
         "src": "5590:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 917,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "5590:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "5568:43:6"
      },
      "src": "5525:246:6",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 960,
       "nodeType": "Block",
       "src": "5958:538:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "hexValue": "7b227469746c65223a20222573222c202274797065223a2022626f6f6c222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
            "id": 941,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "5983:65:6",
            "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": 940,
           "name": "createTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1030,
           "src": "5968:14:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
            "typeString": "function (string memory) returns (uint256)"
           }
          },
          "id": 942,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "5968:81:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 943,
         "nodeType": "ExpressionStatement",
         "src": "5968:81:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "hexValue": "7b227469746c65223a20222573222c202274797065223a202275696e74222c2022646563696d616c73223a2031382c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
            "id": 945,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "6074:81:6",
            "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": 944,
           "name": "createTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1030,
           "src": "6059:14:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
            "typeString": "function (string memory) returns (uint256)"
           }
          },
          "id": 946,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "6059:97:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 947,
         "nodeType": "ExpressionStatement",
         "src": "6059:97:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "hexValue": "7b227469746c65223a20222573222c202274797065223a202273696e676c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
            "id": 949,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "6181:92:6",
            "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": 948,
           "name": "createTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1030,
           "src": "6166:14:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
            "typeString": "function (string memory) returns (uint256)"
           }
          },
          "id": 950,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "6166:108:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 951,
         "nodeType": "ExpressionStatement",
         "src": "6166:108:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "hexValue": "7b227469746c65223a20222573222c202274797065223a20226d756c7469706c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
            "id": 953,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "6299:94:6",
            "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": 952,
           "name": "createTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1030,
           "src": "6284:14:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
            "typeString": "function (string memory) returns (uint256)"
           }
          },
          "id": 954,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "6284:110:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 955,
         "nodeType": "ExpressionStatement",
         "src": "6284:110:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "hexValue": "7b227469746c65223a20222573222c202274797065223a20226461746574696d65222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
            "id": 957,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "6419:69:6",
            "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": 956,
           "name": "createTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1030,
           "src": "6404:14:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
            "typeString": "function (string memory) returns (uint256)"
           }
          },
          "id": 958,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "6404:85:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 959,
         "nodeType": "ExpressionStatement",
         "src": "6404:85:6"
        }
       ]
      },
      "documentation": "@notice Constructor, sets up some initial templates\n @dev Creates some generalized templates for different question types used in the DApp.",
      "id": 961,
      "implemented": true,
      "isConstructor": true,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 938,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "5943:2:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 939,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "5958:0:6"
      },
      "scope": 2516,
      "src": "5932:564:6",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 981,
       "nodeType": "Block",
       "src": "6841:108:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "id": 973,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 968,
            "name": "arbitrator_question_fees",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 688,
            "src": "6851:24:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
             "typeString": "mapping(address => uint256)"
            }
           },
           "id": 971,
           "indexExpression": {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 969,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2656,
             "src": "6876:3:6",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 970,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "6876:10:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "nodeType": "IndexAccess",
           "src": "6851:36:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 972,
           "name": "fee",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 963,
           "src": "6890:3:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "6851:42:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 974,
         "nodeType": "ExpressionStatement",
         "src": "6851:42:6"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 976,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2656,
             "src": "6926:3:6",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 977,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "6926:10:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 978,
            "name": "fee",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 963,
            "src": "6938:3:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           ],
           "id": 975,
           "name": "LogSetQuestionFee",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 536,
           "src": "6908:17:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
            "typeString": "function (address,uint256)"
           }
          },
          "id": 979,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "6908:34:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 980,
         "nodeType": "EmitStatement",
         "src": "6903:39:6"
        }
       ]
      },
      "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": 982,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [],
        "id": 966,
        "modifierName": {
         "argumentTypes": null,
         "id": 965,
         "name": "stateAny",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 709,
         "src": "6816:8:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$__$",
          "typeString": "modifier ()"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "6816:10:6"
       }
      ],
      "name": "setQuestionFee",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 964,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 963,
         "name": "fee",
         "nodeType": "VariableDeclaration",
         "scope": 982,
         "src": "6794:11:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 962,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "6794:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "6793:13:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 967,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "6841:0:6"
      },
      "scope": 2516,
      "src": "6770:179:6",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1029,
       "nodeType": "Block",
       "src": "7418:259:6",
       "statements": [
        {
         "assignments": [
          992
         ],
         "declarations": [
          {
           "constant": false,
           "id": 992,
           "name": "id",
           "nodeType": "VariableDeclaration",
           "scope": 1030,
           "src": "7428:10:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 991,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "7428:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 994,
         "initialValue": {
          "argumentTypes": null,
          "id": 993,
          "name": "nextTemplateID",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 664,
          "src": "7441:14:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "7428:27:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1000,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 995,
            "name": "templates",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 668,
            "src": "7465:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
             "typeString": "mapping(uint256 => uint256)"
            }
           },
           "id": 997,
           "indexExpression": {
            "argumentTypes": null,
            "id": 996,
            "name": "id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 992,
            "src": "7475:2:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "nodeType": "IndexAccess",
           "src": "7465:13:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "id": 998,
            "name": "block",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2646,
            "src": "7481:5:6",
            "typeDescriptions": {
             "typeIdentifier": "t_magic_block",
             "typeString": "block"
            }
           },
           "id": 999,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "number",
           "nodeType": "MemberAccess",
           "referencedDeclaration": null,
           "src": "7481:12:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "7465:28:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 1001,
         "nodeType": "ExpressionStatement",
         "src": "7465:28:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1011,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1002,
            "name": "template_hashes",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 672,
            "src": "7503:15:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
             "typeString": "mapping(uint256 => bytes32)"
            }
           },
           "id": 1004,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1003,
            "name": "id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 992,
            "src": "7519:2:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "nodeType": "IndexAccess",
           "src": "7503:19:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1008,
               "name": "content",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 984,
               "src": "7552:7:6",
               "typeDescriptions": {
                "typeIdentifier": "t_string_memory_ptr",
                "typeString": "string memory"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_string_memory_ptr",
                "typeString": "string memory"
               }
              ],
              "expression": {
               "argumentTypes": null,
               "id": 1006,
               "name": "abi",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2643,
               "src": "7535:3:6",
               "typeDescriptions": {
                "typeIdentifier": "t_magic_abi",
                "typeString": "abi"
               }
              },
              "id": 1007,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "memberName": "encodePacked",
              "nodeType": "MemberAccess",
              "referencedDeclaration": null,
              "src": "7535:16:6",
              "typeDescriptions": {
               "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
               "typeString": "function () pure returns (bytes memory)"
              }
             },
             "id": 1009,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "7535:25:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes_memory_ptr",
              "typeString": "bytes memory"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_bytes_memory_ptr",
              "typeString": "bytes memory"
             }
            ],
            "id": 1005,
            "name": "keccak256",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2650,
            "src": "7525:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
             "typeString": "function () pure returns (bytes32)"
            }
           },
           "id": 1010,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "7525:36:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "7503:58:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "id": 1012,
         "nodeType": "ExpressionStatement",
         "src": "7503:58:6"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1014,
            "name": "id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 992,
            "src": "7591:2:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 1015,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2656,
             "src": "7595:3:6",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 1016,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "7595:10:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 1017,
            "name": "content",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 984,
            "src": "7607:7:6",
            "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": 1013,
           "name": "LogNewTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 544,
           "src": "7576:14:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (uint256,address,string memory)"
           }
          },
          "id": 1018,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "7576:39:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1019,
         "nodeType": "EmitStatement",
         "src": "7571:44:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1025,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "id": 1020,
           "name": "nextTemplateID",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 664,
           "src": "7625:14:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "hexValue": "31",
             "id": 1023,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "7649:1:6",
             "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": 1021,
             "name": "id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 992,
             "src": "7642:2:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1022,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "add",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 2613,
            "src": "7642:6:6",
            "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": 1024,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "7642:9:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "7625:26:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 1026,
         "nodeType": "ExpressionStatement",
         "src": "7625:26:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1027,
          "name": "id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 992,
          "src": "7668:2:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "functionReturnParameters": 990,
         "id": 1028,
         "nodeType": "Return",
         "src": "7661:9:6"
        }
       ]
      },
      "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": 1030,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [],
        "id": 987,
        "modifierName": {
         "argumentTypes": null,
         "id": 986,
         "name": "stateAny",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 709,
         "src": "7378:8:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$__$",
          "typeString": "modifier ()"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "7378:10:6"
       }
      ],
      "name": "createTemplate",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 985,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 984,
         "name": "content",
         "nodeType": "VariableDeclaration",
         "scope": 1030,
         "src": "7353:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_string_memory_ptr",
          "typeString": "string"
         },
         "typeName": {
          "id": 983,
          "name": "string",
          "nodeType": "ElementaryTypeName",
          "src": "7353:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_string_storage_ptr",
           "typeString": "string"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "7352:16:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 990,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 989,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 1030,
         "src": "7409:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 988,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "7409:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "7408:9:6"
      },
      "scope": 2516,
      "src": "7329:348:6",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 1062,
       "nodeType": "Block",
       "src": "8822:153:6",
       "statements": [
        {
         "assignments": [
          1048
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1048,
           "name": "template_id",
           "nodeType": "VariableDeclaration",
           "scope": 1063,
           "src": "8832:19:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 1047,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "8832:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1052,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1050,
            "name": "content",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1032,
            "src": "8869:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_string_memory_ptr",
             "typeString": "string memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_string_memory_ptr",
             "typeString": "string memory"
            }
           ],
           "id": 1049,
           "name": "createTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1030,
           "src": "8854:14:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
            "typeString": "function (string memory) returns (uint256)"
           }
          },
          "id": 1051,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "8854:23:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "8832:45:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1054,
            "name": "template_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1048,
            "src": "8906:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 1055,
            "name": "question",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1034,
            "src": "8919:8:6",
            "typeDescriptions": {
             "typeIdentifier": "t_string_memory_ptr",
             "typeString": "string memory"
            }
           },
           {
            "argumentTypes": null,
            "id": 1056,
            "name": "arbitrator",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1036,
            "src": "8929:10:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 1057,
            "name": "timeout",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1038,
            "src": "8941:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1058,
            "name": "opening_ts",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1040,
            "src": "8950:10:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1059,
            "name": "nonce",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1042,
            "src": "8962:5:6",
            "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": 1053,
           "name": "askQuestion",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1139,
           "src": "8894:11:6",
           "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": 1060,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "8894:74:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 1046,
         "id": 1061,
         "nodeType": "Return",
         "src": "8887:81:6"
        }
       ]
      },
      "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": 1063,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "createTemplateAndAskQuestion",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1043,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1032,
         "name": "content",
         "nodeType": "VariableDeclaration",
         "scope": 1063,
         "src": "8598:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_string_memory_ptr",
          "typeString": "string"
         },
         "typeName": {
          "id": 1031,
          "name": "string",
          "nodeType": "ElementaryTypeName",
          "src": "8598:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_string_storage_ptr",
           "typeString": "string"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1034,
         "name": "question",
         "nodeType": "VariableDeclaration",
         "scope": 1063,
         "src": "8623:15:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_string_memory_ptr",
          "typeString": "string"
         },
         "typeName": {
          "id": 1033,
          "name": "string",
          "nodeType": "ElementaryTypeName",
          "src": "8623:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_string_storage_ptr",
           "typeString": "string"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1036,
         "name": "arbitrator",
         "nodeType": "VariableDeclaration",
         "scope": 1063,
         "src": "8640:18:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1035,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "8640:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1038,
         "name": "timeout",
         "nodeType": "VariableDeclaration",
         "scope": 1063,
         "src": "8660:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 1037,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "8660:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1040,
         "name": "opening_ts",
         "nodeType": "VariableDeclaration",
         "scope": 1063,
         "src": "8676:17:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 1039,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "8676:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1042,
         "name": "nonce",
         "nodeType": "VariableDeclaration",
         "scope": 1063,
         "src": "8695:13:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1041,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "8695:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "8588:127:6"
      },
      "payable": true,
      "returnParameters": {
       "id": 1046,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1045,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 1063,
         "src": "8813:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1044,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "8813:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "8812:9:6"
      },
      "scope": 2516,
      "src": "8551:424:6",
      "stateMutability": "payable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 1138,
       "nodeType": "Block",
       "src": "10092:533:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 1085,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 1081,
              "name": "templates",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 668,
              "src": "10111:9:6",
              "typeDescriptions": {
               "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
               "typeString": "mapping(uint256 => uint256)"
              }
             },
             "id": 1083,
             "indexExpression": {
              "argumentTypes": null,
              "id": 1082,
              "name": "template_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1065,
              "src": "10121:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "10111:22:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 1084,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "10136:1:6",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "10111:26:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "74656d706c617465206d757374206578697374",
            "id": 1086,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "10139:21:6",
            "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": 1080,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "10103:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1087,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "10103:58:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1088,
         "nodeType": "ExpressionStatement",
         "src": "10103:58:6"
        },
        {
         "assignments": [
          1090
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1090,
           "name": "content_hash",
           "nodeType": "VariableDeclaration",
           "scope": 1139,
           "src": "10172:20:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1089,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "10172:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1099,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 1094,
              "name": "template_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1065,
              "src": "10222:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             {
              "argumentTypes": null,
              "id": 1095,
              "name": "opening_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1073,
              "src": "10235:10:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1096,
              "name": "question",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1067,
              "src": "10247:8:6",
              "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": 1092,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2643,
              "src": "10205:3:6",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 1093,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "10205:16:6",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 1097,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "10205:51:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 1091,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2650,
           "src": "10195:9:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 1098,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "10195:62:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "10172:85:6"
        },
        {
         "assignments": [
          1101
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1101,
           "name": "question_id",
           "nodeType": "VariableDeclaration",
           "scope": 1139,
           "src": "10267:19:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1100,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "10267:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1113,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 1105,
              "name": "content_hash",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1090,
              "src": "10316:12:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1106,
              "name": "arbitrator",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1069,
              "src": "10330:10:6",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             {
              "argumentTypes": null,
              "id": 1107,
              "name": "timeout",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1071,
              "src": "10342:7:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "id": 1108,
               "name": "msg",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2656,
               "src": "10351:3:6",
               "typeDescriptions": {
                "typeIdentifier": "t_magic_message",
                "typeString": "msg"
               }
              },
              "id": 1109,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "memberName": "sender",
              "nodeType": "MemberAccess",
              "referencedDeclaration": null,
              "src": "10351:10:6",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             {
              "argumentTypes": null,
              "id": 1110,
              "name": "nonce",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1075,
              "src": "10363:5:6",
              "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": 1103,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2643,
              "src": "10299:3:6",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 1104,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "10299:16:6",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 1111,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "10299:70:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 1102,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2650,
           "src": "10289:9:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 1112,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "10289:81:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "10267:103:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1115,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1101,
            "src": "10394:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1116,
            "name": "content_hash",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1090,
            "src": "10407:12:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1117,
            "name": "arbitrator",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1069,
            "src": "10421:10:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 1118,
            "name": "timeout",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1071,
            "src": "10433:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1119,
            "name": "opening_ts",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1073,
            "src": "10442:10:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           }
          ],
          "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"
            }
           ],
           "id": 1114,
           "name": "_askQuestion",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1254,
           "src": "10381:12:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint32_$returns$__$",
            "typeString": "function (bytes32,bytes32,address,uint32,uint32)"
           }
          },
          "id": 1120,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "10381:72:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1121,
         "nodeType": "ExpressionStatement",
         "src": "10381:72:6"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1123,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1101,
            "src": "10483:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 1124,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2656,
             "src": "10496:3:6",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 1125,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "10496:10:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 1126,
            "name": "template_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1065,
            "src": "10508:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 1127,
            "name": "question",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1067,
            "src": "10521:8:6",
            "typeDescriptions": {
             "typeIdentifier": "t_string_memory_ptr",
             "typeString": "string memory"
            }
           },
           {
            "argumentTypes": null,
            "id": 1128,
            "name": "content_hash",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1090,
            "src": "10531:12:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1129,
            "name": "arbitrator",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1069,
            "src": "10545:10:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 1130,
            "name": "timeout",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1071,
            "src": "10557:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1131,
            "name": "opening_ts",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1073,
            "src": "10566:10:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1132,
            "name": "nonce",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1075,
            "src": "10578:5:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 1133,
            "name": "now",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2658,
            "src": "10585:3:6",
            "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": 1122,
           "name": "LogNewQuestion",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 566,
           "src": "10468:14:6",
           "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": 1134,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "10468:121:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1135,
         "nodeType": "EmitStatement",
         "src": "10463:126:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1136,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1101,
          "src": "10607:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 1079,
         "id": 1137,
         "nodeType": "Return",
         "src": "10600:18:6"
        }
       ]
      },
      "documentation": "@notice Ask a new question 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 @return The ID of the newly-created question, created deterministically.",
      "id": 1139,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "askQuestion",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1076,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1065,
         "name": "template_id",
         "nodeType": "VariableDeclaration",
         "scope": 1139,
         "src": "9878:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1064,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "9878:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1067,
         "name": "question",
         "nodeType": "VariableDeclaration",
         "scope": 1139,
         "src": "9899:15:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_string_memory_ptr",
          "typeString": "string"
         },
         "typeName": {
          "id": 1066,
          "name": "string",
          "nodeType": "ElementaryTypeName",
          "src": "9899:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_string_storage_ptr",
           "typeString": "string"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1069,
         "name": "arbitrator",
         "nodeType": "VariableDeclaration",
         "scope": 1139,
         "src": "9916:18:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1068,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "9916:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1071,
         "name": "timeout",
         "nodeType": "VariableDeclaration",
         "scope": 1139,
         "src": "9936:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 1070,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "9936:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1073,
         "name": "opening_ts",
         "nodeType": "VariableDeclaration",
         "scope": 1139,
         "src": "9952:17:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 1072,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "9952:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1075,
         "name": "nonce",
         "nodeType": "VariableDeclaration",
         "scope": 1139,
         "src": "9971:13:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1074,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "9971:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "9877:108:6"
      },
      "payable": true,
      "returnParameters": {
       "id": 1079,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1078,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 1139,
         "src": "10083:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1077,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "10083:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "10082:9:6"
      },
      "scope": 2516,
      "src": "9857:768:6",
      "stateMutability": "payable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 1253,
       "nodeType": "Block",
       "src": "10802:1316:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 1158,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 1156,
             "name": "timeout",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1147,
             "src": "10903:7:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 1157,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "10913:1:6",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "10903:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "74696d656f7574206d75737420626520706f736974697665",
            "id": 1159,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "10916:26:6",
            "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": 1155,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "10895:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1160,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "10895:48:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1161,
         "nodeType": "ExpressionStatement",
         "src": "10895:48:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 1165,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 1163,
             "name": "timeout",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1147,
             "src": "10962:7:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "<",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "333635",
             "id": 1164,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "10972:8:6",
             "subdenomination": "days",
             "typeDescriptions": {
              "typeIdentifier": "t_rational_31536000_by_1",
              "typeString": "int_const 31536000"
             },
             "value": "365"
            },
            "src": "10962:18:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "74696d656f7574206d757374206265206c657373207468616e203336352064617973",
            "id": 1166,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "10982:36:6",
            "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": 1162,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "10954:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1167,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "10954:65:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1168,
         "nodeType": "ExpressionStatement",
         "src": "10954:65:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            "id": 1172,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 1170,
             "name": "arbitrator",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1145,
             "src": "11038:10:6",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "!=",
            "rightExpression": {
             "argumentTypes": null,
             "id": 1171,
             "name": "NULL_ADDRESS",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 516,
             "src": "11052:12:6",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "src": "11038:26:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "61726269747261746f72206d75737420626520736574",
            "id": 1173,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "11066:24:6",
            "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": 1169,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "11030:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1174,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "11030:61:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1175,
         "nodeType": "ExpressionStatement",
         "src": "11030:61:6"
        },
        {
         "assignments": [
          1177
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1177,
           "name": "bounty",
           "nodeType": "VariableDeclaration",
           "scope": 1254,
           "src": "11102:14:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 1176,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "11102:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1180,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "id": 1178,
           "name": "msg",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2656,
           "src": "11119:3:6",
           "typeDescriptions": {
            "typeIdentifier": "t_magic_message",
            "typeString": "msg"
           }
          },
          "id": 1179,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "value",
          "nodeType": "MemberAccess",
          "referencedDeclaration": null,
          "src": "11119:9:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "11102:26:6"
        },
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          },
          "id": 1184,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "id": 1181,
            "name": "msg",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2656,
            "src": "11520:3:6",
            "typeDescriptions": {
             "typeIdentifier": "t_magic_message",
             "typeString": "msg"
            }
           },
           "id": 1182,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "sender",
           "nodeType": "MemberAccess",
           "referencedDeclaration": null,
           "src": "11520:10:6",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "!=",
          "rightExpression": {
           "argumentTypes": null,
           "id": 1183,
           "name": "arbitrator",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1145,
           "src": "11534:10:6",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "src": "11520:24:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 1217,
         "nodeType": "IfStatement",
         "src": "11516:324:6",
         "trueBody": {
          "id": 1216,
          "nodeType": "Block",
          "src": "11546:294:6",
          "statements": [
           {
            "assignments": [
             1186
            ],
            "declarations": [
             {
              "constant": false,
              "id": 1186,
              "name": "question_fee",
              "nodeType": "VariableDeclaration",
              "scope": 1254,
              "src": "11560:20:6",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              },
              "typeName": {
               "id": 1185,
               "name": "uint256",
               "nodeType": "ElementaryTypeName",
               "src": "11560:7:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 1190,
            "initialValue": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 1187,
              "name": "arbitrator_question_fees",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 688,
              "src": "11583:24:6",
              "typeDescriptions": {
               "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
               "typeString": "mapping(address => uint256)"
              }
             },
             "id": 1189,
             "indexExpression": {
              "argumentTypes": null,
              "id": 1188,
              "name": "arbitrator",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1145,
              "src": "11608:10:6",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "11583:36:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "11560:59:6"
           },
           {
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "commonType": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               },
               "id": 1194,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "lValueRequested": false,
               "leftExpression": {
                "argumentTypes": null,
                "id": 1192,
                "name": "bounty",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1177,
                "src": "11641:6:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "nodeType": "BinaryOperation",
               "operator": ">=",
               "rightExpression": {
                "argumentTypes": null,
                "id": 1193,
                "name": "question_fee",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1186,
                "src": "11651:12:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "src": "11641:22:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
               }
              },
              {
               "argumentTypes": null,
               "hexValue": "4554482070726f7669646564206d75737420636f766572207175657374696f6e20666565",
               "id": 1195,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "kind": "string",
               "lValueRequested": false,
               "nodeType": "Literal",
               "src": "11665:38:6",
               "subdenomination": null,
               "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_f563467593cc476b2eaa9803db9a434ac560eec51474d9492a841a55aff9878c",
                "typeString": "literal_string \"ETH provided must cover question fee\""
               },
               "value": "ETH provided must cover question fee"
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
               },
               {
                "typeIdentifier": "t_stringliteral_f563467593cc476b2eaa9803db9a434ac560eec51474d9492a841a55aff9878c",
                "typeString": "literal_string \"ETH provided must cover question fee\""
               }
              ],
              "id": 1191,
              "name": "require",
              "nodeType": "Identifier",
              "overloadedDeclarations": [
               2659,
               2660
              ],
              "referencedDeclaration": 2660,
              "src": "11633:7:6",
              "typeDescriptions": {
               "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
               "typeString": "function (bool,string memory) pure"
              }
             },
             "id": 1196,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "11633:71:6",
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 1197,
            "nodeType": "ExpressionStatement",
            "src": "11633:71:6"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1203,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "id": 1198,
              "name": "bounty",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1177,
              "src": "11719:6:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 1201,
                "name": "question_fee",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1186,
                "src": "11739:12:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "expression": {
                "argumentTypes": null,
                "id": 1199,
                "name": "bounty",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1177,
                "src": "11728:6:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 1200,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "lValueRequested": false,
               "memberName": "sub",
               "nodeType": "MemberAccess",
               "referencedDeclaration": 2589,
               "src": "11728:10:6",
               "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": 1202,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "11728:24:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "11719:33:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1204,
            "nodeType": "ExpressionStatement",
            "src": "11719:33:6"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1214,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1205,
               "name": "balanceOf",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 317,
               "src": "11766:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
               }
              },
              "id": 1207,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1206,
               "name": "arbitrator",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1145,
               "src": "11776:10:6",
               "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "nodeType": "IndexAccess",
              "src": "11766:21:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 1212,
                "name": "question_fee",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1186,
                "src": "11816:12:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "expression": {
                "argumentTypes": null,
                "baseExpression": {
                 "argumentTypes": null,
                 "id": 1208,
                 "name": "balanceOf",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 317,
                 "src": "11790:9:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                  "typeString": "mapping(address => uint256)"
                 }
                },
                "id": 1210,
                "indexExpression": {
                 "argumentTypes": null,
                 "id": 1209,
                 "name": "arbitrator",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1145,
                 "src": "11800:10:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                 }
                },
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "IndexAccess",
                "src": "11790:21:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 1211,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "lValueRequested": false,
               "memberName": "add",
               "nodeType": "MemberAccess",
               "referencedDeclaration": 2613,
               "src": "11790:25:6",
               "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": 1213,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "11790:39:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "11766:63:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1215,
            "nodeType": "ExpressionStatement",
            "src": "11766:63:6"
           }
          ]
         }
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1223,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1218,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "11850:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 1220,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1219,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1141,
             "src": "11860:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "11850:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 1221,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "content_hash",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 628,
           "src": "11850:35:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1222,
           "name": "content_hash",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1143,
           "src": "11888:12:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "11850:50:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "id": 1224,
         "nodeType": "ExpressionStatement",
         "src": "11850:50:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1230,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1225,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "11910:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 1227,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1226,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1141,
             "src": "11920:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "11910:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 1228,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "arbitrator",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 630,
           "src": "11910:33:6",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1229,
           "name": "arbitrator",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1145,
           "src": "11946:10:6",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "src": "11910:46:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "id": 1231,
         "nodeType": "ExpressionStatement",
         "src": "11910:46:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1237,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1232,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "11966:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 1234,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1233,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1141,
             "src": "11976:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "11966:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 1235,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "opening_ts",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 632,
           "src": "11966:33:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1236,
           "name": "opening_ts",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1149,
           "src": "12002:10:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "src": "11966:46:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "id": 1238,
         "nodeType": "ExpressionStatement",
         "src": "11966:46:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1244,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1239,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "12022:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 1241,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1240,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1141,
             "src": "12032:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "12022:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 1242,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "timeout",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 634,
           "src": "12022:30:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1243,
           "name": "timeout",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1147,
           "src": "12055:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "src": "12022:40:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "id": 1245,
         "nodeType": "ExpressionStatement",
         "src": "12022:40:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1251,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1246,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "12072:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 1248,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1247,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1141,
             "src": "12082:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "12072:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 1249,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "bounty",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 640,
           "src": "12072:29:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1250,
           "name": "bounty",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1177,
           "src": "12104:6:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "12072:38:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 1252,
         "nodeType": "ExpressionStatement",
         "src": "12072:38:6"
        }
       ]
      },
      "documentation": null,
      "id": 1254,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1152,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1141,
          "src": "10776:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1153,
        "modifierName": {
         "argumentTypes": null,
         "id": 1151,
         "name": "stateNotCreated",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 725,
         "src": "10760:15:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "10760:28:6"
       }
      ],
      "name": "_askQuestion",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1150,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1141,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1254,
         "src": "10653:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1140,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "10653:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1143,
         "name": "content_hash",
         "nodeType": "VariableDeclaration",
         "scope": 1254,
         "src": "10674:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1142,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "10674:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1145,
         "name": "arbitrator",
         "nodeType": "VariableDeclaration",
         "scope": 1254,
         "src": "10696:18:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1144,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "10696:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1147,
         "name": "timeout",
         "nodeType": "VariableDeclaration",
         "scope": 1254,
         "src": "10716:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 1146,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "10716:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1149,
         "name": "opening_ts",
         "nodeType": "VariableDeclaration",
         "scope": 1254,
         "src": "10732:17:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 1148,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "10732:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "10652:98:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 1154,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "10802:0:6"
      },
      "scope": 2516,
      "src": "10631:1487:6",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 1288,
       "nodeType": "Block",
       "src": "12467:194:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "id": 1274,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1262,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "12477:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 1264,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1263,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1256,
             "src": "12487:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "12477:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 1265,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "bounty",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 640,
           "src": "12477:29:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "id": 1271,
              "name": "msg",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2656,
              "src": "12543:3:6",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_message",
               "typeString": "msg"
              }
             },
             "id": 1272,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "value",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "12543:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            ],
            "expression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1266,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 676,
               "src": "12509:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
               }
              },
              "id": 1268,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1267,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1256,
               "src": "12519:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "12509:22:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$647_storage",
               "typeString": "struct Realitio.Question storage ref"
              }
             },
             "id": 1269,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "bounty",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 640,
             "src": "12509:29:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1270,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "add",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 2613,
            "src": "12509:33:6",
            "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": 1273,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "12509:44:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "12477:76:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 1275,
         "nodeType": "ExpressionStatement",
         "src": "12477:76:6"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1277,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1256,
            "src": "12588:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 1278,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2656,
             "src": "12601:3:6",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 1279,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "value",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "12601:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 1280,
              "name": "questions",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 676,
              "src": "12612:9:6",
              "typeDescriptions": {
               "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
               "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
              }
             },
             "id": 1282,
             "indexExpression": {
              "argumentTypes": null,
              "id": 1281,
              "name": "question_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1256,
              "src": "12622:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "12612:22:6",
             "typeDescriptions": {
              "typeIdentifier": "t_struct$_Question_$647_storage",
              "typeString": "struct Realitio.Question storage ref"
             }
            },
            "id": 1283,
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "bounty",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 640,
            "src": "12612:29:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 1284,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2656,
             "src": "12643:3:6",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 1285,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "12643:10:6",
            "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": 1276,
           "name": "LogFundAnswerBounty",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 576,
           "src": "12568:19:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
            "typeString": "function (bytes32,uint256,uint256,address)"
           }
          },
          "id": 1286,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "12568:86:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1287,
         "nodeType": "EmitStatement",
         "src": "12563:91:6"
        }
       ]
      },
      "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",
      "id": 1289,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1259,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1256,
          "src": "12433:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1260,
        "modifierName": {
         "argumentTypes": null,
         "id": 1258,
         "name": "stateOpen",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 790,
         "src": "12423:9:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "12423:22:6"
       }
      ],
      "name": "fundAnswerBounty",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1257,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1256,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1289,
         "src": "12393:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1255,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "12393:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "12392:21:6"
      },
      "payable": true,
      "returnParameters": {
       "id": 1261,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "12467:0:6"
      },
      "scope": 2516,
      "src": "12367:294:6",
      "stateMutability": "payable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1327,
       "nodeType": "Block",
       "src": "13392:170:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1309,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1291,
            "src": "13422:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1310,
            "name": "answer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1293,
            "src": "13435:6:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 1311,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2656,
             "src": "13443:3:6",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 1312,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "13443:10:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 1313,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2656,
             "src": "13455:3:6",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 1314,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "value",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "13455:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "66616c7365",
            "id": 1315,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "bool",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "13466:5:6",
            "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": 1308,
           "name": "_addAnswerToHistory",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1570,
           "src": "13402:19:6",
           "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": 1316,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "13402:70:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1317,
         "nodeType": "ExpressionStatement",
         "src": "13402:70:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1319,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1291,
            "src": "13503:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1320,
            "name": "answer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1293,
            "src": "13516:6:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 1321,
              "name": "questions",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 676,
              "src": "13524:9:6",
              "typeDescriptions": {
               "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
               "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
              }
             },
             "id": 1323,
             "indexExpression": {
              "argumentTypes": null,
              "id": 1322,
              "name": "question_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1291,
              "src": "13534:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "13524:22:6",
             "typeDescriptions": {
              "typeIdentifier": "t_struct$_Question_$647_storage",
              "typeString": "struct Realitio.Question storage ref"
             }
            },
            "id": 1324,
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "timeout",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 634,
            "src": "13524:30:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           ],
           "id": 1318,
           "name": "_updateCurrentAnswer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1599,
           "src": "13482:20:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
            "typeString": "function (bytes32,bytes32,uint32)"
           }
          },
          "id": 1325,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "13482:73:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1326,
         "nodeType": "ExpressionStatement",
         "src": "13482:73:6"
        }
       ]
      },
      "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.",
      "id": 1328,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1298,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1291,
          "src": "13252:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1299,
        "modifierName": {
         "argumentTypes": null,
         "id": 1297,
         "name": "stateOpen",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 790,
         "src": "13242:9:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "13242:22:6"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1301,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1291,
          "src": "13288:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1302,
        "modifierName": {
         "argumentTypes": null,
         "id": 1300,
         "name": "bondMustDouble",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 914,
         "src": "13273:14:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "13273:27:6"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1304,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1291,
          "src": "13344:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         {
          "argumentTypes": null,
          "id": 1305,
          "name": "max_previous",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1295,
          "src": "13357:12:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         }
        ],
        "id": 1306,
        "modifierName": {
         "argumentTypes": null,
         "id": 1303,
         "name": "previousBondMustNotBeatMaxPrevious",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 937,
         "src": "13309:34:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
          "typeString": "modifier (bytes32,uint256)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "13309:61:6"
       }
      ],
      "name": "submitAnswer",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1296,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1291,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1328,
         "src": "13174:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1290,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "13174:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1293,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 1328,
         "src": "13195:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1292,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "13195:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1295,
         "name": "max_previous",
         "nodeType": "VariableDeclaration",
         "scope": 1328,
         "src": "13211:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1294,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "13211:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "13173:59:6"
      },
      "payable": true,
      "returnParameters": {
       "id": 1307,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "13392:0:6"
      },
      "scope": 2516,
      "src": "13152:410:6",
      "stateMutability": "payable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1412,
       "nodeType": "Block",
       "src": "14773:573:6",
       "statements": [
        {
         "assignments": [
          1350
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1350,
           "name": "commitment_id",
           "nodeType": "VariableDeclaration",
           "scope": 1413,
           "src": "14784:21:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1349,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "14784:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1360,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 1354,
              "name": "question_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1330,
              "src": "14835:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1355,
              "name": "answer_hash",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1332,
              "src": "14848:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "id": 1356,
               "name": "msg",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2656,
               "src": "14861:3:6",
               "typeDescriptions": {
                "typeIdentifier": "t_magic_message",
                "typeString": "msg"
               }
              },
              "id": 1357,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "memberName": "value",
              "nodeType": "MemberAccess",
              "referencedDeclaration": null,
              "src": "14861:9:6",
              "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": 1352,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2643,
              "src": "14818:3:6",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 1353,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "14818:16:6",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 1358,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "14818:53:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 1351,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2650,
           "src": "14808:9:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 1359,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "14808:64:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "14784:88:6"
        },
        {
         "assignments": [
          1362
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1362,
           "name": "answerer",
           "nodeType": "VariableDeclaration",
           "scope": 1413,
           "src": "14882:16:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           },
           "typeName": {
            "id": 1361,
            "name": "address",
            "nodeType": "ElementaryTypeName",
            "src": "14882:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1371,
         "initialValue": {
          "argumentTypes": null,
          "condition": {
           "argumentTypes": null,
           "components": [
            {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             },
             "id": 1365,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 1363,
              "name": "_answerer",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1336,
              "src": "14902:9:6",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "==",
             "rightExpression": {
              "argumentTypes": null,
              "id": 1364,
              "name": "NULL_ADDRESS",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 516,
              "src": "14915:12:6",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "src": "14902:25:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            }
           ],
           "id": 1366,
           "isConstant": false,
           "isInlineArray": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "TupleExpression",
           "src": "14901:27:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           }
          },
          "falseExpression": {
           "argumentTypes": null,
           "id": 1369,
           "name": "_answerer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1336,
           "src": "14944:9:6",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "id": 1370,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "nodeType": "Conditional",
          "src": "14901:52:6",
          "trueExpression": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "id": 1367,
            "name": "msg",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2656,
            "src": "14931:3:6",
            "typeDescriptions": {
             "typeIdentifier": "t_magic_message",
             "typeString": "msg"
            }
           },
           "id": 1368,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "sender",
           "nodeType": "MemberAccess",
           "referencedDeclaration": null,
           "src": "14931:10:6",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "14882:71:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 1378,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1373,
               "name": "commitments",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 684,
               "src": "14972:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$654_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
               }
              },
              "id": 1375,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1374,
               "name": "commitment_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1350,
               "src": "14984:13:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "14972:26:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Commitment_$654_storage",
               "typeString": "struct Realitio.Commitment storage ref"
              }
             },
             "id": 1376,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "reveal_ts",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 649,
             "src": "14972:36:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "==",
            "rightExpression": {
             "argumentTypes": null,
             "id": 1377,
             "name": "COMMITMENT_NON_EXISTENT",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 527,
             "src": "15012:23:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "src": "14972:63:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "636f6d6d69746d656e74206d757374206e6f7420616c7265616479206578697374",
            "id": 1379,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "15037:35:6",
            "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": 1372,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "14964:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1380,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "14964:109:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1381,
         "nodeType": "ExpressionStatement",
         "src": "14964:109:6"
        },
        {
         "assignments": [
          1383
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1383,
           "name": "commitment_timeout",
           "nodeType": "VariableDeclaration",
           "scope": 1413,
           "src": "15084:25:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           },
           "typeName": {
            "id": 1382,
            "name": "uint32",
            "nodeType": "ElementaryTypeName",
            "src": "15084:6:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1390,
         "initialValue": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          },
          "id": 1389,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1384,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "15112:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 1386,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1385,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1330,
             "src": "15122:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "15112:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 1387,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "timeout",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 634,
           "src": "15112:30:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "/",
          "rightExpression": {
           "argumentTypes": null,
           "id": 1388,
           "name": "COMMITMENT_TIMEOUT_RATIO",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 530,
           "src": "15145:24:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "src": "15112:57:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "15084:85:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1401,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1391,
             "name": "commitments",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 684,
             "src": "15179:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$654_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
             }
            },
            "id": 1393,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1392,
             "name": "commitment_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1350,
             "src": "15191:13:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "15179:26:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Commitment_$654_storage",
             "typeString": "struct Realitio.Commitment storage ref"
            }
           },
           "id": 1394,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "reveal_ts",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 649,
           "src": "15179:36:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "id": 1399,
             "name": "commitment_timeout",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1383,
             "src": "15234:18:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            ],
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1396,
               "name": "now",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2658,
               "src": "15225:3:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 1395,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "ElementaryTypeNameExpression",
              "src": "15218:6:6",
              "typeDescriptions": {
               "typeIdentifier": "t_type$_t_uint32_$",
               "typeString": "type(uint32)"
              },
              "typeName": "uint32"
             },
             "id": 1397,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "typeConversion",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "15218:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "id": 1398,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "add",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 2640,
            "src": "15218:15:6",
            "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": 1400,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "15218:35:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "src": "15179:74:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "id": 1402,
         "nodeType": "ExpressionStatement",
         "src": "15179:74:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1404,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1330,
            "src": "15284:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1405,
            "name": "commitment_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1350,
            "src": "15297:13:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1406,
            "name": "answerer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1362,
            "src": "15312:8:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 1407,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2656,
             "src": "15322:3:6",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 1408,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "value",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "15322:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "74727565",
            "id": 1409,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "bool",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "15333:4:6",
            "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": 1403,
           "name": "_addAnswerToHistory",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1570,
           "src": "15264:19:6",
           "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": 1410,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "15264:74:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1411,
         "nodeType": "ExpressionStatement",
         "src": "15264:74:6"
        }
       ]
      },
      "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 @dev Specifying the answerer is useful if you want to delegate the commit-and-reveal to a third-party.",
      "id": 1413,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1339,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1330,
          "src": "14633:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1340,
        "modifierName": {
         "argumentTypes": null,
         "id": 1338,
         "name": "stateOpen",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 790,
         "src": "14623:9:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "14623:22:6"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1342,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1330,
          "src": "14669:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1343,
        "modifierName": {
         "argumentTypes": null,
         "id": 1341,
         "name": "bondMustDouble",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 914,
         "src": "14654:14:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "14654:27:6"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1345,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1330,
          "src": "14725:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         {
          "argumentTypes": null,
          "id": 1346,
          "name": "max_previous",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1334,
          "src": "14738:12:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         }
        ],
        "id": 1347,
        "modifierName": {
         "argumentTypes": null,
         "id": 1344,
         "name": "previousBondMustNotBeatMaxPrevious",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 937,
         "src": "14690:34:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
          "typeString": "modifier (bytes32,uint256)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "14690:61:6"
       }
      ],
      "name": "submitAnswerCommitment",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1337,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1330,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1413,
         "src": "14531:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1329,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "14531:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1332,
         "name": "answer_hash",
         "nodeType": "VariableDeclaration",
         "scope": 1413,
         "src": "14552:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1331,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "14552:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1334,
         "name": "max_previous",
         "nodeType": "VariableDeclaration",
         "scope": 1413,
         "src": "14573:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1333,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "14573:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1336,
         "name": "_answerer",
         "nodeType": "VariableDeclaration",
         "scope": 1413,
         "src": "14595:17:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1335,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "14595:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "14530:83:6"
      },
      "payable": true,
      "returnParameters": {
       "id": 1348,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "14773:0:6"
      },
      "scope": 2516,
      "src": "14499:847:6",
      "stateMutability": "payable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1510,
       "nodeType": "Block",
       "src": "16480:746:6",
       "statements": [
        {
         "assignments": [
          1428
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1428,
           "name": "answer_hash",
           "nodeType": "VariableDeclaration",
           "scope": 1511,
           "src": "16491:19:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1427,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "16491:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1436,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 1432,
              "name": "answer",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1417,
              "src": "16540:6:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1433,
              "name": "nonce",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1419,
              "src": "16548:5:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             }
            ],
            "expression": {
             "argumentTypes": [
              {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              },
              {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             ],
             "expression": {
              "argumentTypes": null,
              "id": 1430,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2643,
              "src": "16523:3:6",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 1431,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "16523:16:6",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 1434,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "16523:31:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 1429,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2650,
           "src": "16513:9:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 1435,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "16513:42:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "16491:64:6"
        },
        {
         "assignments": [
          1438
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1438,
           "name": "commitment_id",
           "nodeType": "VariableDeclaration",
           "scope": 1511,
           "src": "16565:21:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1437,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "16565:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1447,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 1442,
              "name": "question_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1415,
              "src": "16616:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1443,
              "name": "answer_hash",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1428,
              "src": "16629:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1444,
              "name": "bond",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1421,
              "src": "16642:4:6",
              "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": 1440,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2643,
              "src": "16599:3:6",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 1441,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "16599:16:6",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 1445,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "16599:48:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 1439,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2650,
           "src": "16589:9:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 1446,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "16589:59:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "16565:83:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1453,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "UnaryOperation",
            "operator": "!",
            "prefix": true,
            "src": "16667:39:6",
            "subExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1449,
               "name": "commitments",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 684,
               "src": "16668:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$654_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
               }
              },
              "id": 1451,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1450,
               "name": "commitment_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1438,
               "src": "16680:13:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "16668:26:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Commitment_$654_storage",
               "typeString": "struct Realitio.Commitment storage ref"
              }
             },
             "id": 1452,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "is_revealed",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 651,
             "src": "16668:38:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "636f6d6d69746d656e74206d757374206e6f742068617665206265656e2072657665616c656420796574",
            "id": 1454,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "16708:44:6",
            "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": 1448,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "16659:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1455,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "16659:94:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1456,
         "nodeType": "ExpressionStatement",
         "src": "16659:94:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 1465,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1458,
               "name": "commitments",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 684,
               "src": "16771:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$654_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
               }
              },
              "id": 1460,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1459,
               "name": "commitment_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1438,
               "src": "16783:13:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "16771:26:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Commitment_$654_storage",
               "typeString": "struct Realitio.Commitment storage ref"
              }
             },
             "id": 1461,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "reveal_ts",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 649,
             "src": "16771:36:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1463,
               "name": "now",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2658,
               "src": "16817:3:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 1462,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "ElementaryTypeNameExpression",
              "src": "16810:6:6",
              "typeDescriptions": {
               "typeIdentifier": "t_type$_t_uint32_$",
               "typeString": "type(uint32)"
              },
              "typeName": "uint32"
             },
             "id": 1464,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "typeConversion",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "16810:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "src": "16771:50:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "72657665616c20646561646c696e65206d757374206e6f74206861766520706173736564",
            "id": 1466,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "16823:38:6",
            "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": 1457,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "16763:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1467,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "16763:99:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1468,
         "nodeType": "ExpressionStatement",
         "src": "16763:99:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1474,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1469,
             "name": "commitments",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 684,
             "src": "16873:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$654_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
             }
            },
            "id": 1471,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1470,
             "name": "commitment_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1438,
             "src": "16885:13:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "16873:26:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Commitment_$654_storage",
             "typeString": "struct Realitio.Commitment storage ref"
            }
           },
           "id": 1472,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "revealed_answer",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 653,
           "src": "16873:42:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1473,
           "name": "answer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1417,
           "src": "16918:6:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "16873:51:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "id": 1475,
         "nodeType": "ExpressionStatement",
         "src": "16873:51:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1481,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1476,
             "name": "commitments",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 684,
             "src": "16934:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$654_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
             }
            },
            "id": 1478,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1477,
             "name": "commitment_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1438,
             "src": "16946:13:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "16934:26:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Commitment_$654_storage",
             "typeString": "struct Realitio.Commitment storage ref"
            }
           },
           "id": 1479,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "is_revealed",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 651,
           "src": "16934:38:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "hexValue": "74727565",
           "id": 1480,
           "isConstant": false,
           "isLValue": false,
           "isPure": true,
           "kind": "bool",
           "lValueRequested": false,
           "nodeType": "Literal",
           "src": "16975:4:6",
           "subdenomination": null,
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           },
           "value": "true"
          },
          "src": "16934:45:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "id": 1482,
         "nodeType": "ExpressionStatement",
         "src": "16934:45:6"
        },
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          },
          "id": 1488,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 1483,
           "name": "bond",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1421,
           "src": "16994:4:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "==",
          "rightExpression": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1484,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "17002:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 1486,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1485,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1415,
             "src": "17012:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "17002:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 1487,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "bond",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 646,
           "src": "17002:27:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "16994:35:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 1499,
         "nodeType": "IfStatement",
         "src": "16990:139:6",
         "trueBody": {
          "id": 1498,
          "nodeType": "Block",
          "src": "17031:98:6",
          "statements": [
           {
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1490,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1415,
               "src": "17066:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 1491,
               "name": "answer",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1417,
               "src": "17079:6:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "expression": {
                "argumentTypes": null,
                "baseExpression": {
                 "argumentTypes": null,
                 "id": 1492,
                 "name": "questions",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 676,
                 "src": "17087:9:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                  "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                 }
                },
                "id": 1494,
                "indexExpression": {
                 "argumentTypes": null,
                 "id": 1493,
                 "name": "question_id",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1415,
                 "src": "17097:11:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "IndexAccess",
                "src": "17087:22:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_struct$_Question_$647_storage",
                 "typeString": "struct Realitio.Question storage ref"
                }
               },
               "id": 1495,
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "memberName": "timeout",
               "nodeType": "MemberAccess",
               "referencedDeclaration": 634,
               "src": "17087:30:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               },
               {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               },
               {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
               }
              ],
              "id": 1489,
              "name": "_updateCurrentAnswer",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1599,
              "src": "17045:20:6",
              "typeDescriptions": {
               "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
               "typeString": "function (bytes32,bytes32,uint32)"
              }
             },
             "id": 1496,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "17045:73:6",
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 1497,
            "nodeType": "ExpressionStatement",
            "src": "17045:73:6"
           }
          ]
         }
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1501,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1415,
            "src": "17160:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 1502,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2656,
             "src": "17173:3:6",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 1503,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "17173:10:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 1504,
            "name": "answer_hash",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1428,
            "src": "17185:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1505,
            "name": "answer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1417,
            "src": "17198:6:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1506,
            "name": "nonce",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1419,
            "src": "17206:5:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 1507,
            "name": "bond",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1421,
            "src": "17213:4:6",
            "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": 1500,
           "name": "LogAnswerReveal",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 606,
           "src": "17144:15:6",
           "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": 1508,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "17144:74:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1509,
         "nodeType": "EmitStatement",
         "src": "17139:79:6"
        }
       ]
      },
      "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": 1511,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1424,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1415,
          "src": "16454:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1425,
        "modifierName": {
         "argumentTypes": null,
         "id": 1423,
         "name": "stateOpenOrPendingArbitration",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 860,
         "src": "16424:29:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "16424:42:6"
       }
      ],
      "name": "submitAnswerReveal",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1422,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1415,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1511,
         "src": "16349:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1414,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "16349:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1417,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 1511,
         "src": "16370:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1416,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "16370:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1419,
         "name": "nonce",
         "nodeType": "VariableDeclaration",
         "scope": 1511,
         "src": "16386:13:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1418,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "16386:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1421,
         "name": "bond",
         "nodeType": "VariableDeclaration",
         "scope": 1511,
         "src": "16401:12:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1420,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "16401:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "16348:66:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 1426,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "16480:0:6"
      },
      "scope": 2516,
      "src": "16321:905:6",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1569,
       "nodeType": "Block",
       "src": "17386:524:6",
       "statements": [
        {
         "assignments": [
          1525
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1525,
           "name": "new_history_hash",
           "nodeType": "VariableDeclaration",
           "scope": 1570,
           "src": "17396:24:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1524,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "17396:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1539,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1529,
                "name": "questions",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 676,
                "src": "17450:9:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                 "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                }
               },
               "id": 1531,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1530,
                "name": "question_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1513,
                "src": "17460:11:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "17450:22:6",
               "typeDescriptions": {
                "typeIdentifier": "t_struct$_Question_$647_storage",
                "typeString": "struct Realitio.Question storage ref"
               }
              },
              "id": 1532,
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "memberName": "history_hash",
              "nodeType": "MemberAccess",
              "referencedDeclaration": 644,
              "src": "17450:35:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1533,
              "name": "answer_or_commitment_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1515,
              "src": "17487:23:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1534,
              "name": "bond",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1519,
              "src": "17512:4:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             {
              "argumentTypes": null,
              "id": 1535,
              "name": "answerer",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1517,
              "src": "17518:8:6",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             {
              "argumentTypes": null,
              "id": 1536,
              "name": "is_commitment",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1521,
              "src": "17528:13:6",
              "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": 1527,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2643,
              "src": "17433:3:6",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 1528,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "17433:16:6",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 1537,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "17433:109:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 1526,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2650,
           "src": "17423:9:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 1538,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "17423:120:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "17396:147:6"
        },
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          },
          "id": 1542,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 1540,
           "name": "bond",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1519,
           "src": "17651:4:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": ">",
          "rightExpression": {
           "argumentTypes": null,
           "hexValue": "30",
           "id": 1541,
           "isConstant": false,
           "isLValue": false,
           "isPure": true,
           "kind": "number",
           "lValueRequested": false,
           "nodeType": "Literal",
           "src": "17658:1:6",
           "subdenomination": null,
           "typeDescriptions": {
            "typeIdentifier": "t_rational_0_by_1",
            "typeString": "int_const 0"
           },
           "value": "0"
          },
          "src": "17651:8:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 1551,
         "nodeType": "IfStatement",
         "src": "17647:73:6",
         "trueBody": {
          "id": 1550,
          "nodeType": "Block",
          "src": "17661:59:6",
          "statements": [
           {
            "expression": {
             "argumentTypes": null,
             "id": 1548,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1543,
                "name": "questions",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 676,
                "src": "17675:9:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                 "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                }
               },
               "id": 1545,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1544,
                "name": "question_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1513,
                "src": "17685:11:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "17675:22:6",
               "typeDescriptions": {
                "typeIdentifier": "t_struct$_Question_$647_storage",
                "typeString": "struct Realitio.Question storage ref"
               }
              },
              "id": 1546,
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "memberName": "bond",
              "nodeType": "MemberAccess",
              "referencedDeclaration": 646,
              "src": "17675:27:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "id": 1547,
              "name": "bond",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1519,
              "src": "17705:4:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "17675:34:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1549,
            "nodeType": "ExpressionStatement",
            "src": "17675:34:6"
           }
          ]
         }
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1557,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1552,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "17729:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 1554,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1553,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1513,
             "src": "17739:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "17729:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 1555,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "history_hash",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 644,
           "src": "17729:35:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1556,
           "name": "new_history_hash",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1525,
           "src": "17767:16:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "17729:54:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "id": 1558,
         "nodeType": "ExpressionStatement",
         "src": "17729:54:6"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1560,
            "name": "answer_or_commitment_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1515,
            "src": "17812:23:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1561,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1513,
            "src": "17837:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1562,
            "name": "new_history_hash",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1525,
            "src": "17850:16:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1563,
            "name": "answerer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1517,
            "src": "17868:8:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 1564,
            "name": "bond",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1519,
            "src": "17878:4:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 1565,
            "name": "now",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2658,
            "src": "17884:3:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 1566,
            "name": "is_commitment",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1521,
            "src": "17889:13:6",
            "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": 1559,
           "name": "LogNewAnswer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 592,
           "src": "17799:12:6",
           "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": 1567,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "17799:104:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1568,
         "nodeType": "EmitStatement",
         "src": "17794:109:6"
        }
       ]
      },
      "documentation": null,
      "id": 1570,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "_addAnswerToHistory",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1522,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1513,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1570,
         "src": "17261:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1512,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "17261:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1515,
         "name": "answer_or_commitment_id",
         "nodeType": "VariableDeclaration",
         "scope": 1570,
         "src": "17282:31:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1514,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "17282:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1517,
         "name": "answerer",
         "nodeType": "VariableDeclaration",
         "scope": 1570,
         "src": "17315:16:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1516,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "17315:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1519,
         "name": "bond",
         "nodeType": "VariableDeclaration",
         "scope": 1570,
         "src": "17333:12:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1518,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "17333:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1521,
         "name": "is_commitment",
         "nodeType": "VariableDeclaration",
         "scope": 1570,
         "src": "17347:18:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         },
         "typeName": {
          "id": 1520,
          "name": "bool",
          "nodeType": "ElementaryTypeName",
          "src": "17347:4:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "17260:106:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 1523,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "17386:0:6"
      },
      "scope": 2516,
      "src": "17232:678:6",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 1598,
       "nodeType": "Block",
       "src": "18017:136:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "id": 1584,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1579,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "18027:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 1581,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1580,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1572,
             "src": "18037:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "18027:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 1582,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "best_answer",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 642,
           "src": "18027:34:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1583,
           "name": "answer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1574,
           "src": "18064:6:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "18027:43:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "id": 1585,
         "nodeType": "ExpressionStatement",
         "src": "18027:43:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1596,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1586,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "18080:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 1588,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1587,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1572,
             "src": "18090:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "18080:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 1589,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "finalize_ts",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 636,
           "src": "18080:34:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "id": 1594,
             "name": "timeout_secs",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1576,
             "src": "18133:12:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            ],
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1591,
               "name": "now",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2658,
               "src": "18124:3:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 1590,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "ElementaryTypeNameExpression",
              "src": "18117:6:6",
              "typeDescriptions": {
               "typeIdentifier": "t_type$_t_uint32_$",
               "typeString": "type(uint32)"
              },
              "typeName": "uint32"
             },
             "id": 1592,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "typeConversion",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "18117:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "id": 1593,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "add",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 2640,
            "src": "18117:15:6",
            "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": 1595,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "18117:29:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "src": "18080:66:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "id": 1597,
         "nodeType": "ExpressionStatement",
         "src": "18080:66:6"
        }
       ]
      },
      "documentation": null,
      "id": 1599,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "_updateCurrentAnswer",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1577,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1572,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1599,
         "src": "17946:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1571,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "17946:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1574,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 1599,
         "src": "17967:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1573,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "17967:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1576,
         "name": "timeout_secs",
         "nodeType": "VariableDeclaration",
         "scope": 1599,
         "src": "17983:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 1575,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "17983:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "17945:58:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 1578,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "18017:0:6"
      },
      "scope": 2516,
      "src": "17916:237:6",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 1640,
       "nodeType": "Block",
       "src": "18883:257:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 1624,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1619,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 676,
               "src": "18901:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
               }
              },
              "id": 1621,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1620,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1601,
               "src": "18911:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "18901:22:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$647_storage",
               "typeString": "struct Realitio.Question storage ref"
              }
             },
             "id": 1622,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "bond",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 646,
             "src": "18901:27:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 1623,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "18931:1:6",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "18901:31:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "5175657374696f6e206d75737420616c7265616479206861766520616e20616e73776572207768656e206172626974726174696f6e20697320726571756573746564",
            "id": 1625,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "18934:68:6",
            "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": 1618,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "18893:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1626,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "18893:110:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1627,
         "nodeType": "ExpressionStatement",
         "src": "18893:110:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1633,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1628,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "19013:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 1630,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1629,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1601,
             "src": "19023:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "19013:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 1631,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "is_pending_arbitration",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 638,
           "src": "19013:45:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "hexValue": "74727565",
           "id": 1632,
           "isConstant": false,
           "isLValue": false,
           "isPure": true,
           "kind": "bool",
           "lValueRequested": false,
           "nodeType": "Literal",
           "src": "19061:4:6",
           "subdenomination": null,
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           },
           "value": "true"
          },
          "src": "19013:52:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "id": 1634,
         "nodeType": "ExpressionStatement",
         "src": "19013:52:6"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1636,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1601,
            "src": "19110:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1637,
            "name": "requester",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1603,
            "src": "19123:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           ],
           "id": 1635,
           "name": "LogNotifyOfArbitrationRequest",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 612,
           "src": "19080:29:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
            "typeString": "function (bytes32,address)"
           }
          },
          "id": 1638,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "19080:53:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1639,
         "nodeType": "EmitStatement",
         "src": "19075:58:6"
        }
       ]
      },
      "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": 1641,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1608,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1601,
          "src": "18756:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1609,
        "modifierName": {
         "argumentTypes": null,
         "id": 1607,
         "name": "onlyArbitrator",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 705,
         "src": "18741:14:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "18741:27:6"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1611,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1601,
          "src": "18787:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1612,
        "modifierName": {
         "argumentTypes": null,
         "id": 1610,
         "name": "stateOpen",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 790,
         "src": "18777:9:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "18777:22:6"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1614,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1601,
          "src": "18843:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         {
          "argumentTypes": null,
          "id": 1615,
          "name": "max_previous",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1605,
          "src": "18856:12:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         }
        ],
        "id": 1616,
        "modifierName": {
         "argumentTypes": null,
         "id": 1613,
         "name": "previousBondMustNotBeatMaxPrevious",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 937,
         "src": "18808:34:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
          "typeString": "modifier (bytes32,uint256)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "18808:61:6"
       }
      ],
      "name": "notifyOfArbitrationRequest",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1606,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1601,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1641,
         "src": "18670:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1600,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "18670:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1603,
         "name": "requester",
         "nodeType": "VariableDeclaration",
         "scope": 1641,
         "src": "18691:17:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1602,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "18691:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1605,
         "name": "max_previous",
         "nodeType": "VariableDeclaration",
         "scope": 1641,
         "src": "18710:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1604,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "18710:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "18669:62:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 1617,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "18883:0:6"
      },
      "scope": 2516,
      "src": "18634:506:6",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1691,
       "nodeType": "Block",
       "src": "19943:316:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            "id": 1661,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 1659,
             "name": "answerer",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1647,
             "src": "19962:8:6",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "!=",
            "rightExpression": {
             "argumentTypes": null,
             "id": 1660,
             "name": "NULL_ADDRESS",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 516,
             "src": "19974:12:6",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "src": "19962:24:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "616e737765726572206d7573742062652070726f7669646564",
            "id": 1662,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "19988:27:6",
            "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": 1658,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "19954:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1663,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "19954:62:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1664,
         "nodeType": "ExpressionStatement",
         "src": "19954:62:6"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1666,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1643,
            "src": "20043:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1667,
            "name": "answer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1645,
            "src": "20056:6:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           ],
           "id": 1665,
           "name": "LogFinalize",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 618,
           "src": "20031:11:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
            "typeString": "function (bytes32,bytes32)"
           }
          },
          "id": 1668,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "20031:32:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1669,
         "nodeType": "EmitStatement",
         "src": "20026:37:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1675,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1670,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "20074:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 1672,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1671,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1643,
             "src": "20084:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "20074:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 1673,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "is_pending_arbitration",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 638,
           "src": "20074:45:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "hexValue": "66616c7365",
           "id": 1674,
           "isConstant": false,
           "isLValue": false,
           "isPure": true,
           "kind": "bool",
           "lValueRequested": false,
           "nodeType": "Literal",
           "src": "20122:5:6",
           "subdenomination": null,
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           },
           "value": "false"
          },
          "src": "20074:53:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "id": 1676,
         "nodeType": "ExpressionStatement",
         "src": "20074:53:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1678,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1643,
            "src": "20157:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1679,
            "name": "answer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1645,
            "src": "20170:6:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1680,
            "name": "answerer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1647,
            "src": "20178:8:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "30",
            "id": 1681,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "number",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "20188:1:6",
            "subdenomination": null,
            "typeDescriptions": {
             "typeIdentifier": "t_rational_0_by_1",
             "typeString": "int_const 0"
            },
            "value": "0"
           },
           {
            "argumentTypes": null,
            "hexValue": "66616c7365",
            "id": 1682,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "bool",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "20191:5:6",
            "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": 1677,
           "name": "_addAnswerToHistory",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1570,
           "src": "20137:19:6",
           "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": 1683,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "20137:60:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1684,
         "nodeType": "ExpressionStatement",
         "src": "20137:60:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1686,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1643,
            "src": "20228:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1687,
            "name": "answer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1645,
            "src": "20241:6:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "30",
            "id": 1688,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "number",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "20249:1:6",
            "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": 1685,
           "name": "_updateCurrentAnswer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1599,
           "src": "20207:20:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
            "typeString": "function (bytes32,bytes32,uint32)"
           }
          },
          "id": 1689,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "20207:44:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1690,
         "nodeType": "ExpressionStatement",
         "src": "20207:44:6"
        }
       ]
      },
      "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": 1692,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1650,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1643,
          "src": "19849:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1651,
        "modifierName": {
         "argumentTypes": null,
         "id": 1649,
         "name": "onlyArbitrator",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 705,
         "src": "19834:14:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "19834:27:6"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1653,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1643,
          "src": "19894:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1654,
        "modifierName": {
         "argumentTypes": null,
         "id": 1652,
         "name": "statePendingArbitration",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 804,
         "src": "19870:23:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "19870:36:6"
       },
       {
        "arguments": null,
        "id": 1656,
        "modifierName": {
         "argumentTypes": null,
         "id": 1655,
         "name": "bondMustBeZero",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 885,
         "src": "19915:14:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$__$",
          "typeString": "modifier ()"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "19915:14:6"
       }
      ],
      "name": "submitAnswerByArbitrator",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1648,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1643,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1692,
         "src": "19770:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1642,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "19770:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1645,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 1692,
         "src": "19791:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1644,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "19791:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1647,
         "name": "answerer",
         "nodeType": "VariableDeclaration",
         "scope": 1692,
         "src": "19807:16:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1646,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "19807:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "19769:55:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 1657,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "19943:0:6"
      },
      "scope": 2516,
      "src": "19736:523:6",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1725,
       "nodeType": "Block",
       "src": "20511:201:6",
       "statements": [
        {
         "assignments": [
          1700
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1700,
           "name": "finalize_ts",
           "nodeType": "VariableDeclaration",
           "scope": 1726,
           "src": "20521:18:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           },
           "typeName": {
            "id": 1699,
            "name": "uint32",
            "nodeType": "ElementaryTypeName",
            "src": "20521:6:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1705,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1701,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "20542:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 1703,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1702,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1694,
            "src": "20552:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "20542:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 1704,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "finalize_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 636,
          "src": "20542:34:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "20521:55:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "components": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            },
            "id": 1722,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             },
             "id": 1715,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 1710,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "UnaryOperation",
              "operator": "!",
              "prefix": true,
              "src": "20595:46:6",
              "subExpression": {
               "argumentTypes": null,
               "expression": {
                "argumentTypes": null,
                "baseExpression": {
                 "argumentTypes": null,
                 "id": 1706,
                 "name": "questions",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 676,
                 "src": "20596:9:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                  "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                 }
                },
                "id": 1708,
                "indexExpression": {
                 "argumentTypes": null,
                 "id": 1707,
                 "name": "question_id",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1694,
                 "src": "20606:11:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "IndexAccess",
                "src": "20596:22:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_struct$_Question_$647_storage",
                 "typeString": "struct Realitio.Question storage ref"
                }
               },
               "id": 1709,
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "memberName": "is_pending_arbitration",
               "nodeType": "MemberAccess",
               "referencedDeclaration": 638,
               "src": "20596:45:6",
               "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": 1713,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftExpression": {
                 "argumentTypes": null,
                 "id": 1711,
                 "name": "finalize_ts",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1700,
                 "src": "20646:11:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                 }
                },
                "nodeType": "BinaryOperation",
                "operator": ">",
                "rightExpression": {
                 "argumentTypes": null,
                 "id": 1712,
                 "name": "UNANSWERED",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 524,
                 "src": "20660:10:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                 }
                },
                "src": "20646:24:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bool",
                 "typeString": "bool"
                }
               }
              ],
              "id": 1714,
              "isConstant": false,
              "isInlineArray": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "TupleExpression",
              "src": "20645:26:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bool",
               "typeString": "bool"
              }
             },
             "src": "20595:76:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "&&",
            "rightExpression": {
             "argumentTypes": null,
             "components": [
              {
               "argumentTypes": null,
               "commonType": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
               },
               "id": 1720,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "lValueRequested": false,
               "leftExpression": {
                "argumentTypes": null,
                "id": 1716,
                "name": "finalize_ts",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1700,
                "src": "20676:11:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint32",
                 "typeString": "uint32"
                }
               },
               "nodeType": "BinaryOperation",
               "operator": "<=",
               "rightExpression": {
                "argumentTypes": null,
                "arguments": [
                 {
                  "argumentTypes": null,
                  "id": 1718,
                  "name": "now",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2658,
                  "src": "20698:3:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 }
                ],
                "expression": {
                 "argumentTypes": [
                  {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 ],
                 "id": 1717,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": true,
                 "lValueRequested": false,
                 "nodeType": "ElementaryTypeNameExpression",
                 "src": "20691:6:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_uint32_$",
                  "typeString": "type(uint32)"
                 },
                 "typeName": "uint32"
                },
                "id": 1719,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "kind": "typeConversion",
                "lValueRequested": false,
                "names": [],
                "nodeType": "FunctionCall",
                "src": "20691:11:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint32",
                 "typeString": "uint32"
                }
               },
               "src": "20676:26:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
               }
              }
             ],
             "id": 1721,
             "isConstant": false,
             "isInlineArray": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "TupleExpression",
             "src": "20675:28:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "src": "20595:108:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           }
          ],
          "id": 1723,
          "isConstant": false,
          "isInlineArray": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "nodeType": "TupleExpression",
          "src": "20593:112:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "functionReturnParameters": 1698,
         "id": 1724,
         "nodeType": "Return",
         "src": "20586:119:6"
        }
       ]
      },
      "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": 1726,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "isFinalized",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1695,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1694,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1726,
         "src": "20458:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1693,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "20458:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "20457:21:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 1698,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1697,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 1726,
         "src": "20505:4:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         },
         "typeName": {
          "id": 1696,
          "name": "bool",
          "nodeType": "ElementaryTypeName",
          "src": "20505:4:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "20504:6:6"
      },
      "scope": 2516,
      "src": "20437:275:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 1741,
       "nodeType": "Block",
       "src": "21045:58:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1736,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "21062:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 1738,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1737,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1728,
            "src": "21072:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "21062:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 1739,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "best_answer",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 642,
          "src": "21062:34:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 1735,
         "id": 1740,
         "nodeType": "Return",
         "src": "21055:41:6"
        }
       ]
      },
      "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": 1742,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1731,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1728,
          "src": "20996:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1732,
        "modifierName": {
         "argumentTypes": null,
         "id": 1730,
         "name": "stateFinalized",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 873,
         "src": "20981:14:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "20981:27:6"
       }
      ],
      "name": "getFinalAnswer",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1729,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1728,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1742,
         "src": "20951:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1727,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "20951:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "20950:21:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 1735,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1734,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 1742,
         "src": "21036:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1733,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "21036:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "21035:9:6"
      },
      "scope": 2516,
      "src": "20927:176:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1757,
       "nodeType": "Block",
       "src": "21418:58:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1752,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "21435:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 1754,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1753,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1744,
            "src": "21445:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "21435:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 1755,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "best_answer",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 642,
          "src": "21435:34:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 1751,
         "id": 1756,
         "nodeType": "Return",
         "src": "21428:41:6"
        }
       ]
      },
      "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": 1758,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1747,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1744,
          "src": "21369:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1748,
        "modifierName": {
         "argumentTypes": null,
         "id": 1746,
         "name": "stateFinalized",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 873,
         "src": "21354:14:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "21354:27:6"
       }
      ],
      "name": "resultFor",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1745,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1744,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1758,
         "src": "21324:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1743,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "21324:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "21323:21:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 1751,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1750,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 1758,
         "src": "21409:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1749,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "21409:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "21408:9:6"
      },
      "scope": 2516,
      "src": "21305:171:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1821,
       "nodeType": "Block",
       "src": "22454:427:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            "id": 1782,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 1777,
             "name": "content_hash",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1762,
             "src": "22472:12:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "==",
            "rightExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1778,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 676,
               "src": "22488:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
               }
              },
              "id": 1780,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1779,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1760,
               "src": "22498:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "22488:22:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$647_storage",
               "typeString": "struct Realitio.Question storage ref"
              }
             },
             "id": 1781,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "content_hash",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 628,
             "src": "22488:35:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "src": "22472:51:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "636f6e74656e742068617368206d757374206d61746368",
            "id": 1783,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "22525:25:6",
            "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": 1776,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "22464:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1784,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "22464:87:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1785,
         "nodeType": "ExpressionStatement",
         "src": "22464:87:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            "id": 1792,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 1787,
             "name": "arbitrator",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1764,
             "src": "22569:10:6",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "==",
            "rightExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1788,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 676,
               "src": "22583:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
               }
              },
              "id": 1790,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1789,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1760,
               "src": "22593:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "22583:22:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$647_storage",
               "typeString": "struct Realitio.Question storage ref"
              }
             },
             "id": 1791,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "arbitrator",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 630,
             "src": "22583:33:6",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "src": "22569:47:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "61726269747261746f72206d757374206d61746368",
            "id": 1793,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "22618:23:6",
            "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": 1786,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "22561:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1794,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "22561:81:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1795,
         "nodeType": "ExpressionStatement",
         "src": "22561:81:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 1802,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 1797,
             "name": "min_timeout",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1766,
             "src": "22660:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "<=",
            "rightExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1798,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 676,
               "src": "22675:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
               }
              },
              "id": 1800,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1799,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1760,
               "src": "22685:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "22675:22:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$647_storage",
               "typeString": "struct Realitio.Question storage ref"
              }
             },
             "id": 1801,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "timeout",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 634,
             "src": "22675:30:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "src": "22660:45:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "74696d656f7574206d757374206265206c6f6e6720656e6f756768",
            "id": 1803,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "22707:29:6",
            "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": 1796,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "22652:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1804,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "22652:85:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1805,
         "nodeType": "ExpressionStatement",
         "src": "22652:85:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 1812,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 1807,
             "name": "min_bond",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1768,
             "src": "22755:8:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "<=",
            "rightExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1808,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 676,
               "src": "22767:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
               }
              },
              "id": 1810,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1809,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1760,
               "src": "22777:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "22767:22:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$647_storage",
               "typeString": "struct Realitio.Question storage ref"
              }
             },
             "id": 1811,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "bond",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 646,
             "src": "22767:27:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "src": "22755:39:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "626f6e64206d757374206265206869676820656e6f756768",
            "id": 1813,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "22796:26:6",
            "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": 1806,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "22747:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1814,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "22747:76:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1815,
         "nodeType": "ExpressionStatement",
         "src": "22747:76:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1816,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "22840:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 1818,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1817,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1760,
            "src": "22850:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "22840:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 1819,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "best_answer",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 642,
          "src": "22840:34:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 1775,
         "id": 1820,
         "nodeType": "Return",
         "src": "22833:41:6"
        }
       ]
      },
      "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": 1822,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1771,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1760,
          "src": "22405:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1772,
        "modifierName": {
         "argumentTypes": null,
         "id": 1770,
         "name": "stateFinalized",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 873,
         "src": "22390:14:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "22390:27:6"
       }
      ],
      "name": "getFinalAnswerIfMatches",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1769,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1760,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1822,
         "src": "22266:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1759,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "22266:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1762,
         "name": "content_hash",
         "nodeType": "VariableDeclaration",
         "scope": 1822,
         "src": "22296:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1761,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "22296:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1764,
         "name": "arbitrator",
         "nodeType": "VariableDeclaration",
         "scope": 1822,
         "src": "22318:18:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1763,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "22318:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1766,
         "name": "min_timeout",
         "nodeType": "VariableDeclaration",
         "scope": 1822,
         "src": "22338:18:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 1765,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "22338:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1768,
         "name": "min_bond",
         "nodeType": "VariableDeclaration",
         "scope": 1822,
         "src": "22358:16:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1767,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "22358:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "22256:124:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 1775,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1774,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 1822,
         "src": "22445:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1773,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "22445:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "22444:9:6"
      },
      "scope": 2516,
      "src": "22224:657:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 2022,
       "nodeType": "Block",
       "src": "24393:2585:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 1846,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "id": 1843,
              "name": "history_hashes",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1827,
              "src": "24412:14:6",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
               "typeString": "bytes32[] memory"
              }
             },
             "id": 1844,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "length",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "24412:21:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 1845,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "24436:1:6",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "24412:25:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "6174206c65617374206f6e6520686973746f7279206861736820656e747279206d7573742062652070726f7669646564",
            "id": 1847,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "24439:50:6",
            "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": 1842,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "24404:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1848,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "24404:86:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1849,
         "nodeType": "ExpressionStatement",
         "src": "24404:86:6"
        },
        {
         "assignments": [
          1851
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1851,
           "name": "payee",
           "nodeType": "VariableDeclaration",
           "scope": 2023,
           "src": "24581:13:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           },
           "typeName": {
            "id": 1850,
            "name": "address",
            "nodeType": "ElementaryTypeName",
            "src": "24581:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1856,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1852,
            "name": "question_claims",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 680,
            "src": "24597:15:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$661_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
            }
           },
           "id": 1854,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1853,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1824,
            "src": "24613:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "24597:28:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Claim_$661_storage",
            "typeString": "struct Realitio.Claim storage ref"
           }
          },
          "id": 1855,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "payee",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 656,
          "src": "24597:34:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "24581:50:6"
        },
        {
         "assignments": [
          1858
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1858,
           "name": "last_bond",
           "nodeType": "VariableDeclaration",
           "scope": 2023,
           "src": "24642:17:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 1857,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "24642:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1863,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1859,
            "name": "question_claims",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 680,
            "src": "24662:15:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$661_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
            }
           },
           "id": 1861,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1860,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1824,
            "src": "24678:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "24662:28:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Claim_$661_storage",
            "typeString": "struct Realitio.Claim storage ref"
           }
          },
          "id": 1862,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "last_bond",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 658,
          "src": "24662:38:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "24642:58:6"
        },
        {
         "assignments": [
          1865
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1865,
           "name": "queued_funds",
           "nodeType": "VariableDeclaration",
           "scope": 2023,
           "src": "24711:20:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 1864,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "24711:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1870,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1866,
            "name": "question_claims",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 680,
            "src": "24734:15:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$661_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
            }
           },
           "id": 1868,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1867,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1824,
            "src": "24750:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "24734:28:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Claim_$661_storage",
            "typeString": "struct Realitio.Claim storage ref"
           }
          },
          "id": 1869,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "queued_funds",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 660,
          "src": "24734:41:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "24711:64:6"
        },
        {
         "assignments": [
          1872
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1872,
           "name": "last_history_hash",
           "nodeType": "VariableDeclaration",
           "scope": 2023,
           "src": "24996:25:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1871,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "24996:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1877,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1873,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "25024:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 1875,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1874,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1824,
            "src": "25034:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "25024:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 1876,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "history_hash",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 644,
          "src": "25024:35:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "24996:63:6"
        },
        {
         "assignments": [
          1879
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1879,
           "name": "best_answer",
           "nodeType": "VariableDeclaration",
           "scope": 2023,
           "src": "25070:19:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1878,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "25070:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1884,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1880,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "25092:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 1882,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1881,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1824,
            "src": "25102:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "25092:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 1883,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "best_answer",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 642,
          "src": "25092:34:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "25070:56:6"
        },
        {
         "assignments": [],
         "declarations": [
          {
           "constant": false,
           "id": 1886,
           "name": "i",
           "nodeType": "VariableDeclaration",
           "scope": 2023,
           "src": "25137:9:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 1885,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "25137:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1887,
         "initialValue": null,
         "nodeType": "VariableDeclarationStatement",
         "src": "25137:9:6"
        },
        {
         "body": {
          "id": 1957,
          "nodeType": "Block",
          "src": "25200:702:6",
          "statements": [
           {
            "assignments": [
             1900
            ],
            "declarations": [
             {
              "constant": false,
              "id": 1900,
              "name": "is_commitment",
              "nodeType": "VariableDeclaration",
              "scope": 2023,
              "src": "25334:18:6",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
               "typeIdentifier": "t_bool",
               "typeString": "bool"
              },
              "typeName": {
               "id": 1899,
               "name": "bool",
               "nodeType": "ElementaryTypeName",
               "src": "25334:4:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 1916,
            "initialValue": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1902,
               "name": "last_history_hash",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1872,
               "src": "25383:17:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1903,
                "name": "history_hashes",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1827,
                "src": "25402:14:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                 "typeString": "bytes32[] memory"
                }
               },
               "id": 1905,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1904,
                "name": "i",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1886,
                "src": "25417:1:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "25402:17:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1906,
                "name": "answers",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1836,
                "src": "25421:7:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                 "typeString": "bytes32[] memory"
                }
               },
               "id": 1908,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1907,
                "name": "i",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1886,
                "src": "25429:1:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "25421:10:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1909,
                "name": "bonds",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1833,
                "src": "25433:5:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                 "typeString": "uint256[] memory"
                }
               },
               "id": 1911,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1910,
                "name": "i",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1886,
                "src": "25439:1:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "25433:8:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1912,
                "name": "addrs",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1830,
                "src": "25443:5:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                 "typeString": "address[] memory"
                }
               },
               "id": 1914,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1913,
                "name": "i",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1886,
                "src": "25449:1:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "25443:8:6",
               "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": 1901,
              "name": "_verifyHistoryInputOrRevert",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2102,
              "src": "25355:27:6",
              "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": 1915,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "25355:97:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "25334:118:6"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1922,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "id": 1917,
              "name": "queued_funds",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1865,
              "src": "25479:12:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 1920,
                "name": "last_bond",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1858,
                "src": "25511:9:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "expression": {
                "argumentTypes": null,
                "id": 1918,
                "name": "queued_funds",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1865,
                "src": "25494:12:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 1919,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "lValueRequested": false,
               "memberName": "add",
               "nodeType": "MemberAccess",
               "referencedDeclaration": 2613,
               "src": "25494:16:6",
               "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": 1921,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "25494:27:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "25479:42:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1923,
            "nodeType": "ExpressionStatement",
            "src": "25479:42:6"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1943,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "components": [
               {
                "argumentTypes": null,
                "id": 1924,
                "name": "queued_funds",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1865,
                "src": "25537:12:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               {
                "argumentTypes": null,
                "id": 1925,
                "name": "payee",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1851,
                "src": "25551:5:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               }
              ],
              "id": 1926,
              "isConstant": false,
              "isInlineArray": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "nodeType": "TupleExpression",
              "src": "25536:21:6",
              "typeDescriptions": {
               "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
               "typeString": "tuple(uint256,address)"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 1928,
                "name": "question_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1824,
                "src": "25597:11:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               {
                "argumentTypes": null,
                "id": 1929,
                "name": "best_answer",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1879,
                "src": "25610:11:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               {
                "argumentTypes": null,
                "id": 1930,
                "name": "queued_funds",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1865,
                "src": "25623:12:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               {
                "argumentTypes": null,
                "id": 1931,
                "name": "payee",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1851,
                "src": "25637:5:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               },
               {
                "argumentTypes": null,
                "baseExpression": {
                 "argumentTypes": null,
                 "id": 1932,
                 "name": "addrs",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1830,
                 "src": "25661:5:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                  "typeString": "address[] memory"
                 }
                },
                "id": 1934,
                "indexExpression": {
                 "argumentTypes": null,
                 "id": 1933,
                 "name": "i",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1886,
                 "src": "25667:1:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "IndexAccess",
                "src": "25661:8:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               },
               {
                "argumentTypes": null,
                "baseExpression": {
                 "argumentTypes": null,
                 "id": 1935,
                 "name": "bonds",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1833,
                 "src": "25671:5:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                  "typeString": "uint256[] memory"
                 }
                },
                "id": 1937,
                "indexExpression": {
                 "argumentTypes": null,
                 "id": 1936,
                 "name": "i",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1886,
                 "src": "25677:1:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "IndexAccess",
                "src": "25671:8:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               {
                "argumentTypes": null,
                "baseExpression": {
                 "argumentTypes": null,
                 "id": 1938,
                 "name": "answers",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1836,
                 "src": "25681:7:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                  "typeString": "bytes32[] memory"
                 }
                },
                "id": 1940,
                "indexExpression": {
                 "argumentTypes": null,
                 "id": 1939,
                 "name": "i",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1886,
                 "src": "25689:1:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "IndexAccess",
                "src": "25681:10:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               {
                "argumentTypes": null,
                "id": 1941,
                "name": "is_commitment",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1900,
                "src": "25693:13:6",
                "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": 1927,
               "name": "_processHistoryItem",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2229,
               "src": "25560:19:6",
               "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": 1942,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "25560:147:6",
              "typeDescriptions": {
               "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
               "typeString": "tuple(uint256,address)"
              }
             },
             "src": "25536:171:6",
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 1944,
            "nodeType": "ExpressionStatement",
            "src": "25536:171:6"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1949,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "id": 1945,
              "name": "last_bond",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1858,
              "src": "25819:9:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1946,
               "name": "bonds",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1833,
               "src": "25831:5:6",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                "typeString": "uint256[] memory"
               }
              },
              "id": 1948,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1947,
               "name": "i",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1886,
               "src": "25837:1:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "25831:8:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "25819:20:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1950,
            "nodeType": "ExpressionStatement",
            "src": "25819:20:6"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1955,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "id": 1951,
              "name": "last_history_hash",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1872,
              "src": "25853:17:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1952,
               "name": "history_hashes",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1827,
               "src": "25873:14:6",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                "typeString": "bytes32[] memory"
               }
              },
              "id": 1954,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1953,
               "name": "i",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1886,
               "src": "25888:1:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "25873:17:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             "src": "25853:37:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "id": 1956,
            "nodeType": "ExpressionStatement",
            "src": "25853:37:6"
           }
          ]
         },
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          },
          "id": 1895,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 1892,
           "name": "i",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1886,
           "src": "25168:1:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "<",
          "rightExpression": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "id": 1893,
            "name": "history_hashes",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1827,
            "src": "25172:14:6",
            "typeDescriptions": {
             "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
             "typeString": "bytes32[] memory"
            }
           },
           "id": 1894,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "length",
           "nodeType": "MemberAccess",
           "referencedDeclaration": null,
           "src": "25172:21:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "25168:25:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "id": 1958,
         "initializationExpression": {
          "expression": {
           "argumentTypes": null,
           "id": 1890,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "leftHandSide": {
            "argumentTypes": null,
            "id": 1888,
            "name": "i",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1886,
            "src": "25161:1:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "nodeType": "Assignment",
           "operator": "=",
           "rightHandSide": {
            "argumentTypes": null,
            "hexValue": "30",
            "id": 1889,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "number",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "25165:1:6",
            "subdenomination": null,
            "typeDescriptions": {
             "typeIdentifier": "t_rational_0_by_1",
             "typeString": "int_const 0"
            },
            "value": "0"
           },
           "src": "25161:5:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 1891,
          "nodeType": "ExpressionStatement",
          "src": "25161:5:6"
         },
         "loopExpression": {
          "expression": {
           "argumentTypes": null,
           "id": 1897,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "UnaryOperation",
           "operator": "++",
           "prefix": false,
           "src": "25195:3:6",
           "subExpression": {
            "argumentTypes": null,
            "id": 1896,
            "name": "i",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1886,
            "src": "25195:1:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 1898,
          "nodeType": "ExpressionStatement",
          "src": "25195:3:6"
         },
         "nodeType": "ForStatement",
         "src": "25156:746:6"
        },
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          },
          "id": 1961,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 1959,
           "name": "last_history_hash",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1872,
           "src": "25917:17:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "!=",
          "rightExpression": {
           "argumentTypes": null,
           "id": 1960,
           "name": "NULL_HASH",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 521,
           "src": "25938:9:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "25917:30:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": {
          "id": 2013,
          "nodeType": "Block",
          "src": "26692:213:6",
          "statements": [
           {
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 2000,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1824,
               "src": "26797:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 2001,
               "name": "payee",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1851,
               "src": "26810:5:6",
               "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
               }
              },
              {
               "argumentTypes": null,
               "arguments": [
                {
                 "argumentTypes": null,
                 "id": 2004,
                 "name": "last_bond",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1858,
                 "src": "26834:9:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                }
               ],
               "expression": {
                "argumentTypes": [
                 {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                ],
                "expression": {
                 "argumentTypes": null,
                 "id": 2002,
                 "name": "queued_funds",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1865,
                 "src": "26817:12:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "id": 2003,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "memberName": "add",
                "nodeType": "MemberAccess",
                "referencedDeclaration": 2613,
                "src": "26817:16:6",
                "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": 2005,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "kind": "functionCall",
               "lValueRequested": false,
               "names": [],
               "nodeType": "FunctionCall",
               "src": "26817:27:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               },
               {
                "typeIdentifier": "t_address",
                "typeString": "address"
               },
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 1999,
              "name": "_payPayee",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2050,
              "src": "26787:9:6",
              "typeDescriptions": {
               "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
               "typeString": "function (bytes32,address,uint256)"
              }
             },
             "id": 2006,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "26787:58:6",
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 2007,
            "nodeType": "ExpressionStatement",
            "src": "26787:58:6"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 2011,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "UnaryOperation",
             "operator": "delete",
             "prefix": true,
             "src": "26859:35:6",
             "subExpression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 2008,
               "name": "question_claims",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 680,
               "src": "26866:15:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$661_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
               }
              },
              "id": 2010,
              "indexExpression": {
               "argumentTypes": null,
               "id": 2009,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1824,
               "src": "26882:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "nodeType": "IndexAccess",
              "src": "26866:28:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Claim_$661_storage",
               "typeString": "struct Realitio.Claim storage ref"
              }
             },
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 2012,
            "nodeType": "ExpressionStatement",
            "src": "26859:35:6"
           }
          ]
         },
         "id": 2014,
         "nodeType": "IfStatement",
         "src": "25913:992:6",
         "trueBody": {
          "id": 1998,
          "nodeType": "Block",
          "src": "25949:737:6",
          "statements": [
           {
            "condition": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             },
             "id": 1964,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 1962,
              "name": "payee",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1851,
              "src": "26352:5:6",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "!=",
             "rightExpression": {
              "argumentTypes": null,
              "id": 1963,
              "name": "NULL_ADDRESS",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 516,
              "src": "26361:12:6",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "src": "26352:21:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "falseBody": null,
            "id": 1976,
            "nodeType": "IfStatement",
            "src": "26348:137:6",
            "trueBody": {
             "id": 1975,
             "nodeType": "Block",
             "src": "26375:110:6",
             "statements": [
              {
               "expression": {
                "argumentTypes": null,
                "arguments": [
                 {
                  "argumentTypes": null,
                  "id": 1966,
                  "name": "question_id",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1824,
                  "src": "26403:11:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_bytes32",
                   "typeString": "bytes32"
                  }
                 },
                 {
                  "argumentTypes": null,
                  "id": 1967,
                  "name": "payee",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1851,
                  "src": "26416:5:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_address",
                   "typeString": "address"
                  }
                 },
                 {
                  "argumentTypes": null,
                  "id": 1968,
                  "name": "queued_funds",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1865,
                  "src": "26423:12:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 }
                ],
                "expression": {
                 "argumentTypes": [
                  {
                   "typeIdentifier": "t_bytes32",
                   "typeString": "bytes32"
                  },
                  {
                   "typeIdentifier": "t_address",
                   "typeString": "address"
                  },
                  {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 ],
                 "id": 1965,
                 "name": "_payPayee",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 2050,
                 "src": "26393:9:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                  "typeString": "function (bytes32,address,uint256)"
                 }
                },
                "id": 1969,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "kind": "functionCall",
                "lValueRequested": false,
                "names": [],
                "nodeType": "FunctionCall",
                "src": "26393:43:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_tuple$__$",
                 "typeString": "tuple()"
                }
               },
               "id": 1970,
               "nodeType": "ExpressionStatement",
               "src": "26393:43:6"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 1973,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "id": 1971,
                 "name": "queued_funds",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1865,
                 "src": "26454:12:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "hexValue": "30",
                 "id": 1972,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": true,
                 "kind": "number",
                 "lValueRequested": false,
                 "nodeType": "Literal",
                 "src": "26469:1:6",
                 "subdenomination": null,
                 "typeDescriptions": {
                  "typeIdentifier": "t_rational_0_by_1",
                  "typeString": "int_const 0"
                 },
                 "value": "0"
                },
                "src": "26454:16:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 1974,
               "nodeType": "ExpressionStatement",
               "src": "26454:16:6"
              }
             ]
            }
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1982,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1977,
                "name": "question_claims",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 680,
                "src": "26499:15:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$661_storage_$",
                 "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
                }
               },
               "id": 1979,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1978,
                "name": "question_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1824,
                "src": "26515:11:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "26499:28:6",
               "typeDescriptions": {
                "typeIdentifier": "t_struct$_Claim_$661_storage",
                "typeString": "struct Realitio.Claim storage ref"
               }
              },
              "id": 1980,
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "memberName": "payee",
              "nodeType": "MemberAccess",
              "referencedDeclaration": 656,
              "src": "26499:34:6",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "id": 1981,
              "name": "payee",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1851,
              "src": "26536:5:6",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "src": "26499:42:6",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "id": 1983,
            "nodeType": "ExpressionStatement",
            "src": "26499:42:6"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1989,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1984,
                "name": "question_claims",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 680,
                "src": "26555:15:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$661_storage_$",
                 "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
                }
               },
               "id": 1986,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1985,
                "name": "question_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1824,
                "src": "26571:11:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "26555:28:6",
               "typeDescriptions": {
                "typeIdentifier": "t_struct$_Claim_$661_storage",
                "typeString": "struct Realitio.Claim storage ref"
               }
              },
              "id": 1987,
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "memberName": "last_bond",
              "nodeType": "MemberAccess",
              "referencedDeclaration": 658,
              "src": "26555:38:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "id": 1988,
              "name": "last_bond",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1858,
              "src": "26596:9:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "26555:50:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1990,
            "nodeType": "ExpressionStatement",
            "src": "26555:50:6"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1996,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1991,
                "name": "question_claims",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 680,
                "src": "26619:15:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$661_storage_$",
                 "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
                }
               },
               "id": 1993,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1992,
                "name": "question_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1824,
                "src": "26635:11:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "26619:28:6",
               "typeDescriptions": {
                "typeIdentifier": "t_struct$_Claim_$661_storage",
                "typeString": "struct Realitio.Claim storage ref"
               }
              },
              "id": 1994,
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "memberName": "queued_funds",
              "nodeType": "MemberAccess",
              "referencedDeclaration": 660,
              "src": "26619:41:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "id": 1995,
              "name": "queued_funds",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1865,
              "src": "26663:12:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "26619:56:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1997,
            "nodeType": "ExpressionStatement",
            "src": "26619:56:6"
           }
          ]
         }
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 2020,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 2015,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "26915:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 2017,
            "indexExpression": {
             "argumentTypes": null,
             "id": 2016,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1824,
             "src": "26925:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "26915:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 2018,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "history_hash",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 644,
           "src": "26915:35:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 2019,
           "name": "last_history_hash",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1872,
           "src": "26953:17:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "26915:55:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "id": 2021,
         "nodeType": "ExpressionStatement",
         "src": "26915:55:6"
        }
       ]
      },
      "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": 2023,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1839,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1824,
          "src": "24369:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1840,
        "modifierName": {
         "argumentTypes": null,
         "id": 1838,
         "name": "stateFinalized",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 873,
         "src": "24354:14:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "24354:27:6"
       }
      ],
      "name": "claimWinnings",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1837,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1824,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2023,
         "src": "24231:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1823,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "24231:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1827,
         "name": "history_hashes",
         "nodeType": "VariableDeclaration",
         "scope": 2023,
         "src": "24261:24:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
          "typeString": "bytes32[]"
         },
         "typeName": {
          "baseType": {
           "id": 1825,
           "name": "bytes32",
           "nodeType": "ElementaryTypeName",
           "src": "24261:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "id": 1826,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "24261:9:6",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
           "typeString": "bytes32[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1830,
         "name": "addrs",
         "nodeType": "VariableDeclaration",
         "scope": 2023,
         "src": "24287:15:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
          "typeString": "address[]"
         },
         "typeName": {
          "baseType": {
           "id": 1828,
           "name": "address",
           "nodeType": "ElementaryTypeName",
           "src": "24287:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "id": 1829,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "24287:9:6",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
           "typeString": "address[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1833,
         "name": "bonds",
         "nodeType": "VariableDeclaration",
         "scope": 2023,
         "src": "24304:15:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
          "typeString": "uint256[]"
         },
         "typeName": {
          "baseType": {
           "id": 1831,
           "name": "uint256",
           "nodeType": "ElementaryTypeName",
           "src": "24304:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 1832,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "24304:9:6",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
           "typeString": "uint256[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1836,
         "name": "answers",
         "nodeType": "VariableDeclaration",
         "scope": 2023,
         "src": "24321:17:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
          "typeString": "bytes32[]"
         },
         "typeName": {
          "baseType": {
           "id": 1834,
           "name": "bytes32",
           "nodeType": "ElementaryTypeName",
           "src": "24321:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "id": 1835,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "24321:9:6",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
           "typeString": "bytes32[]"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "24221:123:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 1841,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "24393:0:6"
      },
      "scope": 2516,
      "src": "24199:2779:6",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2049,
       "nodeType": "Block",
       "src": "27068:113:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "id": 2041,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2032,
            "name": "balanceOf",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 317,
            "src": "27078:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
             "typeString": "mapping(address => uint256)"
            }
           },
           "id": 2034,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2033,
            "name": "payee",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2027,
            "src": "27088:5:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "nodeType": "IndexAccess",
           "src": "27078:16:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "id": 2039,
             "name": "value",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2029,
             "src": "27118:5:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            ],
            "expression": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 2035,
              "name": "balanceOf",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 317,
              "src": "27097:9:6",
              "typeDescriptions": {
               "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
               "typeString": "mapping(address => uint256)"
              }
             },
             "id": 2037,
             "indexExpression": {
              "argumentTypes": null,
              "id": 2036,
              "name": "payee",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2027,
              "src": "27107:5:6",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "27097:16:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 2038,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "add",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 2613,
            "src": "27097:20:6",
            "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": 2040,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "27097:27:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "27078:46:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 2042,
         "nodeType": "ExpressionStatement",
         "src": "27078:46:6"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 2044,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2025,
            "src": "27148:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 2045,
            "name": "payee",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2027,
            "src": "27161:5:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 2046,
            "name": "value",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2029,
            "src": "27168:5:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           ],
           "id": 2043,
           "name": "LogClaim",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 626,
           "src": "27139:8:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
            "typeString": "function (bytes32,address,uint256)"
           }
          },
          "id": 2047,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "27139:35:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 2048,
         "nodeType": "EmitStatement",
         "src": "27134:40:6"
        }
       ]
      },
      "documentation": null,
      "id": 2050,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "_payPayee",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2030,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2025,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2050,
         "src": "27003:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2024,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "27003:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2027,
         "name": "payee",
         "nodeType": "VariableDeclaration",
         "scope": 2050,
         "src": "27024:13:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 2026,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "27024:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2029,
         "name": "value",
         "nodeType": "VariableDeclaration",
         "scope": 2050,
         "src": "27039:13:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 2028,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "27039:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "27002:51:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2031,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "27068:0:6"
      },
      "scope": 2516,
      "src": "26984:197:6",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 2101,
       "nodeType": "Block",
       "src": "27372:364:6",
       "statements": [
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          },
          "id": 2076,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 2065,
           "name": "last_history_hash",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2052,
           "src": "27386:17:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "==",
          "rightExpression": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 2069,
               "name": "history_hash",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2054,
               "src": "27434:12:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 2070,
               "name": "answer",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2056,
               "src": "27448:6:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 2071,
               "name": "bond",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2058,
               "src": "27456:4:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              {
               "argumentTypes": null,
               "id": 2072,
               "name": "addr",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2060,
               "src": "27462:4:6",
               "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
               }
              },
              {
               "argumentTypes": null,
               "hexValue": "74727565",
               "id": 2073,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "kind": "bool",
               "lValueRequested": false,
               "nodeType": "Literal",
               "src": "27468:4:6",
               "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": 2067,
               "name": "abi",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2643,
               "src": "27417:3:6",
               "typeDescriptions": {
                "typeIdentifier": "t_magic_abi",
                "typeString": "abi"
               }
              },
              "id": 2068,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "memberName": "encodePacked",
              "nodeType": "MemberAccess",
              "referencedDeclaration": null,
              "src": "27417:16:6",
              "typeDescriptions": {
               "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
               "typeString": "function () pure returns (bytes memory)"
              }
             },
             "id": 2074,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "27417:56:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes_memory_ptr",
              "typeString": "bytes memory"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_bytes_memory_ptr",
              "typeString": "bytes memory"
             }
            ],
            "id": 2066,
            "name": "keccak256",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2650,
            "src": "27407:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
             "typeString": "function () pure returns (bytes32)"
            }
           },
           "id": 2075,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "27407:67:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "27386:88:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 2080,
         "nodeType": "IfStatement",
         "src": "27382:131:6",
         "trueBody": {
          "id": 2079,
          "nodeType": "Block",
          "src": "27477:36:6",
          "statements": [
           {
            "expression": {
             "argumentTypes": null,
             "hexValue": "74727565",
             "id": 2077,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "bool",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "27498:4:6",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             },
             "value": "true"
            },
            "functionReturnParameters": 2064,
            "id": 2078,
            "nodeType": "Return",
            "src": "27491:11:6"
           }
          ]
         }
        },
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          },
          "id": 2092,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 2081,
           "name": "last_history_hash",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2052,
           "src": "27526:17:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "==",
          "rightExpression": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 2085,
               "name": "history_hash",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2054,
               "src": "27574:12:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 2086,
               "name": "answer",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2056,
               "src": "27588:6:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 2087,
               "name": "bond",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2058,
               "src": "27596:4:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              {
               "argumentTypes": null,
               "id": 2088,
               "name": "addr",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2060,
               "src": "27602:4:6",
               "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
               }
              },
              {
               "argumentTypes": null,
               "hexValue": "66616c7365",
               "id": 2089,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "kind": "bool",
               "lValueRequested": false,
               "nodeType": "Literal",
               "src": "27608:5:6",
               "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": 2083,
               "name": "abi",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2643,
               "src": "27557:3:6",
               "typeDescriptions": {
                "typeIdentifier": "t_magic_abi",
                "typeString": "abi"
               }
              },
              "id": 2084,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "memberName": "encodePacked",
              "nodeType": "MemberAccess",
              "referencedDeclaration": null,
              "src": "27557:16:6",
              "typeDescriptions": {
               "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
               "typeString": "function () pure returns (bytes memory)"
              }
             },
             "id": 2090,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "27557:57:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes_memory_ptr",
              "typeString": "bytes memory"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_bytes_memory_ptr",
              "typeString": "bytes memory"
             }
            ],
            "id": 2082,
            "name": "keccak256",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2650,
            "src": "27547:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
             "typeString": "function () pure returns (bytes32)"
            }
           },
           "id": 2091,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "27547:68:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "27526:89:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 2096,
         "nodeType": "IfStatement",
         "src": "27522:133:6",
         "trueBody": {
          "id": 2095,
          "nodeType": "Block",
          "src": "27618:37:6",
          "statements": [
           {
            "expression": {
             "argumentTypes": null,
             "hexValue": "66616c7365",
             "id": 2093,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "bool",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "27639:5:6",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             },
             "value": "false"
            },
            "functionReturnParameters": 2064,
            "id": 2094,
            "nodeType": "Return",
            "src": "27632:12:6"
           }
          ]
         }
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "hexValue": "486973746f727920696e7075742070726f766964656420646964206e6f74206d61746368207468652065787065637465642068617368",
            "id": 2098,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "27672:56:6",
            "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": 2097,
           "name": "revert",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2661,
            2662
           ],
           "referencedDeclaration": 2662,
           "src": "27665:6:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (string memory) pure"
           }
          },
          "id": 2099,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "27665:64:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 2100,
         "nodeType": "ExpressionStatement",
         "src": "27665:64:6"
        }
       ]
      },
      "documentation": null,
      "id": 2102,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "_verifyHistoryInputOrRevert",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2061,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2052,
         "name": "last_history_hash",
         "nodeType": "VariableDeclaration",
         "scope": 2102,
         "src": "27233:25:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2051,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "27233:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2054,
         "name": "history_hash",
         "nodeType": "VariableDeclaration",
         "scope": 2102,
         "src": "27268:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2053,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "27268:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2056,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 2102,
         "src": "27290:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2055,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "27290:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2058,
         "name": "bond",
         "nodeType": "VariableDeclaration",
         "scope": 2102,
         "src": "27306:12:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 2057,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "27306:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2060,
         "name": "addr",
         "nodeType": "VariableDeclaration",
         "scope": 2102,
         "src": "27320:12:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 2059,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "27320:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "27223:115:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2064,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2063,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2102,
         "src": "27366:4:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         },
         "typeName": {
          "id": 2062,
          "name": "bool",
          "nodeType": "ElementaryTypeName",
          "src": "27366:4:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "27365:6:6"
      },
      "scope": 2516,
      "src": "27187:549:6",
      "stateMutability": "pure",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 2228,
       "nodeType": "Block",
       "src": "27986:2168:6",
       "statements": [
        {
         "condition": {
          "argumentTypes": null,
          "id": 2125,
          "name": "is_commitment",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 2118,
          "src": "28185:13:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 2160,
         "nodeType": "IfStatement",
         "src": "28181:482:6",
         "trueBody": {
          "id": 2159,
          "nodeType": "Block",
          "src": "28200:463:6",
          "statements": [
           {
            "assignments": [
             2127
            ],
            "declarations": [
             {
              "constant": false,
              "id": 2127,
              "name": "commitment_id",
              "nodeType": "VariableDeclaration",
              "scope": 2229,
              "src": "28214:21:6",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              },
              "typeName": {
               "id": 2126,
               "name": "bytes32",
               "nodeType": "ElementaryTypeName",
               "src": "28214:7:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2129,
            "initialValue": {
             "argumentTypes": null,
             "id": 2128,
             "name": "answer",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2116,
             "src": "28238:6:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "28214:30:6"
           },
           {
            "condition": {
             "argumentTypes": null,
             "id": 2134,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "UnaryOperation",
             "operator": "!",
             "prefix": true,
             "src": "28359:39:6",
             "subExpression": {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 2130,
                "name": "commitments",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 684,
                "src": "28360:11:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$654_storage_$",
                 "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                }
               },
               "id": 2132,
               "indexExpression": {
                "argumentTypes": null,
                "id": 2131,
                "name": "commitment_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 2127,
                "src": "28372:13:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "28360:26:6",
               "typeDescriptions": {
                "typeIdentifier": "t_struct$_Commitment_$654_storage",
                "typeString": "struct Realitio.Commitment storage ref"
               }
              },
              "id": 2133,
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "memberName": "is_revealed",
              "nodeType": "MemberAccess",
              "referencedDeclaration": 651,
              "src": "28360:38:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bool",
               "typeString": "bool"
              }
             },
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "falseBody": {
             "id": 2157,
             "nodeType": "Block",
             "src": "28518:135:6",
             "statements": [
              {
               "expression": {
                "argumentTypes": null,
                "id": 2150,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "id": 2145,
                 "name": "answer",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 2116,
                 "src": "28536:6:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "expression": {
                  "argumentTypes": null,
                  "baseExpression": {
                   "argumentTypes": null,
                   "id": 2146,
                   "name": "commitments",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 684,
                   "src": "28545:11:6",
                   "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$654_storage_$",
                    "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                   }
                  },
                  "id": 2148,
                  "indexExpression": {
                   "argumentTypes": null,
                   "id": 2147,
                   "name": "commitment_id",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 2127,
                   "src": "28557:13:6",
                   "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                   }
                  },
                  "isConstant": false,
                  "isLValue": true,
                  "isPure": false,
                  "lValueRequested": false,
                  "nodeType": "IndexAccess",
                  "src": "28545:26:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_struct$_Commitment_$654_storage",
                   "typeString": "struct Realitio.Commitment storage ref"
                  }
                 },
                 "id": 2149,
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "memberName": "revealed_answer",
                 "nodeType": "MemberAccess",
                 "referencedDeclaration": 653,
                 "src": "28545:42:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "src": "28536:51:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 2151,
               "nodeType": "ExpressionStatement",
               "src": "28536:51:6"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 2155,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "UnaryOperation",
                "operator": "delete",
                "prefix": true,
                "src": "28605:33:6",
                "subExpression": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2152,
                  "name": "commitments",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 684,
                  "src": "28612:11:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$654_storage_$",
                   "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                  }
                 },
                 "id": 2154,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2153,
                  "name": "commitment_id",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2127,
                  "src": "28624:13:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_bytes32",
                   "typeString": "bytes32"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "28612:26:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Commitment_$654_storage",
                  "typeString": "struct Realitio.Commitment storage ref"
                 }
                },
                "typeDescriptions": {
                 "typeIdentifier": "t_tuple$__$",
                 "typeString": "tuple()"
                }
               },
               "id": 2156,
               "nodeType": "ExpressionStatement",
               "src": "28605:33:6"
              }
             ]
            },
            "id": 2158,
            "nodeType": "IfStatement",
            "src": "28355:298:6",
            "trueBody": {
             "id": 2144,
             "nodeType": "Block",
             "src": "28400:112:6",
             "statements": [
              {
               "expression": {
                "argumentTypes": null,
                "id": 2138,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "UnaryOperation",
                "operator": "delete",
                "prefix": true,
                "src": "28418:33:6",
                "subExpression": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2135,
                  "name": "commitments",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 684,
                  "src": "28425:11:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$654_storage_$",
                   "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                  }
                 },
                 "id": 2137,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2136,
                  "name": "commitment_id",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2127,
                  "src": "28437:13:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_bytes32",
                   "typeString": "bytes32"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "28425:26:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Commitment_$654_storage",
                  "typeString": "struct Realitio.Commitment storage ref"
                 }
                },
                "typeDescriptions": {
                 "typeIdentifier": "t_tuple$__$",
                 "typeString": "tuple()"
                }
               },
               "id": 2139,
               "nodeType": "ExpressionStatement",
               "src": "28418:33:6"
              },
              {
               "expression": {
                "argumentTypes": null,
                "components": [
                 {
                  "argumentTypes": null,
                  "id": 2140,
                  "name": "queued_funds",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2108,
                  "src": "28477:12:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 {
                  "argumentTypes": null,
                  "id": 2141,
                  "name": "payee",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2110,
                  "src": "28491:5:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_address",
                   "typeString": "address"
                  }
                 }
                ],
                "id": 2142,
                "isConstant": false,
                "isInlineArray": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "TupleExpression",
                "src": "28476:21:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                 "typeString": "tuple(uint256,address)"
                }
               },
               "functionReturnParameters": 2124,
               "id": 2143,
               "nodeType": "Return",
               "src": "28469:28:6"
              }
             ]
            }
           }
          ]
         }
        },
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          },
          "id": 2163,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 2161,
           "name": "answer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2116,
           "src": "28677:6:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "==",
          "rightExpression": {
           "argumentTypes": null,
           "id": 2162,
           "name": "best_answer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2106,
           "src": "28687:11:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "28677:21:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 2223,
         "nodeType": "IfStatement",
         "src": "28673:1435:6",
         "trueBody": {
          "id": 2222,
          "nodeType": "Block",
          "src": "28700:1408:6",
          "statements": [
           {
            "condition": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             },
             "id": 2166,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 2164,
              "name": "payee",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2110,
              "src": "28719:5:6",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "==",
             "rightExpression": {
              "argumentTypes": null,
              "id": 2165,
              "name": "NULL_ADDRESS",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 516,
              "src": "28728:12:6",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "src": "28719:21:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "falseBody": {
             "condition": {
              "argumentTypes": null,
              "commonType": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              },
              "id": 2191,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "leftExpression": {
               "argumentTypes": null,
               "id": 2189,
               "name": "addr",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2112,
               "src": "29058:4:6",
               "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
               }
              },
              "nodeType": "BinaryOperation",
              "operator": "!=",
              "rightExpression": {
               "argumentTypes": null,
               "id": 2190,
               "name": "payee",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2110,
               "src": "29066:5:6",
               "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
               }
              },
              "src": "29058:13:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bool",
               "typeString": "bool"
              }
             },
             "falseBody": null,
             "id": 2220,
             "nodeType": "IfStatement",
             "src": "29054:1043:6",
             "trueBody": {
              "id": 2219,
              "nodeType": "Block",
              "src": "29073:1024:6",
              "statements": [
               {
                "assignments": [
                 2193
                ],
                "declarations": [
                 {
                  "constant": false,
                  "id": 2193,
                  "name": "answer_takeover_fee",
                  "nodeType": "VariableDeclaration",
                  "scope": 2229,
                  "src": "29692:27:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  },
                  "typeName": {
                   "id": 2192,
                   "name": "uint256",
                   "nodeType": "ElementaryTypeName",
                   "src": "29692:7:6",
                   "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  },
                  "value": null,
                  "visibility": "internal"
                 }
                ],
                "id": 2201,
                "initialValue": {
                 "argumentTypes": null,
                 "condition": {
                  "argumentTypes": null,
                  "components": [
                   {
                    "argumentTypes": null,
                    "commonType": {
                     "typeIdentifier": "t_uint256",
                     "typeString": "uint256"
                    },
                    "id": 2196,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                     "argumentTypes": null,
                     "id": 2194,
                     "name": "queued_funds",
                     "nodeType": "Identifier",
                     "overloadedDeclarations": [],
                     "referencedDeclaration": 2108,
                     "src": "29723:12:6",
                     "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                     }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                     "argumentTypes": null,
                     "id": 2195,
                     "name": "bond",
                     "nodeType": "Identifier",
                     "overloadedDeclarations": [],
                     "referencedDeclaration": 2114,
                     "src": "29739:4:6",
                     "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                     }
                    },
                    "src": "29723:20:6",
                    "typeDescriptions": {
                     "typeIdentifier": "t_bool",
                     "typeString": "bool"
                    }
                   }
                  ],
                  "id": 2197,
                  "isConstant": false,
                  "isInlineArray": false,
                  "isLValue": false,
                  "isPure": false,
                  "lValueRequested": false,
                  "nodeType": "TupleExpression",
                  "src": "29722:22:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_bool",
                   "typeString": "bool"
                  }
                 },
                 "falseExpression": {
                  "argumentTypes": null,
                  "id": 2199,
                  "name": "queued_funds",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2108,
                  "src": "29754:12:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "id": 2200,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": false,
                 "lValueRequested": false,
                 "nodeType": "Conditional",
                 "src": "29722:44:6",
                 "trueExpression": {
                  "argumentTypes": null,
                  "id": 2198,
                  "name": "bond",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2114,
                  "src": "29747:4:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "nodeType": "VariableDeclarationStatement",
                "src": "29692:74:6"
               },
               {
                "expression": {
                 "argumentTypes": null,
                 "arguments": [
                  {
                   "argumentTypes": null,
                   "id": 2203,
                   "name": "question_id",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 2104,
                   "src": "29859:11:6",
                   "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                   }
                  },
                  {
                   "argumentTypes": null,
                   "id": 2204,
                   "name": "payee",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 2110,
                   "src": "29872:5:6",
                   "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                   }
                  },
                  {
                   "argumentTypes": null,
                   "arguments": [
                    {
                     "argumentTypes": null,
                     "id": 2207,
                     "name": "answer_takeover_fee",
                     "nodeType": "Identifier",
                     "overloadedDeclarations": [],
                     "referencedDeclaration": 2193,
                     "src": "29896:19:6",
                     "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                     }
                    }
                   ],
                   "expression": {
                    "argumentTypes": [
                     {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                     }
                    ],
                    "expression": {
                     "argumentTypes": null,
                     "id": 2205,
                     "name": "queued_funds",
                     "nodeType": "Identifier",
                     "overloadedDeclarations": [],
                     "referencedDeclaration": 2108,
                     "src": "29879:12:6",
                     "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                     }
                    },
                    "id": 2206,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "sub",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2589,
                    "src": "29879:16:6",
                    "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": 2208,
                   "isConstant": false,
                   "isLValue": false,
                   "isPure": false,
                   "kind": "functionCall",
                   "lValueRequested": false,
                   "names": [],
                   "nodeType": "FunctionCall",
                   "src": "29879:37:6",
                   "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  }
                 ],
                 "expression": {
                  "argumentTypes": [
                   {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                   },
                   {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                   },
                   {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  ],
                  "id": 2202,
                  "name": "_payPayee",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2050,
                  "src": "29849:9:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                   "typeString": "function (bytes32,address,uint256)"
                  }
                 },
                 "id": 2209,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": false,
                 "kind": "functionCall",
                 "lValueRequested": false,
                 "names": [],
                 "nodeType": "FunctionCall",
                 "src": "29849:68:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_tuple$__$",
                  "typeString": "tuple()"
                 }
                },
                "id": 2210,
                "nodeType": "ExpressionStatement",
                "src": "29849:68:6"
               },
               {
                "expression": {
                 "argumentTypes": null,
                 "id": 2213,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": false,
                 "lValueRequested": false,
                 "leftHandSide": {
                  "argumentTypes": null,
                  "id": 2211,
                  "name": "payee",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2110,
                  "src": "30017:5:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_address",
                   "typeString": "address"
                  }
                 },
                 "nodeType": "Assignment",
                 "operator": "=",
                 "rightHandSide": {
                  "argumentTypes": null,
                  "id": 2212,
                  "name": "addr",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2112,
                  "src": "30025:4:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_address",
                   "typeString": "address"
                  }
                 },
                 "src": "30017:12:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                 }
                },
                "id": 2214,
                "nodeType": "ExpressionStatement",
                "src": "30017:12:6"
               },
               {
                "expression": {
                 "argumentTypes": null,
                 "id": 2217,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": false,
                 "lValueRequested": false,
                 "leftHandSide": {
                  "argumentTypes": null,
                  "id": 2215,
                  "name": "queued_funds",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2108,
                  "src": "30047:12:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "nodeType": "Assignment",
                 "operator": "=",
                 "rightHandSide": {
                  "argumentTypes": null,
                  "id": 2216,
                  "name": "answer_takeover_fee",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2193,
                  "src": "30062:19:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "src": "30047:34:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "id": 2218,
                "nodeType": "ExpressionStatement",
                "src": "30047:34:6"
               }
              ]
             }
            },
            "id": 2221,
            "nodeType": "IfStatement",
            "src": "28715:1382:6",
            "trueBody": {
             "id": 2188,
             "nodeType": "Block",
             "src": "28742:306:6",
             "statements": [
              {
               "expression": {
                "argumentTypes": null,
                "id": 2169,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "id": 2167,
                 "name": "payee",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 2110,
                 "src": "28889:5:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "id": 2168,
                 "name": "addr",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 2112,
                 "src": "28897:4:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                 }
                },
                "src": "28889:12:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               },
               "id": 2170,
               "nodeType": "ExpressionStatement",
               "src": "28889:12:6"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 2179,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "id": 2171,
                 "name": "queued_funds",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 2108,
                 "src": "28919:12:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "arguments": [
                  {
                   "argumentTypes": null,
                   "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                     "argumentTypes": null,
                     "id": 2174,
                     "name": "questions",
                     "nodeType": "Identifier",
                     "overloadedDeclarations": [],
                     "referencedDeclaration": 676,
                     "src": "28951:9:6",
                     "typeDescriptions": {
                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                      "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                     }
                    },
                    "id": 2176,
                    "indexExpression": {
                     "argumentTypes": null,
                     "id": 2175,
                     "name": "question_id",
                     "nodeType": "Identifier",
                     "overloadedDeclarations": [],
                     "referencedDeclaration": 2104,
                     "src": "28961:11:6",
                     "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                     }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "28951:22:6",
                    "typeDescriptions": {
                     "typeIdentifier": "t_struct$_Question_$647_storage",
                     "typeString": "struct Realitio.Question storage ref"
                    }
                   },
                   "id": 2177,
                   "isConstant": false,
                   "isLValue": true,
                   "isPure": false,
                   "lValueRequested": false,
                   "memberName": "bounty",
                   "nodeType": "MemberAccess",
                   "referencedDeclaration": 640,
                   "src": "28951:29:6",
                   "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  }
                 ],
                 "expression": {
                  "argumentTypes": [
                   {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  ],
                  "expression": {
                   "argumentTypes": null,
                   "id": 2172,
                   "name": "queued_funds",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 2108,
                   "src": "28934:12:6",
                   "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  },
                  "id": 2173,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": false,
                  "lValueRequested": false,
                  "memberName": "add",
                  "nodeType": "MemberAccess",
                  "referencedDeclaration": 2613,
                  "src": "28934:16:6",
                  "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": 2178,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": false,
                 "kind": "functionCall",
                 "lValueRequested": false,
                 "names": [],
                 "nodeType": "FunctionCall",
                 "src": "28934:47:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "src": "28919:62:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 2180,
               "nodeType": "ExpressionStatement",
               "src": "28919:62:6"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 2186,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "expression": {
                  "argumentTypes": null,
                  "baseExpression": {
                   "argumentTypes": null,
                   "id": 2181,
                   "name": "questions",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 676,
                   "src": "28999:9:6",
                   "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                    "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                   }
                  },
                  "id": 2183,
                  "indexExpression": {
                   "argumentTypes": null,
                   "id": 2182,
                   "name": "question_id",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 2104,
                   "src": "29009:11:6",
                   "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                   }
                  },
                  "isConstant": false,
                  "isLValue": true,
                  "isPure": false,
                  "lValueRequested": false,
                  "nodeType": "IndexAccess",
                  "src": "28999:22:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_struct$_Question_$647_storage",
                   "typeString": "struct Realitio.Question storage ref"
                  }
                 },
                 "id": 2184,
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "memberName": "bounty",
                 "nodeType": "MemberAccess",
                 "referencedDeclaration": 640,
                 "src": "28999:29:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "hexValue": "30",
                 "id": 2185,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": true,
                 "kind": "number",
                 "lValueRequested": false,
                 "nodeType": "Literal",
                 "src": "29031:1:6",
                 "subdenomination": null,
                 "typeDescriptions": {
                  "typeIdentifier": "t_rational_0_by_1",
                  "typeString": "int_const 0"
                 },
                 "value": "0"
                },
                "src": "28999:33:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 2187,
               "nodeType": "ExpressionStatement",
               "src": "28999:33:6"
              }
             ]
            }
           }
          ]
         }
        },
        {
         "expression": {
          "argumentTypes": null,
          "components": [
           {
            "argumentTypes": null,
            "id": 2224,
            "name": "queued_funds",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2108,
            "src": "30126:12:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 2225,
            "name": "payee",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2110,
            "src": "30140:5:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           }
          ],
          "id": 2226,
          "isConstant": false,
          "isInlineArray": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "nodeType": "TupleExpression",
          "src": "30125:21:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
           "typeString": "tuple(uint256,address)"
          }
         },
         "functionReturnParameters": 2124,
         "id": 2227,
         "nodeType": "Return",
         "src": "30118:28:6"
        }
       ]
      },
      "documentation": null,
      "id": 2229,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "_processHistoryItem",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2119,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2104,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2229,
         "src": "27780:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2103,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "27780:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2106,
         "name": "best_answer",
         "nodeType": "VariableDeclaration",
         "scope": 2229,
         "src": "27801:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2105,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "27801:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2108,
         "name": "queued_funds",
         "nodeType": "VariableDeclaration",
         "scope": 2229,
         "src": "27831:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 2107,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "27831:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2110,
         "name": "payee",
         "nodeType": "VariableDeclaration",
         "scope": 2229,
         "src": "27853:13:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 2109,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "27853:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2112,
         "name": "addr",
         "nodeType": "VariableDeclaration",
         "scope": 2229,
         "src": "27877:12:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 2111,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "27877:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2114,
         "name": "bond",
         "nodeType": "VariableDeclaration",
         "scope": 2229,
         "src": "27891:12:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 2113,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "27891:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2116,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 2229,
         "src": "27905:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2115,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "27905:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2118,
         "name": "is_commitment",
         "nodeType": "VariableDeclaration",
         "scope": 2229,
         "src": "27921:18:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         },
         "typeName": {
          "id": 2117,
          "name": "bool",
          "nodeType": "ElementaryTypeName",
          "src": "27921:4:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "27770:175:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2124,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2121,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2229,
         "src": "27968:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 2120,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "27968:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2123,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2229,
         "src": "27977:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 2122,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "27977:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "27967:18:6"
      },
      "scope": 2516,
      "src": "27742:2412:6",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 2384,
       "nodeType": "Block",
       "src": "31379:723:6",
       "statements": [
        {
         "assignments": [],
         "declarations": [
          {
           "constant": false,
           "id": 2253,
           "name": "qi",
           "nodeType": "VariableDeclaration",
           "scope": 2385,
           "src": "31398:10:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 2252,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "31398:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 2254,
         "initialValue": null,
         "nodeType": "VariableDeclarationStatement",
         "src": "31398:10:6"
        },
        {
         "assignments": [],
         "declarations": [
          {
           "constant": false,
           "id": 2256,
           "name": "i",
           "nodeType": "VariableDeclaration",
           "scope": 2385,
           "src": "31418:9:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 2255,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "31418:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 2257,
         "initialValue": null,
         "nodeType": "VariableDeclarationStatement",
         "src": "31418:9:6"
        },
        {
         "body": {
          "id": 2379,
          "nodeType": "Block",
          "src": "31482:594:6",
          "statements": [
           {
            "assignments": [
             2270
            ],
            "declarations": [
             {
              "constant": false,
              "id": 2270,
              "name": "qid",
              "nodeType": "VariableDeclaration",
              "scope": 2385,
              "src": "31496:11:6",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              },
              "typeName": {
               "id": 2269,
               "name": "bytes32",
               "nodeType": "ElementaryTypeName",
               "src": "31496:7:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2274,
            "initialValue": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 2271,
              "name": "question_ids",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2232,
              "src": "31510:12:6",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
               "typeString": "bytes32[] memory"
              }
             },
             "id": 2273,
             "indexExpression": {
              "argumentTypes": null,
              "id": 2272,
              "name": "qi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2253,
              "src": "31523:2:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "31510:16:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "31496:30:6"
           },
           {
            "assignments": [
             2276
            ],
            "declarations": [
             {
              "constant": false,
              "id": 2276,
              "name": "ln",
              "nodeType": "VariableDeclaration",
              "scope": 2385,
              "src": "31540:10:6",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              },
              "typeName": {
               "id": 2275,
               "name": "uint256",
               "nodeType": "ElementaryTypeName",
               "src": "31540:7:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2280,
            "initialValue": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 2277,
              "name": "lengths",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2235,
              "src": "31553:7:6",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
               "typeString": "uint256[] memory"
              }
             },
             "id": 2279,
             "indexExpression": {
              "argumentTypes": null,
              "id": 2278,
              "name": "qi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2253,
              "src": "31561:2:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "31553:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "31540:24:6"
           },
           {
            "assignments": [
             2284
            ],
            "declarations": [
             {
              "constant": false,
              "id": 2284,
              "name": "hh",
              "nodeType": "VariableDeclaration",
              "scope": 2385,
              "src": "31578:19:6",
              "stateVariable": false,
              "storageLocation": "memory",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
               "typeString": "bytes32[]"
              },
              "typeName": {
               "baseType": {
                "id": 2282,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "31578:7:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 2283,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "31578:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                "typeString": "bytes32[]"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2290,
            "initialValue": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 2288,
               "name": "ln",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2276,
               "src": "31614:2:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 2287,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "NewExpression",
              "src": "31600:13:6",
              "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": 2285,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "31604:7:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 2286,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "31604:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                "typeString": "bytes32[]"
               }
              }
             },
             "id": 2289,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "31600:17:6",
             "typeDescriptions": {
              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
              "typeString": "bytes32[] memory"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "31578:39:6"
           },
           {
            "assignments": [
             2294
            ],
            "declarations": [
             {
              "constant": false,
              "id": 2294,
              "name": "ad",
              "nodeType": "VariableDeclaration",
              "scope": 2385,
              "src": "31631:19:6",
              "stateVariable": false,
              "storageLocation": "memory",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
               "typeString": "address[]"
              },
              "typeName": {
               "baseType": {
                "id": 2292,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "31631:7:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               },
               "id": 2293,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "31631:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                "typeString": "address[]"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2300,
            "initialValue": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 2298,
               "name": "ln",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2276,
               "src": "31667:2:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 2297,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "NewExpression",
              "src": "31653:13:6",
              "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": 2295,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "31657:7:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               },
               "id": 2296,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "31657:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                "typeString": "address[]"
               }
              }
             },
             "id": 2299,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "31653:17:6",
             "typeDescriptions": {
              "typeIdentifier": "t_array$_t_address_$dyn_memory",
              "typeString": "address[] memory"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "31631:39:6"
           },
           {
            "assignments": [
             2304
            ],
            "declarations": [
             {
              "constant": false,
              "id": 2304,
              "name": "bo",
              "nodeType": "VariableDeclaration",
              "scope": 2385,
              "src": "31684:19:6",
              "stateVariable": false,
              "storageLocation": "memory",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
               "typeString": "uint256[]"
              },
              "typeName": {
               "baseType": {
                "id": 2302,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "31684:7:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 2303,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "31684:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                "typeString": "uint256[]"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2310,
            "initialValue": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 2308,
               "name": "ln",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2276,
               "src": "31720:2:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 2307,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "NewExpression",
              "src": "31706:13:6",
              "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": 2305,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "31710:7:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 2306,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "31710:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                "typeString": "uint256[]"
               }
              }
             },
             "id": 2309,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "31706:17:6",
             "typeDescriptions": {
              "typeIdentifier": "t_array$_t_uint256_$dyn_memory",
              "typeString": "uint256[] memory"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "31684:39:6"
           },
           {
            "assignments": [
             2314
            ],
            "declarations": [
             {
              "constant": false,
              "id": 2314,
              "name": "an",
              "nodeType": "VariableDeclaration",
              "scope": 2385,
              "src": "31737:19:6",
              "stateVariable": false,
              "storageLocation": "memory",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
               "typeString": "bytes32[]"
              },
              "typeName": {
               "baseType": {
                "id": 2312,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "31737:7:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 2313,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "31737:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                "typeString": "bytes32[]"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2320,
            "initialValue": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 2318,
               "name": "ln",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2276,
               "src": "31773:2:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 2317,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "NewExpression",
              "src": "31759:13:6",
              "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": 2315,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "31763:7:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 2316,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "31763:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                "typeString": "bytes32[]"
               }
              }
             },
             "id": 2319,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "31759:17:6",
             "typeDescriptions": {
              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
              "typeString": "bytes32[] memory"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "31737:39:6"
           },
           {
            "assignments": [],
            "declarations": [
             {
              "constant": false,
              "id": 2322,
              "name": "j",
              "nodeType": "VariableDeclaration",
              "scope": 2385,
              "src": "31790:9:6",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              },
              "typeName": {
               "id": 2321,
               "name": "uint256",
               "nodeType": "ElementaryTypeName",
               "src": "31790:7:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2323,
            "initialValue": null,
            "nodeType": "VariableDeclarationStatement",
            "src": "31790:9:6"
           },
           {
            "body": {
             "id": 2369,
             "nodeType": "Block",
             "src": "31838:180:6",
             "statements": [
              {
               "expression": {
                "argumentTypes": null,
                "id": 2340,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2334,
                  "name": "hh",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2284,
                  "src": "31856:2:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                   "typeString": "bytes32[] memory"
                  }
                 },
                 "id": 2336,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2335,
                  "name": "j",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2322,
                  "src": "31859:1:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "31856:5:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2337,
                  "name": "hist_hashes",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2238,
                  "src": "31864:11:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                   "typeString": "bytes32[] memory"
                  }
                 },
                 "id": 2339,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2338,
                  "name": "i",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2256,
                  "src": "31876:1:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "nodeType": "IndexAccess",
                 "src": "31864:14:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "src": "31856:22:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 2341,
               "nodeType": "ExpressionStatement",
               "src": "31856:22:6"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 2348,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2342,
                  "name": "ad",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2294,
                  "src": "31896:2:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                   "typeString": "address[] memory"
                  }
                 },
                 "id": 2344,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2343,
                  "name": "j",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2322,
                  "src": "31899:1:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "31896:5:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2345,
                  "name": "addrs",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2241,
                  "src": "31904:5:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                   "typeString": "address[] memory"
                  }
                 },
                 "id": 2347,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2346,
                  "name": "i",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2256,
                  "src": "31910:1:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "nodeType": "IndexAccess",
                 "src": "31904:8:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                 }
                },
                "src": "31896:16:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               },
               "id": 2349,
               "nodeType": "ExpressionStatement",
               "src": "31896:16:6"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 2356,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2350,
                  "name": "bo",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2304,
                  "src": "31930:2:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                   "typeString": "uint256[] memory"
                  }
                 },
                 "id": 2352,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2351,
                  "name": "j",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2322,
                  "src": "31933:1:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "31930:5:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2353,
                  "name": "bonds",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2244,
                  "src": "31938:5:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                   "typeString": "uint256[] memory"
                  }
                 },
                 "id": 2355,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2354,
                  "name": "i",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2256,
                  "src": "31944:1:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "nodeType": "IndexAccess",
                 "src": "31938:8:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "src": "31930:16:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 2357,
               "nodeType": "ExpressionStatement",
               "src": "31930:16:6"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 2364,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2358,
                  "name": "an",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2314,
                  "src": "31964:2:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                   "typeString": "bytes32[] memory"
                  }
                 },
                 "id": 2360,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2359,
                  "name": "j",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2322,
                  "src": "31967:1:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "31964:5:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2361,
                  "name": "answers",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2247,
                  "src": "31972:7:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                   "typeString": "bytes32[] memory"
                  }
                 },
                 "id": 2363,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2362,
                  "name": "i",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2256,
                  "src": "31980:1:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "nodeType": "IndexAccess",
                 "src": "31972:10:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "src": "31964:18:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 2365,
               "nodeType": "ExpressionStatement",
               "src": "31964:18:6"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 2367,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "UnaryOperation",
                "operator": "++",
                "prefix": false,
                "src": "32000:3:6",
                "subExpression": {
                 "argumentTypes": null,
                 "id": 2366,
                 "name": "i",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 2256,
                 "src": "32000:1:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 2368,
               "nodeType": "ExpressionStatement",
               "src": "32000:3:6"
              }
             ]
            },
            "condition": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             },
             "id": 2330,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 2328,
              "name": "j",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2322,
              "src": "31825:1:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "<",
             "rightExpression": {
              "argumentTypes": null,
              "id": 2329,
              "name": "ln",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2276,
              "src": "31829:2:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "31825:6:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "id": 2370,
            "initializationExpression": {
             "expression": {
              "argumentTypes": null,
              "id": 2326,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "leftHandSide": {
               "argumentTypes": null,
               "id": 2324,
               "name": "j",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2322,
               "src": "31818:1:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "nodeType": "Assignment",
              "operator": "=",
              "rightHandSide": {
               "argumentTypes": null,
               "hexValue": "30",
               "id": 2325,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "kind": "number",
               "lValueRequested": false,
               "nodeType": "Literal",
               "src": "31822:1:6",
               "subdenomination": null,
               "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
               },
               "value": "0"
              },
              "src": "31818:5:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "id": 2327,
             "nodeType": "ExpressionStatement",
             "src": "31818:5:6"
            },
            "loopExpression": {
             "expression": {
              "argumentTypes": null,
              "id": 2332,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "UnaryOperation",
              "operator": "++",
              "prefix": false,
              "src": "31833:3:6",
              "subExpression": {
               "argumentTypes": null,
               "id": 2331,
               "name": "j",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2322,
               "src": "31833:1:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "id": 2333,
             "nodeType": "ExpressionStatement",
             "src": "31833:3:6"
            },
            "nodeType": "ForStatement",
            "src": "31813:205:6"
           },
           {
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 2372,
               "name": "qid",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2270,
               "src": "32045:3:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 2373,
               "name": "hh",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2284,
               "src": "32050:2:6",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                "typeString": "bytes32[] memory"
               }
              },
              {
               "argumentTypes": null,
               "id": 2374,
               "name": "ad",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2294,
               "src": "32054:2:6",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                "typeString": "address[] memory"
               }
              },
              {
               "argumentTypes": null,
               "id": 2375,
               "name": "bo",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2304,
               "src": "32058:2:6",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                "typeString": "uint256[] memory"
               }
              },
              {
               "argumentTypes": null,
               "id": 2376,
               "name": "an",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2314,
               "src": "32062:2:6",
               "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": 2371,
              "name": "claimWinnings",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2023,
              "src": "32031:13:6",
              "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": 2377,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "32031:34:6",
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 2378,
            "nodeType": "ExpressionStatement",
            "src": "32031:34:6"
           }
          ]
         },
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          },
          "id": 2265,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 2262,
           "name": "qi",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2253,
           "src": "31450:2:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "<",
          "rightExpression": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "id": 2263,
            "name": "question_ids",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2232,
            "src": "31455:12:6",
            "typeDescriptions": {
             "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
             "typeString": "bytes32[] memory"
            }
           },
           "id": 2264,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "length",
           "nodeType": "MemberAccess",
           "referencedDeclaration": null,
           "src": "31455:19:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "31450:24:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "id": 2380,
         "initializationExpression": {
          "expression": {
           "argumentTypes": null,
           "id": 2260,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "leftHandSide": {
            "argumentTypes": null,
            "id": 2258,
            "name": "qi",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2253,
            "src": "31442:2:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "nodeType": "Assignment",
           "operator": "=",
           "rightHandSide": {
            "argumentTypes": null,
            "hexValue": "30",
            "id": 2259,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "number",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "31447:1:6",
            "subdenomination": null,
            "typeDescriptions": {
             "typeIdentifier": "t_rational_0_by_1",
             "typeString": "int_const 0"
            },
            "value": "0"
           },
           "src": "31442:6:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 2261,
          "nodeType": "ExpressionStatement",
          "src": "31442:6:6"
         },
         "loopExpression": {
          "expression": {
           "argumentTypes": null,
           "id": 2267,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "UnaryOperation",
           "operator": "++",
           "prefix": false,
           "src": "31476:4:6",
           "subExpression": {
            "argumentTypes": null,
            "id": 2266,
            "name": "qi",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2253,
            "src": "31476:2:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 2268,
          "nodeType": "ExpressionStatement",
          "src": "31476:4:6"
         },
         "nodeType": "ForStatement",
         "src": "31437:639:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [],
          "expression": {
           "argumentTypes": [],
           "id": 2381,
           "name": "withdraw",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 355,
           "src": "32085:8:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
            "typeString": "function ()"
           }
          },
          "id": 2382,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "32085:10:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 2383,
         "nodeType": "ExpressionStatement",
         "src": "32085:10:6"
        }
       ]
      },
      "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": 2385,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [],
        "id": 2250,
        "modifierName": {
         "argumentTypes": null,
         "id": 2249,
         "name": "stateAny",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 709,
         "src": "31291:8:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$__$",
          "typeString": "modifier ()"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "31291:10:6"
       }
      ],
      "name": "claimMultipleAndWithdrawBalance",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2248,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2232,
         "name": "question_ids",
         "nodeType": "VariableDeclaration",
         "scope": 2385,
         "src": "31149:22:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
          "typeString": "bytes32[]"
         },
         "typeName": {
          "baseType": {
           "id": 2230,
           "name": "bytes32",
           "nodeType": "ElementaryTypeName",
           "src": "31149:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "id": 2231,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "31149:9:6",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
           "typeString": "bytes32[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2235,
         "name": "lengths",
         "nodeType": "VariableDeclaration",
         "scope": 2385,
         "src": "31173:17:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
          "typeString": "uint256[]"
         },
         "typeName": {
          "baseType": {
           "id": 2233,
           "name": "uint256",
           "nodeType": "ElementaryTypeName",
           "src": "31173:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 2234,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "31173:9:6",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
           "typeString": "uint256[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2238,
         "name": "hist_hashes",
         "nodeType": "VariableDeclaration",
         "scope": 2385,
         "src": "31201:21:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
          "typeString": "bytes32[]"
         },
         "typeName": {
          "baseType": {
           "id": 2236,
           "name": "bytes32",
           "nodeType": "ElementaryTypeName",
           "src": "31201:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "id": 2237,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "31201:9:6",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
           "typeString": "bytes32[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2241,
         "name": "addrs",
         "nodeType": "VariableDeclaration",
         "scope": 2385,
         "src": "31224:15:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
          "typeString": "address[]"
         },
         "typeName": {
          "baseType": {
           "id": 2239,
           "name": "address",
           "nodeType": "ElementaryTypeName",
           "src": "31224:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "id": 2240,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "31224:9:6",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
           "typeString": "address[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2244,
         "name": "bonds",
         "nodeType": "VariableDeclaration",
         "scope": 2385,
         "src": "31241:15:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
          "typeString": "uint256[]"
         },
         "typeName": {
          "baseType": {
           "id": 2242,
           "name": "uint256",
           "nodeType": "ElementaryTypeName",
           "src": "31241:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 2243,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "31241:9:6",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
           "typeString": "uint256[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2247,
         "name": "answers",
         "nodeType": "VariableDeclaration",
         "scope": 2385,
         "src": "31258:17:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
          "typeString": "bytes32[]"
         },
         "typeName": {
          "baseType": {
           "id": 2245,
           "name": "bytes32",
           "nodeType": "ElementaryTypeName",
           "src": "31258:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "id": 2246,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "31258:9:6",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
           "typeString": "bytes32[]"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "31139:142:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2251,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "31379:0:6"
      },
      "scope": 2516,
      "src": "31099:1003:6",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2397,
       "nodeType": "Block",
       "src": "32325:59:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2392,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "32342:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 2394,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2393,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2387,
            "src": "32352:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "32342:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 2395,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "content_hash",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 628,
          "src": "32342:35:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 2391,
         "id": 2396,
         "nodeType": "Return",
         "src": "32335:42:6"
        }
       ]
      },
      "documentation": "@notice Returns the questions's content hash, identifying the question content\n @param question_id The ID of the question ",
      "id": 2398,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getContentHash",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2388,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2387,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2398,
         "src": "32270:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2386,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "32270:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "32269:21:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2391,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2390,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2398,
         "src": "32316:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2389,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "32316:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "32315:9:6"
      },
      "scope": 2516,
      "src": "32246:138:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2410,
       "nodeType": "Block",
       "src": "32583:57:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2405,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "32600:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 2407,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2406,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2400,
            "src": "32610:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "32600:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 2408,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "arbitrator",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 630,
          "src": "32600:33:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "functionReturnParameters": 2404,
         "id": 2409,
         "nodeType": "Return",
         "src": "32593:40:6"
        }
       ]
      },
      "documentation": "@notice Returns the arbitrator address for the question\n @param question_id The ID of the question ",
      "id": 2411,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getArbitrator",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2401,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2400,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2411,
         "src": "32528:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2399,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "32528:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "32527:21:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2404,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2403,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2411,
         "src": "32574:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 2402,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "32574:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "32573:9:6"
      },
      "scope": 2516,
      "src": "32505:135:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2423,
       "nodeType": "Block",
       "src": "32851:57:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2418,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "32868:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 2420,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2419,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2413,
            "src": "32878:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "32868:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 2421,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "opening_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 632,
          "src": "32868:33:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "functionReturnParameters": 2417,
         "id": 2422,
         "nodeType": "Return",
         "src": "32861:40:6"
        }
       ]
      },
      "documentation": "@notice Returns the timestamp when the question can first be answered\n @param question_id The ID of the question ",
      "id": 2424,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getOpeningTS",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2414,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2413,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2424,
         "src": "32797:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2412,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "32797:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "32796:21:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2417,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2416,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2424,
         "src": "32843:6:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 2415,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "32843:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "32842:8:6"
      },
      "scope": 2516,
      "src": "32775:133:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2436,
       "nodeType": "Block",
       "src": "33109:54:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2431,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "33126:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 2433,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2432,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2426,
            "src": "33136:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "33126:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 2434,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "timeout",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 634,
          "src": "33126:30:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "functionReturnParameters": 2430,
         "id": 2435,
         "nodeType": "Return",
         "src": "33119:37:6"
        }
       ]
      },
      "documentation": "@notice Returns the timeout in seconds used after each answer\n @param question_id The ID of the question ",
      "id": 2437,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getTimeout",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2427,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2426,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2437,
         "src": "33055:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2425,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "33055:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "33054:21:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2430,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2429,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2437,
         "src": "33101:6:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 2428,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "33101:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "33100:8:6"
      },
      "scope": 2516,
      "src": "33035:128:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2449,
       "nodeType": "Block",
       "src": "33379:58:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2444,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "33396:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 2446,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2445,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2439,
            "src": "33406:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "33396:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 2447,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "finalize_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 636,
          "src": "33396:34:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "functionReturnParameters": 2443,
         "id": 2448,
         "nodeType": "Return",
         "src": "33389:41:6"
        }
       ]
      },
      "documentation": "@notice Returns the timestamp at which the question will be/was finalized\n @param question_id The ID of the question ",
      "id": 2450,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getFinalizeTS",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2440,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2439,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2450,
         "src": "33325:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2438,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "33325:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "33324:21:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2443,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2442,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2450,
         "src": "33371:6:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 2441,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "33371:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "33370:8:6"
      },
      "scope": 2516,
      "src": "33302:135:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2462,
       "nodeType": "Block",
       "src": "33644:69:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2457,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "33661:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 2459,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2458,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2452,
            "src": "33671:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "33661:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 2460,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "is_pending_arbitration",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 638,
          "src": "33661:45:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "functionReturnParameters": 2456,
         "id": 2461,
         "nodeType": "Return",
         "src": "33654:52:6"
        }
       ]
      },
      "documentation": "@notice Returns whether the question is pending arbitration\n @param question_id The ID of the question ",
      "id": 2463,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "isPendingArbitration",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2453,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2452,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2463,
         "src": "33592:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2451,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "33592:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "33591:21:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2456,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2455,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2463,
         "src": "33638:4:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         },
         "typeName": {
          "id": 2454,
          "name": "bool",
          "nodeType": "ElementaryTypeName",
          "src": "33638:4:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "33637:6:6"
      },
      "scope": 2516,
      "src": "33562:151:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2475,
       "nodeType": "Block",
       "src": "33966:53:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2470,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "33983:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 2472,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2471,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2465,
            "src": "33993:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "33983:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 2473,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "bounty",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 640,
          "src": "33983:29:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "functionReturnParameters": 2469,
         "id": 2474,
         "nodeType": "Return",
         "src": "33976:36:6"
        }
       ]
      },
      "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": 2476,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getBounty",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2466,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2465,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2476,
         "src": "33911:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2464,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "33911:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "33910:21:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2469,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2468,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2476,
         "src": "33957:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 2467,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "33957:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "33956:9:6"
      },
      "scope": 2516,
      "src": "33892:127:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2488,
       "nodeType": "Block",
       "src": "34202:58:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2483,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "34219:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 2485,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2484,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2478,
            "src": "34229:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "34219:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 2486,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "best_answer",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 642,
          "src": "34219:34:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 2482,
         "id": 2487,
         "nodeType": "Return",
         "src": "34212:41:6"
        }
       ]
      },
      "documentation": "@notice Returns the current best answer\n @param question_id The ID of the question ",
      "id": 2489,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getBestAnswer",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2479,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2478,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2489,
         "src": "34147:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2477,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "34147:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "34146:21:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2482,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2481,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2489,
         "src": "34193:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2480,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "34193:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "34192:9:6"
      },
      "scope": 2516,
      "src": "34124:136:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2501,
       "nodeType": "Block",
       "src": "34523:59:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2496,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "34540:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 2498,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2497,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2491,
            "src": "34550:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "34540:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 2499,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "history_hash",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 644,
          "src": "34540:35:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 2495,
         "id": 2500,
         "nodeType": "Return",
         "src": "34533:42:6"
        }
       ]
      },
      "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": 2502,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getHistoryHash",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2492,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2491,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2502,
         "src": "34468:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2490,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "34468:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "34467:21:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2495,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2494,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2502,
         "src": "34514:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2493,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "34514:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "34513:9:6"
      },
      "scope": 2516,
      "src": "34444:138:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2514,
       "nodeType": "Block",
       "src": "34781:51:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2509,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "34798:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 2511,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2510,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2504,
            "src": "34808:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "34798:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 2512,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "bond",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 646,
          "src": "34798:27:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "functionReturnParameters": 2508,
         "id": 2513,
         "nodeType": "Return",
         "src": "34791:34:6"
        }
       ]
      },
      "documentation": "@notice Returns the highest bond posted so far for a question\n @param question_id The ID of the question ",
      "id": 2515,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getBond",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2505,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2504,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2515,
         "src": "34726:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2503,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "34726:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "34725:21:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2508,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2507,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2515,
         "src": "34772:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 2506,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "34772:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "34771:9:6"
      },
      "scope": 2516,
      "src": "34709:123:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     }
    ],
    "scope": 2517,
    "src": "128:34707:6"
   }
  ],
  "src": "0:34836:6"
 },
 "legacyAST": {
  "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/Realitio.sol",
  "exportedSymbols": {
   "Realitio": [
    2516
   ]
  },
  "id": 2517,
  "nodeType": "SourceUnit",
  "nodes": [
   {
    "id": 500,
    "literals": [
     "solidity",
     "0.4",
     ".25"
    ],
    "nodeType": "PragmaDirective",
    "src": "0:23:6"
   },
   {
    "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/RealitioSafeMath256.sol",
    "file": "./RealitioSafeMath256.sol",
    "id": 501,
    "nodeType": "ImportDirective",
    "scope": 2517,
    "sourceUnit": 2615,
    "src": "25:35:6",
    "symbolAliases": [],
    "unitAlias": ""
   },
   {
    "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/RealitioSafeMath32.sol",
    "file": "./RealitioSafeMath32.sol",
    "id": 502,
    "nodeType": "ImportDirective",
    "scope": 2517,
    "sourceUnit": 2642,
    "src": "61:34:6",
    "symbolAliases": [],
    "unitAlias": ""
   },
   {
    "absolutePath": "/home/ed/working/realitio-contracts/truffle/contracts/BalanceHolder.sol",
    "file": "./BalanceHolder.sol",
    "id": 503,
    "nodeType": "ImportDirective",
    "scope": 2517,
    "sourceUnit": 357,
    "src": "96:29:6",
    "symbolAliases": [],
    "unitAlias": ""
   },
   {
    "baseContracts": [
     {
      "arguments": null,
      "baseName": {
       "contractScope": null,
       "id": 504,
       "name": "BalanceHolder",
       "nodeType": "UserDefinedTypeName",
       "referencedDeclaration": 356,
       "src": "149:13:6",
       "typeDescriptions": {
        "typeIdentifier": "t_contract$_BalanceHolder_$356",
        "typeString": "contract BalanceHolder"
       }
      },
      "id": 505,
      "nodeType": "InheritanceSpecifier",
      "src": "149:13:6"
     }
    ],
    "contractDependencies": [
     356
    ],
    "contractKind": "contract",
    "documentation": null,
    "fullyImplemented": true,
    "id": 2516,
    "linearizedBaseContracts": [
     2516,
     356
    ],
    "name": "Realitio",
    "nodeType": "ContractDefinition",
    "nodes": [
     {
      "id": 508,
      "libraryName": {
       "contractScope": null,
       "id": 506,
       "name": "RealitioSafeMath256",
       "nodeType": "UserDefinedTypeName",
       "referencedDeclaration": 2614,
       "src": "176:19:6",
       "typeDescriptions": {
        "typeIdentifier": "t_contract$_RealitioSafeMath256_$2614",
        "typeString": "library RealitioSafeMath256"
       }
      },
      "nodeType": "UsingForDirective",
      "src": "170:38:6",
      "typeName": {
       "id": 507,
       "name": "uint256",
       "nodeType": "ElementaryTypeName",
       "src": "200:7:6",
       "typeDescriptions": {
        "typeIdentifier": "t_uint256",
        "typeString": "uint256"
       }
      }
     },
     {
      "id": 511,
      "libraryName": {
       "contractScope": null,
       "id": 509,
       "name": "RealitioSafeMath32",
       "nodeType": "UserDefinedTypeName",
       "referencedDeclaration": 2641,
       "src": "219:18:6",
       "typeDescriptions": {
        "typeIdentifier": "t_contract$_RealitioSafeMath32_$2641",
        "typeString": "library RealitioSafeMath32"
       }
      },
      "nodeType": "UsingForDirective",
      "src": "213:36:6",
      "typeName": {
       "id": 510,
       "name": "uint32",
       "nodeType": "ElementaryTypeName",
       "src": "242:6:6",
       "typeDescriptions": {
        "typeIdentifier": "t_uint32",
        "typeString": "uint32"
       }
      }
     },
     {
      "constant": true,
      "id": 516,
      "name": "NULL_ADDRESS",
      "nodeType": "VariableDeclaration",
      "scope": 2516,
      "src": "255:42:6",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_address",
       "typeString": "address"
      },
      "typeName": {
       "id": 512,
       "name": "address",
       "nodeType": "ElementaryTypeName",
       "src": "255:7:6",
       "typeDescriptions": {
        "typeIdentifier": "t_address",
        "typeString": "address"
       }
      },
      "value": {
       "argumentTypes": null,
       "arguments": [
        {
         "argumentTypes": null,
         "hexValue": "30",
         "id": 514,
         "isConstant": false,
         "isLValue": false,
         "isPure": true,
         "kind": "number",
         "lValueRequested": false,
         "nodeType": "Literal",
         "src": "295:1:6",
         "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": 513,
        "isConstant": false,
        "isLValue": false,
        "isPure": true,
        "lValueRequested": false,
        "nodeType": "ElementaryTypeNameExpression",
        "src": "287:7:6",
        "typeDescriptions": {
         "typeIdentifier": "t_type$_t_address_$",
         "typeString": "type(address)"
        },
        "typeName": "address"
       },
       "id": 515,
       "isConstant": false,
       "isLValue": false,
       "isPure": true,
       "kind": "typeConversion",
       "lValueRequested": false,
       "names": [],
       "nodeType": "FunctionCall",
       "src": "287:10:6",
       "typeDescriptions": {
        "typeIdentifier": "t_address",
        "typeString": "address"
       }
      },
      "visibility": "internal"
     },
     {
      "constant": true,
      "id": 521,
      "name": "NULL_HASH",
      "nodeType": "VariableDeclaration",
      "scope": 2516,
      "src": "380:39:6",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_bytes32",
       "typeString": "bytes32"
      },
      "typeName": {
       "id": 517,
       "name": "bytes32",
       "nodeType": "ElementaryTypeName",
       "src": "380:7:6",
       "typeDescriptions": {
        "typeIdentifier": "t_bytes32",
        "typeString": "bytes32"
       }
      },
      "value": {
       "argumentTypes": null,
       "arguments": [
        {
         "argumentTypes": null,
         "hexValue": "30",
         "id": 519,
         "isConstant": false,
         "isLValue": false,
         "isPure": true,
         "kind": "number",
         "lValueRequested": false,
         "nodeType": "Literal",
         "src": "417:1:6",
         "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": 518,
        "isConstant": false,
        "isLValue": false,
        "isPure": true,
        "lValueRequested": false,
        "nodeType": "ElementaryTypeNameExpression",
        "src": "409:7:6",
        "typeDescriptions": {
         "typeIdentifier": "t_type$_t_bytes32_$",
         "typeString": "type(bytes32)"
        },
        "typeName": "bytes32"
       },
       "id": 520,
       "isConstant": false,
       "isLValue": false,
       "isPure": true,
       "kind": "typeConversion",
       "lValueRequested": false,
       "names": [],
       "nodeType": "FunctionCall",
       "src": "409:10:6",
       "typeDescriptions": {
        "typeIdentifier": "t_bytes32",
        "typeString": "bytes32"
       }
      },
      "visibility": "internal"
     },
     {
      "constant": true,
      "id": 524,
      "name": "UNANSWERED",
      "nodeType": "VariableDeclaration",
      "scope": 2516,
      "src": "514:30:6",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_uint32",
       "typeString": "uint32"
      },
      "typeName": {
       "id": 522,
       "name": "uint32",
       "nodeType": "ElementaryTypeName",
       "src": "514:6:6",
       "typeDescriptions": {
        "typeIdentifier": "t_uint32",
        "typeString": "uint32"
       }
      },
      "value": {
       "argumentTypes": null,
       "hexValue": "30",
       "id": 523,
       "isConstant": false,
       "isLValue": false,
       "isPure": true,
       "kind": "number",
       "lValueRequested": false,
       "nodeType": "Literal",
       "src": "543:1:6",
       "subdenomination": null,
       "typeDescriptions": {
        "typeIdentifier": "t_rational_0_by_1",
        "typeString": "int_const 0"
       },
       "value": "0"
      },
      "visibility": "internal"
     },
     {
      "constant": true,
      "id": 527,
      "name": "COMMITMENT_NON_EXISTENT",
      "nodeType": "VariableDeclaration",
      "scope": 2516,
      "src": "637:44:6",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_uint256",
       "typeString": "uint256"
      },
      "typeName": {
       "id": 525,
       "name": "uint256",
       "nodeType": "ElementaryTypeName",
       "src": "637:7:6",
       "typeDescriptions": {
        "typeIdentifier": "t_uint256",
        "typeString": "uint256"
       }
      },
      "value": {
       "argumentTypes": null,
       "hexValue": "30",
       "id": 526,
       "isConstant": false,
       "isLValue": false,
       "isPure": true,
       "kind": "number",
       "lValueRequested": false,
       "nodeType": "Literal",
       "src": "680:1:6",
       "subdenomination": null,
       "typeDescriptions": {
        "typeIdentifier": "t_rational_0_by_1",
        "typeString": "int_const 0"
       },
       "value": "0"
      },
      "visibility": "internal"
     },
     {
      "constant": true,
      "id": 530,
      "name": "COMMITMENT_TIMEOUT_RATIO",
      "nodeType": "VariableDeclaration",
      "scope": 2516,
      "src": "765:44:6",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_uint32",
       "typeString": "uint32"
      },
      "typeName": {
       "id": 528,
       "name": "uint32",
       "nodeType": "ElementaryTypeName",
       "src": "765:6:6",
       "typeDescriptions": {
        "typeIdentifier": "t_uint32",
        "typeString": "uint32"
       }
      },
      "value": {
       "argumentTypes": null,
       "hexValue": "38",
       "id": 529,
       "isConstant": false,
       "isLValue": false,
       "isPure": true,
       "kind": "number",
       "lValueRequested": false,
       "nodeType": "Literal",
       "src": "808:1:6",
       "subdenomination": null,
       "typeDescriptions": {
        "typeIdentifier": "t_rational_8_by_1",
        "typeString": "int_const 8"
       },
       "value": "8"
      },
      "visibility": "internal"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 536,
      "name": "LogSetQuestionFee",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 535,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 532,
         "indexed": false,
         "name": "arbitrator",
         "nodeType": "VariableDeclaration",
         "scope": 536,
         "src": "849:18:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 531,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "849:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 534,
         "indexed": false,
         "name": "amount",
         "nodeType": "VariableDeclaration",
         "scope": 536,
         "src": "877:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 533,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "877:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "839:58:6"
      },
      "src": "816:82:6"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 544,
      "name": "LogNewTemplate",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 543,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 538,
         "indexed": true,
         "name": "template_id",
         "nodeType": "VariableDeclaration",
         "scope": 544,
         "src": "934:27:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 537,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "934:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 540,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 544,
         "src": "971:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 539,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "971:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 542,
         "indexed": false,
         "name": "question_text",
         "nodeType": "VariableDeclaration",
         "scope": 544,
         "src": "1002:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_string_memory_ptr",
          "typeString": "string"
         },
         "typeName": {
          "id": 541,
          "name": "string",
          "nodeType": "ElementaryTypeName",
          "src": "1002:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_string_storage_ptr",
           "typeString": "string"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "924:104:6"
      },
      "src": "904:125:6"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 566,
      "name": "LogNewQuestion",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 565,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 546,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 566,
         "src": "1065:27:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 545,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1065:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 548,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 566,
         "src": "1102:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 547,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "1102:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 550,
         "indexed": false,
         "name": "template_id",
         "nodeType": "VariableDeclaration",
         "scope": 566,
         "src": "1133:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 549,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1133:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 552,
         "indexed": false,
         "name": "question",
         "nodeType": "VariableDeclaration",
         "scope": 566,
         "src": "1162:15:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_string_memory_ptr",
          "typeString": "string"
         },
         "typeName": {
          "id": 551,
          "name": "string",
          "nodeType": "ElementaryTypeName",
          "src": "1162:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_string_storage_ptr",
           "typeString": "string"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 554,
         "indexed": true,
         "name": "content_hash",
         "nodeType": "VariableDeclaration",
         "scope": 566,
         "src": "1187:28:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 553,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1187:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 556,
         "indexed": false,
         "name": "arbitrator",
         "nodeType": "VariableDeclaration",
         "scope": 566,
         "src": "1225:18:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 555,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "1225:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 558,
         "indexed": false,
         "name": "timeout",
         "nodeType": "VariableDeclaration",
         "scope": 566,
         "src": "1254:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 557,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "1254:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 560,
         "indexed": false,
         "name": "opening_ts",
         "nodeType": "VariableDeclaration",
         "scope": 566,
         "src": "1278:17:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 559,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "1278:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 562,
         "indexed": false,
         "name": "nonce",
         "nodeType": "VariableDeclaration",
         "scope": 566,
         "src": "1305:13:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 561,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1305:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 564,
         "indexed": false,
         "name": "created",
         "nodeType": "VariableDeclaration",
         "scope": 566,
         "src": "1328:15:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 563,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1328:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "1055:294:6"
      },
      "src": "1035:315:6"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 576,
      "name": "LogFundAnswerBounty",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 575,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 568,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 576,
         "src": "1391:27:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 567,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1391:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 570,
         "indexed": false,
         "name": "bounty_added",
         "nodeType": "VariableDeclaration",
         "scope": 576,
         "src": "1428:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 569,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1428:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 572,
         "indexed": false,
         "name": "bounty",
         "nodeType": "VariableDeclaration",
         "scope": 576,
         "src": "1458:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 571,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1458:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 574,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 576,
         "src": "1482:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 573,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "1482:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "1381:128:6"
      },
      "src": "1356:154:6"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 592,
      "name": "LogNewAnswer",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 591,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 578,
         "indexed": false,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 592,
         "src": "1544:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 577,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1544:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 580,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 592,
         "src": "1568:27:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 579,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1568:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 582,
         "indexed": false,
         "name": "history_hash",
         "nodeType": "VariableDeclaration",
         "scope": 592,
         "src": "1605:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 581,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1605:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 584,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 592,
         "src": "1635:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 583,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "1635:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 586,
         "indexed": false,
         "name": "bond",
         "nodeType": "VariableDeclaration",
         "scope": 592,
         "src": "1665:12:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 585,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1665:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 588,
         "indexed": false,
         "name": "ts",
         "nodeType": "VariableDeclaration",
         "scope": 592,
         "src": "1687:10:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 587,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1687:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 590,
         "indexed": false,
         "name": "is_commitment",
         "nodeType": "VariableDeclaration",
         "scope": 592,
         "src": "1707:18:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         },
         "typeName": {
          "id": 589,
          "name": "bool",
          "nodeType": "ElementaryTypeName",
          "src": "1707:4:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "1534:197:6"
      },
      "src": "1516:216:6"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 606,
      "name": "LogAnswerReveal",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 605,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 594,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 606,
         "src": "1769:27:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 593,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1769:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 596,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 606,
         "src": "1807:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 595,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "1807:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 598,
         "indexed": true,
         "name": "answer_hash",
         "nodeType": "VariableDeclaration",
         "scope": 606,
         "src": "1838:27:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 597,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1838:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 600,
         "indexed": false,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 606,
         "src": "1876:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 599,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1876:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 602,
         "indexed": false,
         "name": "nonce",
         "nodeType": "VariableDeclaration",
         "scope": 606,
         "src": "1901:13:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 601,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1901:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 604,
         "indexed": false,
         "name": "bond",
         "nodeType": "VariableDeclaration",
         "scope": 606,
         "src": "1925:12:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 603,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1925:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "1759:184:6"
      },
      "src": "1738:206:6"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 612,
      "name": "LogNotifyOfArbitrationRequest",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 611,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 608,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 612,
         "src": "1995:27:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 607,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1995:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 610,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 612,
         "src": "2032:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 609,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "2032:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "1985:74:6"
      },
      "src": "1950:110:6"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 618,
      "name": "LogFinalize",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 617,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 614,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 618,
         "src": "2093:27:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 613,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "2093:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 616,
         "indexed": true,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 618,
         "src": "2130:22:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 615,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "2130:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "2083:75:6"
      },
      "src": "2066:93:6"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 626,
      "name": "LogClaim",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 625,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 620,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 626,
         "src": "2189:27:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 619,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "2189:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 622,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 626,
         "src": "2226:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 621,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "2226:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 624,
         "indexed": false,
         "name": "amount",
         "nodeType": "VariableDeclaration",
         "scope": 626,
         "src": "2256:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 623,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "2256:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "2179:97:6"
      },
      "src": "2165:112:6"
     },
     {
      "canonicalName": "Realitio.Question",
      "id": 647,
      "members": [
       {
        "constant": false,
        "id": 628,
        "name": "content_hash",
        "nodeType": "VariableDeclaration",
        "scope": 647,
        "src": "2309:20:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        },
        "typeName": {
         "id": 627,
         "name": "bytes32",
         "nodeType": "ElementaryTypeName",
         "src": "2309:7:6",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 630,
        "name": "arbitrator",
        "nodeType": "VariableDeclaration",
        "scope": 647,
        "src": "2339:18:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_address",
         "typeString": "address"
        },
        "typeName": {
         "id": 629,
         "name": "address",
         "nodeType": "ElementaryTypeName",
         "src": "2339:7:6",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 632,
        "name": "opening_ts",
        "nodeType": "VariableDeclaration",
        "scope": 647,
        "src": "2367:17:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint32",
         "typeString": "uint32"
        },
        "typeName": {
         "id": 631,
         "name": "uint32",
         "nodeType": "ElementaryTypeName",
         "src": "2367:6:6",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 634,
        "name": "timeout",
        "nodeType": "VariableDeclaration",
        "scope": 647,
        "src": "2394:14:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint32",
         "typeString": "uint32"
        },
        "typeName": {
         "id": 633,
         "name": "uint32",
         "nodeType": "ElementaryTypeName",
         "src": "2394:6:6",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 636,
        "name": "finalize_ts",
        "nodeType": "VariableDeclaration",
        "scope": 647,
        "src": "2418:18:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint32",
         "typeString": "uint32"
        },
        "typeName": {
         "id": 635,
         "name": "uint32",
         "nodeType": "ElementaryTypeName",
         "src": "2418:6:6",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 638,
        "name": "is_pending_arbitration",
        "nodeType": "VariableDeclaration",
        "scope": 647,
        "src": "2446:27:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_bool",
         "typeString": "bool"
        },
        "typeName": {
         "id": 637,
         "name": "bool",
         "nodeType": "ElementaryTypeName",
         "src": "2446:4:6",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 640,
        "name": "bounty",
        "nodeType": "VariableDeclaration",
        "scope": 647,
        "src": "2483:14:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        },
        "typeName": {
         "id": 639,
         "name": "uint256",
         "nodeType": "ElementaryTypeName",
         "src": "2483:7:6",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 642,
        "name": "best_answer",
        "nodeType": "VariableDeclaration",
        "scope": 647,
        "src": "2507:19:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        },
        "typeName": {
         "id": 641,
         "name": "bytes32",
         "nodeType": "ElementaryTypeName",
         "src": "2507:7:6",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 644,
        "name": "history_hash",
        "nodeType": "VariableDeclaration",
        "scope": 647,
        "src": "2536:20:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        },
        "typeName": {
         "id": 643,
         "name": "bytes32",
         "nodeType": "ElementaryTypeName",
         "src": "2536:7:6",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 646,
        "name": "bond",
        "nodeType": "VariableDeclaration",
        "scope": 647,
        "src": "2566:12:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        },
        "typeName": {
         "id": 645,
         "name": "uint256",
         "nodeType": "ElementaryTypeName",
         "src": "2566:7:6",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         }
        },
        "value": null,
        "visibility": "internal"
       }
      ],
      "name": "Question",
      "nodeType": "StructDefinition",
      "scope": 2516,
      "src": "2283:302:6",
      "visibility": "public"
     },
     {
      "canonicalName": "Realitio.Commitment",
      "id": 654,
      "members": [
       {
        "constant": false,
        "id": 649,
        "name": "reveal_ts",
        "nodeType": "VariableDeclaration",
        "scope": 654,
        "src": "2716:16:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint32",
         "typeString": "uint32"
        },
        "typeName": {
         "id": 648,
         "name": "uint32",
         "nodeType": "ElementaryTypeName",
         "src": "2716:6:6",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 651,
        "name": "is_revealed",
        "nodeType": "VariableDeclaration",
        "scope": 654,
        "src": "2742:16:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_bool",
         "typeString": "bool"
        },
        "typeName": {
         "id": 650,
         "name": "bool",
         "nodeType": "ElementaryTypeName",
         "src": "2742:4:6",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 653,
        "name": "revealed_answer",
        "nodeType": "VariableDeclaration",
        "scope": 654,
        "src": "2768:23:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        },
        "typeName": {
         "id": 652,
         "name": "bytes32",
         "nodeType": "ElementaryTypeName",
         "src": "2768:7:6",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         }
        },
        "value": null,
        "visibility": "internal"
       }
      ],
      "name": "Commitment",
      "nodeType": "StructDefinition",
      "scope": 2516,
      "src": "2688:110:6",
      "visibility": "public"
     },
     {
      "canonicalName": "Realitio.Claim",
      "id": 661,
      "members": [
       {
        "constant": false,
        "id": 656,
        "name": "payee",
        "nodeType": "VariableDeclaration",
        "scope": 661,
        "src": "2949:13:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_address",
         "typeString": "address"
        },
        "typeName": {
         "id": 655,
         "name": "address",
         "nodeType": "ElementaryTypeName",
         "src": "2949:7:6",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 658,
        "name": "last_bond",
        "nodeType": "VariableDeclaration",
        "scope": 661,
        "src": "2972:17:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        },
        "typeName": {
         "id": 657,
         "name": "uint256",
         "nodeType": "ElementaryTypeName",
         "src": "2972:7:6",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 660,
        "name": "queued_funds",
        "nodeType": "VariableDeclaration",
        "scope": 661,
        "src": "2999:20:6",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        },
        "typeName": {
         "id": 659,
         "name": "uint256",
         "nodeType": "ElementaryTypeName",
         "src": "2999:7:6",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         }
        },
        "value": null,
        "visibility": "internal"
       }
      ],
      "name": "Claim",
      "nodeType": "StructDefinition",
      "scope": 2516,
      "src": "2926:100:6",
      "visibility": "public"
     },
     {
      "constant": false,
      "id": 664,
      "name": "nextTemplateID",
      "nodeType": "VariableDeclaration",
      "scope": 2516,
      "src": "3032:26:6",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_uint256",
       "typeString": "uint256"
      },
      "typeName": {
       "id": 662,
       "name": "uint256",
       "nodeType": "ElementaryTypeName",
       "src": "3032:7:6",
       "typeDescriptions": {
        "typeIdentifier": "t_uint256",
        "typeString": "uint256"
       }
      },
      "value": {
       "argumentTypes": null,
       "hexValue": "30",
       "id": 663,
       "isConstant": false,
       "isLValue": false,
       "isPure": true,
       "kind": "number",
       "lValueRequested": false,
       "nodeType": "Literal",
       "src": "3057:1:6",
       "subdenomination": null,
       "typeDescriptions": {
        "typeIdentifier": "t_rational_0_by_1",
        "typeString": "int_const 0"
       },
       "value": "0"
      },
      "visibility": "internal"
     },
     {
      "constant": false,
      "id": 668,
      "name": "templates",
      "nodeType": "VariableDeclaration",
      "scope": 2516,
      "src": "3064:44:6",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
       "typeString": "mapping(uint256 => uint256)"
      },
      "typeName": {
       "id": 667,
       "keyType": {
        "id": 665,
        "name": "uint256",
        "nodeType": "ElementaryTypeName",
        "src": "3072:7:6",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        }
       },
       "nodeType": "Mapping",
       "src": "3064:27:6",
       "typeDescriptions": {
        "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
        "typeString": "mapping(uint256 => uint256)"
       },
       "valueType": {
        "id": 666,
        "name": "uint256",
        "nodeType": "ElementaryTypeName",
        "src": "3083:7:6",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        }
       }
      },
      "value": null,
      "visibility": "public"
     },
     {
      "constant": false,
      "id": 672,
      "name": "template_hashes",
      "nodeType": "VariableDeclaration",
      "scope": 2516,
      "src": "3114:50:6",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
       "typeString": "mapping(uint256 => bytes32)"
      },
      "typeName": {
       "id": 671,
       "keyType": {
        "id": 669,
        "name": "uint256",
        "nodeType": "ElementaryTypeName",
        "src": "3122:7:6",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        }
       },
       "nodeType": "Mapping",
       "src": "3114:27:6",
       "typeDescriptions": {
        "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
        "typeString": "mapping(uint256 => bytes32)"
       },
       "valueType": {
        "id": 670,
        "name": "bytes32",
        "nodeType": "ElementaryTypeName",
        "src": "3133:7:6",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        }
       }
      },
      "value": null,
      "visibility": "public"
     },
     {
      "constant": false,
      "id": 676,
      "name": "questions",
      "nodeType": "VariableDeclaration",
      "scope": 2516,
      "src": "3170:45:6",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
       "typeString": "mapping(bytes32 => struct Realitio.Question)"
      },
      "typeName": {
       "id": 675,
       "keyType": {
        "id": 673,
        "name": "bytes32",
        "nodeType": "ElementaryTypeName",
        "src": "3178:7:6",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        }
       },
       "nodeType": "Mapping",
       "src": "3170:28:6",
       "typeDescriptions": {
        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
        "typeString": "mapping(bytes32 => struct Realitio.Question)"
       },
       "valueType": {
        "contractScope": null,
        "id": 674,
        "name": "Question",
        "nodeType": "UserDefinedTypeName",
        "referencedDeclaration": 647,
        "src": "3189:8:6",
        "typeDescriptions": {
         "typeIdentifier": "t_struct$_Question_$647_storage_ptr",
         "typeString": "struct Realitio.Question"
        }
       }
      },
      "value": null,
      "visibility": "public"
     },
     {
      "constant": false,
      "id": 680,
      "name": "question_claims",
      "nodeType": "VariableDeclaration",
      "scope": 2516,
      "src": "3221:48:6",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$661_storage_$",
       "typeString": "mapping(bytes32 => struct Realitio.Claim)"
      },
      "typeName": {
       "id": 679,
       "keyType": {
        "id": 677,
        "name": "bytes32",
        "nodeType": "ElementaryTypeName",
        "src": "3229:7:6",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        }
       },
       "nodeType": "Mapping",
       "src": "3221:25:6",
       "typeDescriptions": {
        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$661_storage_$",
        "typeString": "mapping(bytes32 => struct Realitio.Claim)"
       },
       "valueType": {
        "contractScope": null,
        "id": 678,
        "name": "Claim",
        "nodeType": "UserDefinedTypeName",
        "referencedDeclaration": 661,
        "src": "3240:5:6",
        "typeDescriptions": {
         "typeIdentifier": "t_struct$_Claim_$661_storage_ptr",
         "typeString": "struct Realitio.Claim"
        }
       }
      },
      "value": null,
      "visibility": "public"
     },
     {
      "constant": false,
      "id": 684,
      "name": "commitments",
      "nodeType": "VariableDeclaration",
      "scope": 2516,
      "src": "3275:49:6",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$654_storage_$",
       "typeString": "mapping(bytes32 => struct Realitio.Commitment)"
      },
      "typeName": {
       "id": 683,
       "keyType": {
        "id": 681,
        "name": "bytes32",
        "nodeType": "ElementaryTypeName",
        "src": "3283:7:6",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        }
       },
       "nodeType": "Mapping",
       "src": "3275:30:6",
       "typeDescriptions": {
        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$654_storage_$",
        "typeString": "mapping(bytes32 => struct Realitio.Commitment)"
       },
       "valueType": {
        "contractScope": null,
        "id": 682,
        "name": "Commitment",
        "nodeType": "UserDefinedTypeName",
        "referencedDeclaration": 654,
        "src": "3294:10:6",
        "typeDescriptions": {
         "typeIdentifier": "t_struct$_Commitment_$654_storage_ptr",
         "typeString": "struct Realitio.Commitment"
        }
       }
      },
      "value": null,
      "visibility": "public"
     },
     {
      "constant": false,
      "id": 688,
      "name": "arbitrator_question_fees",
      "nodeType": "VariableDeclaration",
      "scope": 2516,
      "src": "3330:59:6",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
       "typeString": "mapping(address => uint256)"
      },
      "typeName": {
       "id": 687,
       "keyType": {
        "id": 685,
        "name": "address",
        "nodeType": "ElementaryTypeName",
        "src": "3338:7:6",
        "typeDescriptions": {
         "typeIdentifier": "t_address",
         "typeString": "address"
        }
       },
       "nodeType": "Mapping",
       "src": "3330:27:6",
       "typeDescriptions": {
        "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
        "typeString": "mapping(address => uint256)"
       },
       "valueType": {
        "id": 686,
        "name": "uint256",
        "nodeType": "ElementaryTypeName",
        "src": "3349:7:6",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        }
       }
      },
      "value": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 704,
       "nodeType": "Block",
       "src": "3442:117:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            "id": 699,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "id": 693,
              "name": "msg",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2656,
              "src": "3460:3:6",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_message",
               "typeString": "msg"
              }
             },
             "id": 694,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "sender",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "3460:10:6",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "==",
            "rightExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 695,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 676,
               "src": "3474:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
               }
              },
              "id": 697,
              "indexExpression": {
               "argumentTypes": null,
               "id": 696,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 690,
               "src": "3484:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "3474:22:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$647_storage",
               "typeString": "struct Realitio.Question storage ref"
              }
             },
             "id": 698,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "arbitrator",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 630,
             "src": "3474:33:6",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "src": "3460:47:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "6d73672e73656e646572206d7573742062652061726269747261746f72",
            "id": 700,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "3509:31:6",
            "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": 692,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "3452:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 701,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "3452:89:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 702,
         "nodeType": "ExpressionStatement",
         "src": "3452:89:6"
        },
        {
         "id": 703,
         "nodeType": "PlaceholderStatement",
         "src": "3551:1:6"
        }
       ]
      },
      "documentation": null,
      "id": 705,
      "name": "onlyArbitrator",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 691,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 690,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 705,
         "src": "3421:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 689,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "3421:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "3420:21:6"
      },
      "src": "3397:162:6",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 708,
       "nodeType": "Block",
       "src": "3585:18:6",
       "statements": [
        {
         "id": 707,
         "nodeType": "PlaceholderStatement",
         "src": "3595:1:6"
        }
       ]
      },
      "documentation": null,
      "id": 709,
      "name": "stateAny",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 706,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "3582:2:6"
      },
      "src": "3565:38:6",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 724,
       "nodeType": "Block",
       "src": "3655:99:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 719,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 714,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 676,
               "src": "3673:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
               }
              },
              "id": 716,
              "indexExpression": {
               "argumentTypes": null,
               "id": 715,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 711,
               "src": "3683:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "3673:22:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$647_storage",
               "typeString": "struct Realitio.Question storage ref"
              }
             },
             "id": 717,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "timeout",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 634,
             "src": "3673:30:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "==",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 718,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "3707:1:6",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "3673:35:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "7175657374696f6e206d757374206e6f74206578697374",
            "id": 720,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "3710:25:6",
            "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": 713,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "3665:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 721,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "3665:71:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 722,
         "nodeType": "ExpressionStatement",
         "src": "3665:71:6"
        },
        {
         "id": 723,
         "nodeType": "PlaceholderStatement",
         "src": "3746:1:6"
        }
       ]
      },
      "documentation": null,
      "id": 725,
      "name": "stateNotCreated",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 712,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 711,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 725,
         "src": "3634:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 710,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "3634:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "3633:21:6"
      },
      "src": "3609:145:6",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 789,
       "nodeType": "Block",
       "src": "3800:547:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 735,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 730,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 676,
               "src": "3818:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
               }
              },
              "id": 732,
              "indexExpression": {
               "argumentTypes": null,
               "id": 731,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 727,
               "src": "3828:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "3818:22:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$647_storage",
               "typeString": "struct Realitio.Question storage ref"
              }
             },
             "id": 733,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "timeout",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 634,
             "src": "3818:30:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 734,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "3851:1:6",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "3818:34:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "7175657374696f6e206d757374206578697374",
            "id": 736,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "3854:21:6",
            "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": 729,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "3810:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 737,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "3810:66:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 738,
         "nodeType": "ExpressionStatement",
         "src": "3810:66:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 744,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "UnaryOperation",
            "operator": "!",
            "prefix": true,
            "src": "3894:46:6",
            "subExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 740,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 676,
               "src": "3895:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
               }
              },
              "id": 742,
              "indexExpression": {
               "argumentTypes": null,
               "id": 741,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 727,
               "src": "3905:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "3895:22:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$647_storage",
               "typeString": "struct Realitio.Question storage ref"
              }
             },
             "id": 743,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "is_pending_arbitration",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 638,
             "src": "3895:45:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "7175657374696f6e206d757374206e6f742062652070656e64696e67206172626974726174696f6e",
            "id": 745,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "3942:42:6",
            "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": 739,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "3886:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 746,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "3886:99:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 747,
         "nodeType": "ExpressionStatement",
         "src": "3886:99:6"
        },
        {
         "assignments": [
          749
         ],
         "declarations": [
          {
           "constant": false,
           "id": 749,
           "name": "finalize_ts",
           "nodeType": "VariableDeclaration",
           "scope": 790,
           "src": "3995:18:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           },
           "typeName": {
            "id": 748,
            "name": "uint32",
            "nodeType": "ElementaryTypeName",
            "src": "3995:6:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 754,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 750,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "4016:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 752,
           "indexExpression": {
            "argumentTypes": null,
            "id": 751,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 727,
            "src": "4026:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "4016:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 753,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "finalize_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 636,
          "src": "4016:34:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "3995:55:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            },
            "id": 764,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 758,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 756,
              "name": "finalize_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 749,
              "src": "4068:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "==",
             "rightExpression": {
              "argumentTypes": null,
              "id": 757,
              "name": "UNANSWERED",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 524,
              "src": "4083:10:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "src": "4068:25:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "||",
            "rightExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 763,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 759,
              "name": "finalize_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 749,
              "src": "4097:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": ">",
             "rightExpression": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 761,
                "name": "now",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 2658,
                "src": "4118:3:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "id": 760,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "lValueRequested": false,
               "nodeType": "ElementaryTypeNameExpression",
               "src": "4111:6:6",
               "typeDescriptions": {
                "typeIdentifier": "t_type$_t_uint32_$",
                "typeString": "type(uint32)"
               },
               "typeName": "uint32"
              },
              "id": 762,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "4111:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "src": "4097:25:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "src": "4068:54:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "66696e616c697a6174696f6e20646561646c696e65206d757374206e6f74206861766520706173736564",
            "id": 765,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "4124:44:6",
            "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": 755,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "4060:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 766,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "4060:109:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 767,
         "nodeType": "ExpressionStatement",
         "src": "4060:109:6"
        },
        {
         "assignments": [
          769
         ],
         "declarations": [
          {
           "constant": false,
           "id": 769,
           "name": "opening_ts",
           "nodeType": "VariableDeclaration",
           "scope": 790,
           "src": "4179:17:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           },
           "typeName": {
            "id": 768,
            "name": "uint32",
            "nodeType": "ElementaryTypeName",
            "src": "4179:6:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 774,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 770,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "4199:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 772,
           "indexExpression": {
            "argumentTypes": null,
            "id": 771,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 727,
            "src": "4209:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "4199:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 773,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "opening_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 632,
          "src": "4199:33:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "4179:53:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            },
            "id": 784,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 778,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 776,
              "name": "opening_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 769,
              "src": "4250:10:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "==",
             "rightExpression": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 777,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "4264:1:6",
              "subdenomination": null,
              "typeDescriptions": {
               "typeIdentifier": "t_rational_0_by_1",
               "typeString": "int_const 0"
              },
              "value": "0"
             },
             "src": "4250:15:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "||",
            "rightExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 783,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 779,
              "name": "opening_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 769,
              "src": "4269:10:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "<=",
             "rightExpression": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 781,
                "name": "now",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 2658,
                "src": "4290:3:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "id": 780,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "lValueRequested": false,
               "nodeType": "ElementaryTypeNameExpression",
               "src": "4283:6:6",
               "typeDescriptions": {
                "typeIdentifier": "t_type$_t_uint32_$",
                "typeString": "type(uint32)"
               },
               "typeName": "uint32"
              },
              "id": 782,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "4283:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "src": "4269:25:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "src": "4250:44:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "6f70656e696e672064617465206d757374206861766520706173736564",
            "id": 785,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "4296:31:6",
            "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": 775,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "4242:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 786,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "4242:86:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 787,
         "nodeType": "ExpressionStatement",
         "src": "4242:86:6"
        },
        {
         "id": 788,
         "nodeType": "PlaceholderStatement",
         "src": "4339:1:6"
        }
       ]
      },
      "documentation": null,
      "id": 790,
      "name": "stateOpen",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 728,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 727,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 790,
         "src": "3779:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 726,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "3779:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "3778:21:6"
      },
      "src": "3760:587:6",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 803,
       "nodeType": "Block",
       "src": "4407:122:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 795,
              "name": "questions",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 676,
              "src": "4425:9:6",
              "typeDescriptions": {
               "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
               "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
              }
             },
             "id": 797,
             "indexExpression": {
              "argumentTypes": null,
              "id": 796,
              "name": "question_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 792,
              "src": "4435:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "4425:22:6",
             "typeDescriptions": {
              "typeIdentifier": "t_struct$_Question_$647_storage",
              "typeString": "struct Realitio.Question storage ref"
             }
            },
            "id": 798,
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "is_pending_arbitration",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 638,
            "src": "4425:45:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "7175657374696f6e206d7573742062652070656e64696e67206172626974726174696f6e",
            "id": 799,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "4472:38:6",
            "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": 794,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "4417:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 800,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "4417:94:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 801,
         "nodeType": "ExpressionStatement",
         "src": "4417:94:6"
        },
        {
         "id": 802,
         "nodeType": "PlaceholderStatement",
         "src": "4521:1:6"
        }
       ]
      },
      "documentation": null,
      "id": 804,
      "name": "statePendingArbitration",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 793,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 792,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 804,
         "src": "4386:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 791,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "4386:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "4385:21:6"
      },
      "src": "4353:176:6",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 859,
       "nodeType": "Block",
       "src": "4595:437:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 814,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 809,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 676,
               "src": "4613:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
               }
              },
              "id": 811,
              "indexExpression": {
               "argumentTypes": null,
               "id": 810,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 806,
               "src": "4623:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "4613:22:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$647_storage",
               "typeString": "struct Realitio.Question storage ref"
              }
             },
             "id": 812,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "timeout",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 634,
             "src": "4613:30:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 813,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "4646:1:6",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "4613:34:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "7175657374696f6e206d757374206578697374",
            "id": 815,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "4649:21:6",
            "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": 808,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "4605:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 816,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "4605:66:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 817,
         "nodeType": "ExpressionStatement",
         "src": "4605:66:6"
        },
        {
         "assignments": [
          819
         ],
         "declarations": [
          {
           "constant": false,
           "id": 819,
           "name": "finalize_ts",
           "nodeType": "VariableDeclaration",
           "scope": 860,
           "src": "4681:18:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           },
           "typeName": {
            "id": 818,
            "name": "uint32",
            "nodeType": "ElementaryTypeName",
            "src": "4681:6:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 824,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 820,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "4702:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 822,
           "indexExpression": {
            "argumentTypes": null,
            "id": 821,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 806,
            "src": "4712:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "4702:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 823,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "finalize_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 636,
          "src": "4702:34:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "4681:55:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            },
            "id": 834,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 828,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 826,
              "name": "finalize_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 819,
              "src": "4754:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "==",
             "rightExpression": {
              "argumentTypes": null,
              "id": 827,
              "name": "UNANSWERED",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 524,
              "src": "4769:10:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "src": "4754:25:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "||",
            "rightExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 833,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 829,
              "name": "finalize_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 819,
              "src": "4783:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": ">",
             "rightExpression": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 831,
                "name": "now",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 2658,
                "src": "4804:3:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "id": 830,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "lValueRequested": false,
               "nodeType": "ElementaryTypeNameExpression",
               "src": "4797:6:6",
               "typeDescriptions": {
                "typeIdentifier": "t_type$_t_uint32_$",
                "typeString": "type(uint32)"
               },
               "typeName": "uint32"
              },
              "id": 832,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "4797:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "src": "4783:25:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "src": "4754:54:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "66696e616c697a6174696f6e206465616c696e65206d757374206e6f74206861766520706173736564",
            "id": 835,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "4810:43:6",
            "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": 825,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "4746:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 836,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "4746:108:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 837,
         "nodeType": "ExpressionStatement",
         "src": "4746:108:6"
        },
        {
         "assignments": [
          839
         ],
         "declarations": [
          {
           "constant": false,
           "id": 839,
           "name": "opening_ts",
           "nodeType": "VariableDeclaration",
           "scope": 860,
           "src": "4864:17:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           },
           "typeName": {
            "id": 838,
            "name": "uint32",
            "nodeType": "ElementaryTypeName",
            "src": "4864:6:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 844,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 840,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "4884:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 842,
           "indexExpression": {
            "argumentTypes": null,
            "id": 841,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 806,
            "src": "4894:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "4884:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 843,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "opening_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 632,
          "src": "4884:33:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "4864:53:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            },
            "id": 854,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 848,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 846,
              "name": "opening_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 839,
              "src": "4935:10:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "==",
             "rightExpression": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 847,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "4949:1:6",
              "subdenomination": null,
              "typeDescriptions": {
               "typeIdentifier": "t_rational_0_by_1",
               "typeString": "int_const 0"
              },
              "value": "0"
             },
             "src": "4935:15:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "||",
            "rightExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 853,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 849,
              "name": "opening_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 839,
              "src": "4954:10:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "<=",
             "rightExpression": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 851,
                "name": "now",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 2658,
                "src": "4975:3:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "id": 850,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "lValueRequested": false,
               "nodeType": "ElementaryTypeNameExpression",
               "src": "4968:6:6",
               "typeDescriptions": {
                "typeIdentifier": "t_type$_t_uint32_$",
                "typeString": "type(uint32)"
               },
               "typeName": "uint32"
              },
              "id": 852,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "4968:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "src": "4954:25:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "src": "4935:44:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "6f70656e696e672064617465206d757374206861766520706173736564",
            "id": 855,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "4981:31:6",
            "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": 845,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "4927:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 856,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "4927:86:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 857,
         "nodeType": "ExpressionStatement",
         "src": "4927:86:6"
        },
        {
         "id": 858,
         "nodeType": "PlaceholderStatement",
         "src": "5024:1:6"
        }
       ]
      },
      "documentation": null,
      "id": 860,
      "name": "stateOpenOrPendingArbitration",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 807,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 806,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 860,
         "src": "4574:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 805,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "4574:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "4573:21:6"
      },
      "src": "4535:497:6",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 872,
       "nodeType": "Block",
       "src": "5083:91:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 866,
              "name": "question_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 862,
              "src": "5113:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             }
            ],
            "expression": {
             "argumentTypes": [
              {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             ],
             "id": 865,
             "name": "isFinalized",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1726,
             "src": "5101:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
              "typeString": "function (bytes32) view returns (bool)"
             }
            },
            "id": 867,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "5101:24:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "7175657374696f6e206d7573742062652066696e616c697a6564",
            "id": 868,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "5127:28:6",
            "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": 864,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "5093:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 869,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "5093:63:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 870,
         "nodeType": "ExpressionStatement",
         "src": "5093:63:6"
        },
        {
         "id": 871,
         "nodeType": "PlaceholderStatement",
         "src": "5166:1:6"
        }
       ]
      },
      "documentation": null,
      "id": 873,
      "name": "stateFinalized",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 863,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 862,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 873,
         "src": "5062:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 861,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "5062:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "5061:21:6"
      },
      "src": "5038:136:6",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 884,
       "nodeType": "Block",
       "src": "5206:72:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 879,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "id": 876,
              "name": "msg",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2656,
              "src": "5224:3:6",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_message",
               "typeString": "msg"
              }
             },
             "id": 877,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "value",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "5224:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "==",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 878,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "5237:1:6",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "5224:14:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "626f6e64206d757374206265207a65726f",
            "id": 880,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "5240:19:6",
            "subdenomination": null,
            "typeDescriptions": {
             "typeIdentifier": "t_stringliteral_ba71c4def3afbcd4b8b41ca53b4c3c9e8fd523fdd607980c9dbdbd095d236d63",
             "typeString": "literal_string \"bond must be zero\""
            },
            "value": "bond must be zero"
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            },
            {
             "typeIdentifier": "t_stringliteral_ba71c4def3afbcd4b8b41ca53b4c3c9e8fd523fdd607980c9dbdbd095d236d63",
             "typeString": "literal_string \"bond must be zero\""
            }
           ],
           "id": 875,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "5216:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 881,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "5216:44:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 882,
         "nodeType": "ExpressionStatement",
         "src": "5216:44:6"
        },
        {
         "id": 883,
         "nodeType": "PlaceholderStatement",
         "src": "5270:1:6"
        }
       ]
      },
      "documentation": null,
      "id": 885,
      "name": "bondMustBeZero",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 874,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "5203:2:6"
      },
      "src": "5180:98:6",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 913,
       "nodeType": "Block",
       "src": "5329:190:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 893,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "id": 890,
              "name": "msg",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2656,
              "src": "5347:3:6",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_message",
               "typeString": "msg"
              }
             },
             "id": 891,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "value",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "5347:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 892,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "5359:1:6",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "5347:13:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "626f6e64206d75737420626520706f736974697665",
            "id": 894,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "5362:23:6",
            "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": 889,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "5339:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 895,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "5339:47:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 896,
         "nodeType": "ExpressionStatement",
         "src": "5339:47:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 908,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "id": 898,
              "name": "msg",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2656,
              "src": "5405:3:6",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_message",
               "typeString": "msg"
              }
             },
             "id": 899,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "value",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "5405:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">=",
            "rightExpression": {
             "argumentTypes": null,
             "components": [
              {
               "argumentTypes": null,
               "arguments": [
                {
                 "argumentTypes": null,
                 "hexValue": "32",
                 "id": 905,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": true,
                 "kind": "number",
                 "lValueRequested": false,
                 "nodeType": "Literal",
                 "src": "5451:1:6",
                 "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": 900,
                   "name": "questions",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 676,
                   "src": "5419:9:6",
                   "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                    "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                   }
                  },
                  "id": 902,
                  "indexExpression": {
                   "argumentTypes": null,
                   "id": 901,
                   "name": "question_id",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 887,
                   "src": "5429:11:6",
                   "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                   }
                  },
                  "isConstant": false,
                  "isLValue": true,
                  "isPure": false,
                  "lValueRequested": false,
                  "nodeType": "IndexAccess",
                  "src": "5419:22:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_struct$_Question_$647_storage",
                   "typeString": "struct Realitio.Question storage ref"
                  }
                 },
                 "id": 903,
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "memberName": "bond",
                 "nodeType": "MemberAccess",
                 "referencedDeclaration": 646,
                 "src": "5419:27:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "id": 904,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "memberName": "mul",
                "nodeType": "MemberAccess",
                "referencedDeclaration": 2551,
                "src": "5419:31:6",
                "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": 906,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "kind": "functionCall",
               "lValueRequested": false,
               "names": [],
               "nodeType": "FunctionCall",
               "src": "5419:34:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "id": 907,
             "isConstant": false,
             "isInlineArray": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "TupleExpression",
             "src": "5418:36:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "src": "5405:49:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "626f6e64206d75737420626520646f75626c65206174206c656173742070726576696f757320626f6e64",
            "id": 909,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "5456:44:6",
            "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": 897,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "5397:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 910,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "5397:104:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 911,
         "nodeType": "ExpressionStatement",
         "src": "5397:104:6"
        },
        {
         "id": 912,
         "nodeType": "PlaceholderStatement",
         "src": "5511:1:6"
        }
       ]
      },
      "documentation": null,
      "id": 914,
      "name": "bondMustDouble",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 888,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 887,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 914,
         "src": "5308:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 886,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "5308:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "5307:21:6"
      },
      "src": "5284:235:6",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 936,
       "nodeType": "Block",
       "src": "5612:159:6",
       "statements": [
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          },
          "id": 922,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 920,
           "name": "max_previous",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 918,
           "src": "5626:12:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": ">",
          "rightExpression": {
           "argumentTypes": null,
           "hexValue": "30",
           "id": 921,
           "isConstant": false,
           "isLValue": false,
           "isPure": true,
           "kind": "number",
           "lValueRequested": false,
           "nodeType": "Literal",
           "src": "5641:1:6",
           "subdenomination": null,
           "typeDescriptions": {
            "typeIdentifier": "t_rational_0_by_1",
            "typeString": "int_const 0"
           },
           "value": "0"
          },
          "src": "5626:16:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 934,
         "nodeType": "IfStatement",
         "src": "5622:132:6",
         "trueBody": {
          "id": 933,
          "nodeType": "Block",
          "src": "5644:110:6",
          "statements": [
           {
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "commonType": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               },
               "id": 929,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "lValueRequested": false,
               "leftExpression": {
                "argumentTypes": null,
                "expression": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 924,
                  "name": "questions",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 676,
                  "src": "5666:9:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                   "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                  }
                 },
                 "id": 926,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 925,
                  "name": "question_id",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 916,
                  "src": "5676:11:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_bytes32",
                   "typeString": "bytes32"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "nodeType": "IndexAccess",
                 "src": "5666:22:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Question_$647_storage",
                  "typeString": "struct Realitio.Question storage ref"
                 }
                },
                "id": 927,
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "memberName": "bond",
                "nodeType": "MemberAccess",
                "referencedDeclaration": 646,
                "src": "5666:27:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "nodeType": "BinaryOperation",
               "operator": "<=",
               "rightExpression": {
                "argumentTypes": null,
                "id": 928,
                "name": "max_previous",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 918,
                "src": "5697:12:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "src": "5666:43:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
               }
              },
              {
               "argumentTypes": null,
               "hexValue": "626f6e64206d75737420657863656564206d61785f70726576696f7573",
               "id": 930,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "kind": "string",
               "lValueRequested": false,
               "nodeType": "Literal",
               "src": "5711:31:6",
               "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": 923,
              "name": "require",
              "nodeType": "Identifier",
              "overloadedDeclarations": [
               2659,
               2660
              ],
              "referencedDeclaration": 2660,
              "src": "5658:7:6",
              "typeDescriptions": {
               "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
               "typeString": "function (bool,string memory) pure"
              }
             },
             "id": 931,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "5658:85:6",
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 932,
            "nodeType": "ExpressionStatement",
            "src": "5658:85:6"
           }
          ]
         }
        },
        {
         "id": 935,
         "nodeType": "PlaceholderStatement",
         "src": "5763:1:6"
        }
       ]
      },
      "documentation": null,
      "id": 937,
      "name": "previousBondMustNotBeatMaxPrevious",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 919,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 916,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 937,
         "src": "5569:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 915,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "5569:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 918,
         "name": "max_previous",
         "nodeType": "VariableDeclaration",
         "scope": 937,
         "src": "5590:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 917,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "5590:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "5568:43:6"
      },
      "src": "5525:246:6",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 960,
       "nodeType": "Block",
       "src": "5958:538:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "hexValue": "7b227469746c65223a20222573222c202274797065223a2022626f6f6c222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
            "id": 941,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "5983:65:6",
            "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": 940,
           "name": "createTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1030,
           "src": "5968:14:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
            "typeString": "function (string memory) returns (uint256)"
           }
          },
          "id": 942,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "5968:81:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 943,
         "nodeType": "ExpressionStatement",
         "src": "5968:81:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "hexValue": "7b227469746c65223a20222573222c202274797065223a202275696e74222c2022646563696d616c73223a2031382c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
            "id": 945,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "6074:81:6",
            "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": 944,
           "name": "createTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1030,
           "src": "6059:14:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
            "typeString": "function (string memory) returns (uint256)"
           }
          },
          "id": 946,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "6059:97:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 947,
         "nodeType": "ExpressionStatement",
         "src": "6059:97:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "hexValue": "7b227469746c65223a20222573222c202274797065223a202273696e676c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
            "id": 949,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "6181:92:6",
            "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": 948,
           "name": "createTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1030,
           "src": "6166:14:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
            "typeString": "function (string memory) returns (uint256)"
           }
          },
          "id": 950,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "6166:108:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 951,
         "nodeType": "ExpressionStatement",
         "src": "6166:108:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "hexValue": "7b227469746c65223a20222573222c202274797065223a20226d756c7469706c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
            "id": 953,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "6299:94:6",
            "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": 952,
           "name": "createTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1030,
           "src": "6284:14:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
            "typeString": "function (string memory) returns (uint256)"
           }
          },
          "id": 954,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "6284:110:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 955,
         "nodeType": "ExpressionStatement",
         "src": "6284:110:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "hexValue": "7b227469746c65223a20222573222c202274797065223a20226461746574696d65222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
            "id": 957,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "6419:69:6",
            "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": 956,
           "name": "createTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1030,
           "src": "6404:14:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
            "typeString": "function (string memory) returns (uint256)"
           }
          },
          "id": 958,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "6404:85:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 959,
         "nodeType": "ExpressionStatement",
         "src": "6404:85:6"
        }
       ]
      },
      "documentation": "@notice Constructor, sets up some initial templates\n @dev Creates some generalized templates for different question types used in the DApp.",
      "id": 961,
      "implemented": true,
      "isConstructor": true,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 938,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "5943:2:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 939,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "5958:0:6"
      },
      "scope": 2516,
      "src": "5932:564:6",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 981,
       "nodeType": "Block",
       "src": "6841:108:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "id": 973,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 968,
            "name": "arbitrator_question_fees",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 688,
            "src": "6851:24:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
             "typeString": "mapping(address => uint256)"
            }
           },
           "id": 971,
           "indexExpression": {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 969,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2656,
             "src": "6876:3:6",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 970,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "6876:10:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "nodeType": "IndexAccess",
           "src": "6851:36:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 972,
           "name": "fee",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 963,
           "src": "6890:3:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "6851:42:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 974,
         "nodeType": "ExpressionStatement",
         "src": "6851:42:6"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 976,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2656,
             "src": "6926:3:6",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 977,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "6926:10:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 978,
            "name": "fee",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 963,
            "src": "6938:3:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           ],
           "id": 975,
           "name": "LogSetQuestionFee",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 536,
           "src": "6908:17:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
            "typeString": "function (address,uint256)"
           }
          },
          "id": 979,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "6908:34:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 980,
         "nodeType": "EmitStatement",
         "src": "6903:39:6"
        }
       ]
      },
      "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": 982,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [],
        "id": 966,
        "modifierName": {
         "argumentTypes": null,
         "id": 965,
         "name": "stateAny",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 709,
         "src": "6816:8:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$__$",
          "typeString": "modifier ()"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "6816:10:6"
       }
      ],
      "name": "setQuestionFee",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 964,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 963,
         "name": "fee",
         "nodeType": "VariableDeclaration",
         "scope": 982,
         "src": "6794:11:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 962,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "6794:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "6793:13:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 967,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "6841:0:6"
      },
      "scope": 2516,
      "src": "6770:179:6",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1029,
       "nodeType": "Block",
       "src": "7418:259:6",
       "statements": [
        {
         "assignments": [
          992
         ],
         "declarations": [
          {
           "constant": false,
           "id": 992,
           "name": "id",
           "nodeType": "VariableDeclaration",
           "scope": 1030,
           "src": "7428:10:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 991,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "7428:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 994,
         "initialValue": {
          "argumentTypes": null,
          "id": 993,
          "name": "nextTemplateID",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 664,
          "src": "7441:14:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "7428:27:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1000,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 995,
            "name": "templates",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 668,
            "src": "7465:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
             "typeString": "mapping(uint256 => uint256)"
            }
           },
           "id": 997,
           "indexExpression": {
            "argumentTypes": null,
            "id": 996,
            "name": "id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 992,
            "src": "7475:2:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "nodeType": "IndexAccess",
           "src": "7465:13:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "id": 998,
            "name": "block",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2646,
            "src": "7481:5:6",
            "typeDescriptions": {
             "typeIdentifier": "t_magic_block",
             "typeString": "block"
            }
           },
           "id": 999,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "number",
           "nodeType": "MemberAccess",
           "referencedDeclaration": null,
           "src": "7481:12:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "7465:28:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 1001,
         "nodeType": "ExpressionStatement",
         "src": "7465:28:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1011,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1002,
            "name": "template_hashes",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 672,
            "src": "7503:15:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
             "typeString": "mapping(uint256 => bytes32)"
            }
           },
           "id": 1004,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1003,
            "name": "id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 992,
            "src": "7519:2:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "nodeType": "IndexAccess",
           "src": "7503:19:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1008,
               "name": "content",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 984,
               "src": "7552:7:6",
               "typeDescriptions": {
                "typeIdentifier": "t_string_memory_ptr",
                "typeString": "string memory"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_string_memory_ptr",
                "typeString": "string memory"
               }
              ],
              "expression": {
               "argumentTypes": null,
               "id": 1006,
               "name": "abi",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2643,
               "src": "7535:3:6",
               "typeDescriptions": {
                "typeIdentifier": "t_magic_abi",
                "typeString": "abi"
               }
              },
              "id": 1007,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "memberName": "encodePacked",
              "nodeType": "MemberAccess",
              "referencedDeclaration": null,
              "src": "7535:16:6",
              "typeDescriptions": {
               "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
               "typeString": "function () pure returns (bytes memory)"
              }
             },
             "id": 1009,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "7535:25:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes_memory_ptr",
              "typeString": "bytes memory"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_bytes_memory_ptr",
              "typeString": "bytes memory"
             }
            ],
            "id": 1005,
            "name": "keccak256",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2650,
            "src": "7525:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
             "typeString": "function () pure returns (bytes32)"
            }
           },
           "id": 1010,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "7525:36:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "7503:58:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "id": 1012,
         "nodeType": "ExpressionStatement",
         "src": "7503:58:6"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1014,
            "name": "id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 992,
            "src": "7591:2:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 1015,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2656,
             "src": "7595:3:6",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 1016,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "7595:10:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 1017,
            "name": "content",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 984,
            "src": "7607:7:6",
            "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": 1013,
           "name": "LogNewTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 544,
           "src": "7576:14:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (uint256,address,string memory)"
           }
          },
          "id": 1018,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "7576:39:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1019,
         "nodeType": "EmitStatement",
         "src": "7571:44:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1025,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "id": 1020,
           "name": "nextTemplateID",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 664,
           "src": "7625:14:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "hexValue": "31",
             "id": 1023,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "7649:1:6",
             "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": 1021,
             "name": "id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 992,
             "src": "7642:2:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1022,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "add",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 2613,
            "src": "7642:6:6",
            "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": 1024,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "7642:9:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "7625:26:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 1026,
         "nodeType": "ExpressionStatement",
         "src": "7625:26:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1027,
          "name": "id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 992,
          "src": "7668:2:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "functionReturnParameters": 990,
         "id": 1028,
         "nodeType": "Return",
         "src": "7661:9:6"
        }
       ]
      },
      "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": 1030,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [],
        "id": 987,
        "modifierName": {
         "argumentTypes": null,
         "id": 986,
         "name": "stateAny",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 709,
         "src": "7378:8:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$__$",
          "typeString": "modifier ()"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "7378:10:6"
       }
      ],
      "name": "createTemplate",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 985,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 984,
         "name": "content",
         "nodeType": "VariableDeclaration",
         "scope": 1030,
         "src": "7353:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_string_memory_ptr",
          "typeString": "string"
         },
         "typeName": {
          "id": 983,
          "name": "string",
          "nodeType": "ElementaryTypeName",
          "src": "7353:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_string_storage_ptr",
           "typeString": "string"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "7352:16:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 990,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 989,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 1030,
         "src": "7409:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 988,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "7409:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "7408:9:6"
      },
      "scope": 2516,
      "src": "7329:348:6",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 1062,
       "nodeType": "Block",
       "src": "8822:153:6",
       "statements": [
        {
         "assignments": [
          1048
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1048,
           "name": "template_id",
           "nodeType": "VariableDeclaration",
           "scope": 1063,
           "src": "8832:19:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 1047,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "8832:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1052,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1050,
            "name": "content",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1032,
            "src": "8869:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_string_memory_ptr",
             "typeString": "string memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_string_memory_ptr",
             "typeString": "string memory"
            }
           ],
           "id": 1049,
           "name": "createTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1030,
           "src": "8854:14:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
            "typeString": "function (string memory) returns (uint256)"
           }
          },
          "id": 1051,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "8854:23:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "8832:45:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1054,
            "name": "template_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1048,
            "src": "8906:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 1055,
            "name": "question",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1034,
            "src": "8919:8:6",
            "typeDescriptions": {
             "typeIdentifier": "t_string_memory_ptr",
             "typeString": "string memory"
            }
           },
           {
            "argumentTypes": null,
            "id": 1056,
            "name": "arbitrator",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1036,
            "src": "8929:10:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 1057,
            "name": "timeout",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1038,
            "src": "8941:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1058,
            "name": "opening_ts",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1040,
            "src": "8950:10:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1059,
            "name": "nonce",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1042,
            "src": "8962:5:6",
            "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": 1053,
           "name": "askQuestion",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1139,
           "src": "8894:11:6",
           "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": 1060,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "8894:74:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 1046,
         "id": 1061,
         "nodeType": "Return",
         "src": "8887:81:6"
        }
       ]
      },
      "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": 1063,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "createTemplateAndAskQuestion",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1043,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1032,
         "name": "content",
         "nodeType": "VariableDeclaration",
         "scope": 1063,
         "src": "8598:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_string_memory_ptr",
          "typeString": "string"
         },
         "typeName": {
          "id": 1031,
          "name": "string",
          "nodeType": "ElementaryTypeName",
          "src": "8598:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_string_storage_ptr",
           "typeString": "string"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1034,
         "name": "question",
         "nodeType": "VariableDeclaration",
         "scope": 1063,
         "src": "8623:15:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_string_memory_ptr",
          "typeString": "string"
         },
         "typeName": {
          "id": 1033,
          "name": "string",
          "nodeType": "ElementaryTypeName",
          "src": "8623:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_string_storage_ptr",
           "typeString": "string"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1036,
         "name": "arbitrator",
         "nodeType": "VariableDeclaration",
         "scope": 1063,
         "src": "8640:18:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1035,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "8640:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1038,
         "name": "timeout",
         "nodeType": "VariableDeclaration",
         "scope": 1063,
         "src": "8660:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 1037,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "8660:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1040,
         "name": "opening_ts",
         "nodeType": "VariableDeclaration",
         "scope": 1063,
         "src": "8676:17:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 1039,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "8676:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1042,
         "name": "nonce",
         "nodeType": "VariableDeclaration",
         "scope": 1063,
         "src": "8695:13:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1041,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "8695:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "8588:127:6"
      },
      "payable": true,
      "returnParameters": {
       "id": 1046,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1045,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 1063,
         "src": "8813:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1044,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "8813:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "8812:9:6"
      },
      "scope": 2516,
      "src": "8551:424:6",
      "stateMutability": "payable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 1138,
       "nodeType": "Block",
       "src": "10092:533:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 1085,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 1081,
              "name": "templates",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 668,
              "src": "10111:9:6",
              "typeDescriptions": {
               "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
               "typeString": "mapping(uint256 => uint256)"
              }
             },
             "id": 1083,
             "indexExpression": {
              "argumentTypes": null,
              "id": 1082,
              "name": "template_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1065,
              "src": "10121:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "10111:22:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 1084,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "10136:1:6",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "10111:26:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "74656d706c617465206d757374206578697374",
            "id": 1086,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "10139:21:6",
            "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": 1080,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "10103:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1087,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "10103:58:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1088,
         "nodeType": "ExpressionStatement",
         "src": "10103:58:6"
        },
        {
         "assignments": [
          1090
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1090,
           "name": "content_hash",
           "nodeType": "VariableDeclaration",
           "scope": 1139,
           "src": "10172:20:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1089,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "10172:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1099,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 1094,
              "name": "template_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1065,
              "src": "10222:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             {
              "argumentTypes": null,
              "id": 1095,
              "name": "opening_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1073,
              "src": "10235:10:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1096,
              "name": "question",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1067,
              "src": "10247:8:6",
              "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": 1092,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2643,
              "src": "10205:3:6",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 1093,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "10205:16:6",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 1097,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "10205:51:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 1091,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2650,
           "src": "10195:9:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 1098,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "10195:62:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "10172:85:6"
        },
        {
         "assignments": [
          1101
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1101,
           "name": "question_id",
           "nodeType": "VariableDeclaration",
           "scope": 1139,
           "src": "10267:19:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1100,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "10267:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1113,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 1105,
              "name": "content_hash",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1090,
              "src": "10316:12:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1106,
              "name": "arbitrator",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1069,
              "src": "10330:10:6",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             {
              "argumentTypes": null,
              "id": 1107,
              "name": "timeout",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1071,
              "src": "10342:7:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "id": 1108,
               "name": "msg",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2656,
               "src": "10351:3:6",
               "typeDescriptions": {
                "typeIdentifier": "t_magic_message",
                "typeString": "msg"
               }
              },
              "id": 1109,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "memberName": "sender",
              "nodeType": "MemberAccess",
              "referencedDeclaration": null,
              "src": "10351:10:6",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             {
              "argumentTypes": null,
              "id": 1110,
              "name": "nonce",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1075,
              "src": "10363:5:6",
              "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": 1103,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2643,
              "src": "10299:3:6",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 1104,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "10299:16:6",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 1111,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "10299:70:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 1102,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2650,
           "src": "10289:9:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 1112,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "10289:81:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "10267:103:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1115,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1101,
            "src": "10394:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1116,
            "name": "content_hash",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1090,
            "src": "10407:12:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1117,
            "name": "arbitrator",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1069,
            "src": "10421:10:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 1118,
            "name": "timeout",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1071,
            "src": "10433:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1119,
            "name": "opening_ts",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1073,
            "src": "10442:10:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           }
          ],
          "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"
            }
           ],
           "id": 1114,
           "name": "_askQuestion",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1254,
           "src": "10381:12:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint32_$returns$__$",
            "typeString": "function (bytes32,bytes32,address,uint32,uint32)"
           }
          },
          "id": 1120,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "10381:72:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1121,
         "nodeType": "ExpressionStatement",
         "src": "10381:72:6"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1123,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1101,
            "src": "10483:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 1124,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2656,
             "src": "10496:3:6",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 1125,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "10496:10:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 1126,
            "name": "template_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1065,
            "src": "10508:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 1127,
            "name": "question",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1067,
            "src": "10521:8:6",
            "typeDescriptions": {
             "typeIdentifier": "t_string_memory_ptr",
             "typeString": "string memory"
            }
           },
           {
            "argumentTypes": null,
            "id": 1128,
            "name": "content_hash",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1090,
            "src": "10531:12:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1129,
            "name": "arbitrator",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1069,
            "src": "10545:10:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 1130,
            "name": "timeout",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1071,
            "src": "10557:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1131,
            "name": "opening_ts",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1073,
            "src": "10566:10:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1132,
            "name": "nonce",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1075,
            "src": "10578:5:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 1133,
            "name": "now",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2658,
            "src": "10585:3:6",
            "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": 1122,
           "name": "LogNewQuestion",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 566,
           "src": "10468:14:6",
           "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": 1134,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "10468:121:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1135,
         "nodeType": "EmitStatement",
         "src": "10463:126:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1136,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1101,
          "src": "10607:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 1079,
         "id": 1137,
         "nodeType": "Return",
         "src": "10600:18:6"
        }
       ]
      },
      "documentation": "@notice Ask a new question 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 @return The ID of the newly-created question, created deterministically.",
      "id": 1139,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "askQuestion",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1076,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1065,
         "name": "template_id",
         "nodeType": "VariableDeclaration",
         "scope": 1139,
         "src": "9878:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1064,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "9878:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1067,
         "name": "question",
         "nodeType": "VariableDeclaration",
         "scope": 1139,
         "src": "9899:15:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_string_memory_ptr",
          "typeString": "string"
         },
         "typeName": {
          "id": 1066,
          "name": "string",
          "nodeType": "ElementaryTypeName",
          "src": "9899:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_string_storage_ptr",
           "typeString": "string"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1069,
         "name": "arbitrator",
         "nodeType": "VariableDeclaration",
         "scope": 1139,
         "src": "9916:18:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1068,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "9916:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1071,
         "name": "timeout",
         "nodeType": "VariableDeclaration",
         "scope": 1139,
         "src": "9936:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 1070,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "9936:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1073,
         "name": "opening_ts",
         "nodeType": "VariableDeclaration",
         "scope": 1139,
         "src": "9952:17:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 1072,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "9952:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1075,
         "name": "nonce",
         "nodeType": "VariableDeclaration",
         "scope": 1139,
         "src": "9971:13:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1074,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "9971:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "9877:108:6"
      },
      "payable": true,
      "returnParameters": {
       "id": 1079,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1078,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 1139,
         "src": "10083:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1077,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "10083:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "10082:9:6"
      },
      "scope": 2516,
      "src": "9857:768:6",
      "stateMutability": "payable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 1253,
       "nodeType": "Block",
       "src": "10802:1316:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 1158,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 1156,
             "name": "timeout",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1147,
             "src": "10903:7:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 1157,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "10913:1:6",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "10903:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "74696d656f7574206d75737420626520706f736974697665",
            "id": 1159,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "10916:26:6",
            "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": 1155,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "10895:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1160,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "10895:48:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1161,
         "nodeType": "ExpressionStatement",
         "src": "10895:48:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 1165,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 1163,
             "name": "timeout",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1147,
             "src": "10962:7:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "<",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "333635",
             "id": 1164,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "10972:8:6",
             "subdenomination": "days",
             "typeDescriptions": {
              "typeIdentifier": "t_rational_31536000_by_1",
              "typeString": "int_const 31536000"
             },
             "value": "365"
            },
            "src": "10962:18:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "74696d656f7574206d757374206265206c657373207468616e203336352064617973",
            "id": 1166,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "10982:36:6",
            "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": 1162,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "10954:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1167,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "10954:65:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1168,
         "nodeType": "ExpressionStatement",
         "src": "10954:65:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            "id": 1172,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 1170,
             "name": "arbitrator",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1145,
             "src": "11038:10:6",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "!=",
            "rightExpression": {
             "argumentTypes": null,
             "id": 1171,
             "name": "NULL_ADDRESS",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 516,
             "src": "11052:12:6",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "src": "11038:26:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "61726269747261746f72206d75737420626520736574",
            "id": 1173,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "11066:24:6",
            "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": 1169,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "11030:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1174,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "11030:61:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1175,
         "nodeType": "ExpressionStatement",
         "src": "11030:61:6"
        },
        {
         "assignments": [
          1177
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1177,
           "name": "bounty",
           "nodeType": "VariableDeclaration",
           "scope": 1254,
           "src": "11102:14:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 1176,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "11102:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1180,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "id": 1178,
           "name": "msg",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2656,
           "src": "11119:3:6",
           "typeDescriptions": {
            "typeIdentifier": "t_magic_message",
            "typeString": "msg"
           }
          },
          "id": 1179,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "value",
          "nodeType": "MemberAccess",
          "referencedDeclaration": null,
          "src": "11119:9:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "11102:26:6"
        },
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          },
          "id": 1184,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "id": 1181,
            "name": "msg",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2656,
            "src": "11520:3:6",
            "typeDescriptions": {
             "typeIdentifier": "t_magic_message",
             "typeString": "msg"
            }
           },
           "id": 1182,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "sender",
           "nodeType": "MemberAccess",
           "referencedDeclaration": null,
           "src": "11520:10:6",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "!=",
          "rightExpression": {
           "argumentTypes": null,
           "id": 1183,
           "name": "arbitrator",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1145,
           "src": "11534:10:6",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "src": "11520:24:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 1217,
         "nodeType": "IfStatement",
         "src": "11516:324:6",
         "trueBody": {
          "id": 1216,
          "nodeType": "Block",
          "src": "11546:294:6",
          "statements": [
           {
            "assignments": [
             1186
            ],
            "declarations": [
             {
              "constant": false,
              "id": 1186,
              "name": "question_fee",
              "nodeType": "VariableDeclaration",
              "scope": 1254,
              "src": "11560:20:6",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              },
              "typeName": {
               "id": 1185,
               "name": "uint256",
               "nodeType": "ElementaryTypeName",
               "src": "11560:7:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 1190,
            "initialValue": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 1187,
              "name": "arbitrator_question_fees",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 688,
              "src": "11583:24:6",
              "typeDescriptions": {
               "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
               "typeString": "mapping(address => uint256)"
              }
             },
             "id": 1189,
             "indexExpression": {
              "argumentTypes": null,
              "id": 1188,
              "name": "arbitrator",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1145,
              "src": "11608:10:6",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "11583:36:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "11560:59:6"
           },
           {
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "commonType": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               },
               "id": 1194,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "lValueRequested": false,
               "leftExpression": {
                "argumentTypes": null,
                "id": 1192,
                "name": "bounty",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1177,
                "src": "11641:6:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "nodeType": "BinaryOperation",
               "operator": ">=",
               "rightExpression": {
                "argumentTypes": null,
                "id": 1193,
                "name": "question_fee",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1186,
                "src": "11651:12:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "src": "11641:22:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
               }
              },
              {
               "argumentTypes": null,
               "hexValue": "4554482070726f7669646564206d75737420636f766572207175657374696f6e20666565",
               "id": 1195,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "kind": "string",
               "lValueRequested": false,
               "nodeType": "Literal",
               "src": "11665:38:6",
               "subdenomination": null,
               "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_f563467593cc476b2eaa9803db9a434ac560eec51474d9492a841a55aff9878c",
                "typeString": "literal_string \"ETH provided must cover question fee\""
               },
               "value": "ETH provided must cover question fee"
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
               },
               {
                "typeIdentifier": "t_stringliteral_f563467593cc476b2eaa9803db9a434ac560eec51474d9492a841a55aff9878c",
                "typeString": "literal_string \"ETH provided must cover question fee\""
               }
              ],
              "id": 1191,
              "name": "require",
              "nodeType": "Identifier",
              "overloadedDeclarations": [
               2659,
               2660
              ],
              "referencedDeclaration": 2660,
              "src": "11633:7:6",
              "typeDescriptions": {
               "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
               "typeString": "function (bool,string memory) pure"
              }
             },
             "id": 1196,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "11633:71:6",
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 1197,
            "nodeType": "ExpressionStatement",
            "src": "11633:71:6"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1203,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "id": 1198,
              "name": "bounty",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1177,
              "src": "11719:6:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 1201,
                "name": "question_fee",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1186,
                "src": "11739:12:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "expression": {
                "argumentTypes": null,
                "id": 1199,
                "name": "bounty",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1177,
                "src": "11728:6:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 1200,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "lValueRequested": false,
               "memberName": "sub",
               "nodeType": "MemberAccess",
               "referencedDeclaration": 2589,
               "src": "11728:10:6",
               "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": 1202,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "11728:24:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "11719:33:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1204,
            "nodeType": "ExpressionStatement",
            "src": "11719:33:6"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1214,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1205,
               "name": "balanceOf",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 317,
               "src": "11766:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
               }
              },
              "id": 1207,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1206,
               "name": "arbitrator",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1145,
               "src": "11776:10:6",
               "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "nodeType": "IndexAccess",
              "src": "11766:21:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 1212,
                "name": "question_fee",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1186,
                "src": "11816:12:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "expression": {
                "argumentTypes": null,
                "baseExpression": {
                 "argumentTypes": null,
                 "id": 1208,
                 "name": "balanceOf",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 317,
                 "src": "11790:9:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                  "typeString": "mapping(address => uint256)"
                 }
                },
                "id": 1210,
                "indexExpression": {
                 "argumentTypes": null,
                 "id": 1209,
                 "name": "arbitrator",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1145,
                 "src": "11800:10:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                 }
                },
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "IndexAccess",
                "src": "11790:21:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 1211,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "lValueRequested": false,
               "memberName": "add",
               "nodeType": "MemberAccess",
               "referencedDeclaration": 2613,
               "src": "11790:25:6",
               "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": 1213,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "11790:39:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "11766:63:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1215,
            "nodeType": "ExpressionStatement",
            "src": "11766:63:6"
           }
          ]
         }
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1223,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1218,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "11850:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 1220,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1219,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1141,
             "src": "11860:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "11850:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 1221,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "content_hash",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 628,
           "src": "11850:35:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1222,
           "name": "content_hash",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1143,
           "src": "11888:12:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "11850:50:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "id": 1224,
         "nodeType": "ExpressionStatement",
         "src": "11850:50:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1230,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1225,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "11910:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 1227,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1226,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1141,
             "src": "11920:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "11910:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 1228,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "arbitrator",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 630,
           "src": "11910:33:6",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1229,
           "name": "arbitrator",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1145,
           "src": "11946:10:6",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "src": "11910:46:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "id": 1231,
         "nodeType": "ExpressionStatement",
         "src": "11910:46:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1237,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1232,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "11966:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 1234,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1233,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1141,
             "src": "11976:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "11966:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 1235,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "opening_ts",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 632,
           "src": "11966:33:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1236,
           "name": "opening_ts",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1149,
           "src": "12002:10:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "src": "11966:46:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "id": 1238,
         "nodeType": "ExpressionStatement",
         "src": "11966:46:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1244,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1239,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "12022:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 1241,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1240,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1141,
             "src": "12032:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "12022:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 1242,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "timeout",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 634,
           "src": "12022:30:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1243,
           "name": "timeout",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1147,
           "src": "12055:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "src": "12022:40:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "id": 1245,
         "nodeType": "ExpressionStatement",
         "src": "12022:40:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1251,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1246,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "12072:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 1248,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1247,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1141,
             "src": "12082:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "12072:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 1249,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "bounty",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 640,
           "src": "12072:29:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1250,
           "name": "bounty",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1177,
           "src": "12104:6:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "12072:38:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 1252,
         "nodeType": "ExpressionStatement",
         "src": "12072:38:6"
        }
       ]
      },
      "documentation": null,
      "id": 1254,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1152,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1141,
          "src": "10776:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1153,
        "modifierName": {
         "argumentTypes": null,
         "id": 1151,
         "name": "stateNotCreated",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 725,
         "src": "10760:15:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "10760:28:6"
       }
      ],
      "name": "_askQuestion",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1150,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1141,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1254,
         "src": "10653:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1140,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "10653:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1143,
         "name": "content_hash",
         "nodeType": "VariableDeclaration",
         "scope": 1254,
         "src": "10674:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1142,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "10674:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1145,
         "name": "arbitrator",
         "nodeType": "VariableDeclaration",
         "scope": 1254,
         "src": "10696:18:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1144,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "10696:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1147,
         "name": "timeout",
         "nodeType": "VariableDeclaration",
         "scope": 1254,
         "src": "10716:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 1146,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "10716:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1149,
         "name": "opening_ts",
         "nodeType": "VariableDeclaration",
         "scope": 1254,
         "src": "10732:17:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 1148,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "10732:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "10652:98:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 1154,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "10802:0:6"
      },
      "scope": 2516,
      "src": "10631:1487:6",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 1288,
       "nodeType": "Block",
       "src": "12467:194:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "id": 1274,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1262,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "12477:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 1264,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1263,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1256,
             "src": "12487:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "12477:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 1265,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "bounty",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 640,
           "src": "12477:29:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "id": 1271,
              "name": "msg",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2656,
              "src": "12543:3:6",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_message",
               "typeString": "msg"
              }
             },
             "id": 1272,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "value",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "12543:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            ],
            "expression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1266,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 676,
               "src": "12509:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
               }
              },
              "id": 1268,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1267,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1256,
               "src": "12519:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "12509:22:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$647_storage",
               "typeString": "struct Realitio.Question storage ref"
              }
             },
             "id": 1269,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "bounty",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 640,
             "src": "12509:29:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1270,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "add",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 2613,
            "src": "12509:33:6",
            "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": 1273,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "12509:44:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "12477:76:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 1275,
         "nodeType": "ExpressionStatement",
         "src": "12477:76:6"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1277,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1256,
            "src": "12588:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 1278,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2656,
             "src": "12601:3:6",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 1279,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "value",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "12601:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 1280,
              "name": "questions",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 676,
              "src": "12612:9:6",
              "typeDescriptions": {
               "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
               "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
              }
             },
             "id": 1282,
             "indexExpression": {
              "argumentTypes": null,
              "id": 1281,
              "name": "question_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1256,
              "src": "12622:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "12612:22:6",
             "typeDescriptions": {
              "typeIdentifier": "t_struct$_Question_$647_storage",
              "typeString": "struct Realitio.Question storage ref"
             }
            },
            "id": 1283,
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "bounty",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 640,
            "src": "12612:29:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 1284,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2656,
             "src": "12643:3:6",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 1285,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "12643:10:6",
            "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": 1276,
           "name": "LogFundAnswerBounty",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 576,
           "src": "12568:19:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
            "typeString": "function (bytes32,uint256,uint256,address)"
           }
          },
          "id": 1286,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "12568:86:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1287,
         "nodeType": "EmitStatement",
         "src": "12563:91:6"
        }
       ]
      },
      "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",
      "id": 1289,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1259,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1256,
          "src": "12433:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1260,
        "modifierName": {
         "argumentTypes": null,
         "id": 1258,
         "name": "stateOpen",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 790,
         "src": "12423:9:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "12423:22:6"
       }
      ],
      "name": "fundAnswerBounty",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1257,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1256,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1289,
         "src": "12393:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1255,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "12393:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "12392:21:6"
      },
      "payable": true,
      "returnParameters": {
       "id": 1261,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "12467:0:6"
      },
      "scope": 2516,
      "src": "12367:294:6",
      "stateMutability": "payable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1327,
       "nodeType": "Block",
       "src": "13392:170:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1309,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1291,
            "src": "13422:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1310,
            "name": "answer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1293,
            "src": "13435:6:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 1311,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2656,
             "src": "13443:3:6",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 1312,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "13443:10:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 1313,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2656,
             "src": "13455:3:6",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 1314,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "value",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "13455:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "66616c7365",
            "id": 1315,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "bool",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "13466:5:6",
            "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": 1308,
           "name": "_addAnswerToHistory",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1570,
           "src": "13402:19:6",
           "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": 1316,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "13402:70:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1317,
         "nodeType": "ExpressionStatement",
         "src": "13402:70:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1319,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1291,
            "src": "13503:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1320,
            "name": "answer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1293,
            "src": "13516:6:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 1321,
              "name": "questions",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 676,
              "src": "13524:9:6",
              "typeDescriptions": {
               "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
               "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
              }
             },
             "id": 1323,
             "indexExpression": {
              "argumentTypes": null,
              "id": 1322,
              "name": "question_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1291,
              "src": "13534:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "13524:22:6",
             "typeDescriptions": {
              "typeIdentifier": "t_struct$_Question_$647_storage",
              "typeString": "struct Realitio.Question storage ref"
             }
            },
            "id": 1324,
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "timeout",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 634,
            "src": "13524:30:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           ],
           "id": 1318,
           "name": "_updateCurrentAnswer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1599,
           "src": "13482:20:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
            "typeString": "function (bytes32,bytes32,uint32)"
           }
          },
          "id": 1325,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "13482:73:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1326,
         "nodeType": "ExpressionStatement",
         "src": "13482:73:6"
        }
       ]
      },
      "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.",
      "id": 1328,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1298,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1291,
          "src": "13252:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1299,
        "modifierName": {
         "argumentTypes": null,
         "id": 1297,
         "name": "stateOpen",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 790,
         "src": "13242:9:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "13242:22:6"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1301,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1291,
          "src": "13288:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1302,
        "modifierName": {
         "argumentTypes": null,
         "id": 1300,
         "name": "bondMustDouble",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 914,
         "src": "13273:14:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "13273:27:6"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1304,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1291,
          "src": "13344:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         {
          "argumentTypes": null,
          "id": 1305,
          "name": "max_previous",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1295,
          "src": "13357:12:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         }
        ],
        "id": 1306,
        "modifierName": {
         "argumentTypes": null,
         "id": 1303,
         "name": "previousBondMustNotBeatMaxPrevious",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 937,
         "src": "13309:34:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
          "typeString": "modifier (bytes32,uint256)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "13309:61:6"
       }
      ],
      "name": "submitAnswer",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1296,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1291,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1328,
         "src": "13174:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1290,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "13174:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1293,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 1328,
         "src": "13195:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1292,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "13195:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1295,
         "name": "max_previous",
         "nodeType": "VariableDeclaration",
         "scope": 1328,
         "src": "13211:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1294,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "13211:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "13173:59:6"
      },
      "payable": true,
      "returnParameters": {
       "id": 1307,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "13392:0:6"
      },
      "scope": 2516,
      "src": "13152:410:6",
      "stateMutability": "payable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1412,
       "nodeType": "Block",
       "src": "14773:573:6",
       "statements": [
        {
         "assignments": [
          1350
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1350,
           "name": "commitment_id",
           "nodeType": "VariableDeclaration",
           "scope": 1413,
           "src": "14784:21:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1349,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "14784:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1360,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 1354,
              "name": "question_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1330,
              "src": "14835:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1355,
              "name": "answer_hash",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1332,
              "src": "14848:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "id": 1356,
               "name": "msg",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2656,
               "src": "14861:3:6",
               "typeDescriptions": {
                "typeIdentifier": "t_magic_message",
                "typeString": "msg"
               }
              },
              "id": 1357,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "memberName": "value",
              "nodeType": "MemberAccess",
              "referencedDeclaration": null,
              "src": "14861:9:6",
              "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": 1352,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2643,
              "src": "14818:3:6",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 1353,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "14818:16:6",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 1358,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "14818:53:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 1351,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2650,
           "src": "14808:9:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 1359,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "14808:64:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "14784:88:6"
        },
        {
         "assignments": [
          1362
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1362,
           "name": "answerer",
           "nodeType": "VariableDeclaration",
           "scope": 1413,
           "src": "14882:16:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           },
           "typeName": {
            "id": 1361,
            "name": "address",
            "nodeType": "ElementaryTypeName",
            "src": "14882:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1371,
         "initialValue": {
          "argumentTypes": null,
          "condition": {
           "argumentTypes": null,
           "components": [
            {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             },
             "id": 1365,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 1363,
              "name": "_answerer",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1336,
              "src": "14902:9:6",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "==",
             "rightExpression": {
              "argumentTypes": null,
              "id": 1364,
              "name": "NULL_ADDRESS",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 516,
              "src": "14915:12:6",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "src": "14902:25:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            }
           ],
           "id": 1366,
           "isConstant": false,
           "isInlineArray": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "TupleExpression",
           "src": "14901:27:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           }
          },
          "falseExpression": {
           "argumentTypes": null,
           "id": 1369,
           "name": "_answerer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1336,
           "src": "14944:9:6",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "id": 1370,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "nodeType": "Conditional",
          "src": "14901:52:6",
          "trueExpression": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "id": 1367,
            "name": "msg",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2656,
            "src": "14931:3:6",
            "typeDescriptions": {
             "typeIdentifier": "t_magic_message",
             "typeString": "msg"
            }
           },
           "id": 1368,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "sender",
           "nodeType": "MemberAccess",
           "referencedDeclaration": null,
           "src": "14931:10:6",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "14882:71:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 1378,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1373,
               "name": "commitments",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 684,
               "src": "14972:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$654_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
               }
              },
              "id": 1375,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1374,
               "name": "commitment_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1350,
               "src": "14984:13:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "14972:26:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Commitment_$654_storage",
               "typeString": "struct Realitio.Commitment storage ref"
              }
             },
             "id": 1376,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "reveal_ts",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 649,
             "src": "14972:36:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "==",
            "rightExpression": {
             "argumentTypes": null,
             "id": 1377,
             "name": "COMMITMENT_NON_EXISTENT",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 527,
             "src": "15012:23:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "src": "14972:63:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "636f6d6d69746d656e74206d757374206e6f7420616c7265616479206578697374",
            "id": 1379,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "15037:35:6",
            "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": 1372,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "14964:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1380,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "14964:109:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1381,
         "nodeType": "ExpressionStatement",
         "src": "14964:109:6"
        },
        {
         "assignments": [
          1383
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1383,
           "name": "commitment_timeout",
           "nodeType": "VariableDeclaration",
           "scope": 1413,
           "src": "15084:25:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           },
           "typeName": {
            "id": 1382,
            "name": "uint32",
            "nodeType": "ElementaryTypeName",
            "src": "15084:6:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1390,
         "initialValue": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          },
          "id": 1389,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1384,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "15112:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 1386,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1385,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1330,
             "src": "15122:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "15112:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 1387,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "timeout",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 634,
           "src": "15112:30:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "/",
          "rightExpression": {
           "argumentTypes": null,
           "id": 1388,
           "name": "COMMITMENT_TIMEOUT_RATIO",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 530,
           "src": "15145:24:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "src": "15112:57:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "15084:85:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1401,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1391,
             "name": "commitments",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 684,
             "src": "15179:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$654_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
             }
            },
            "id": 1393,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1392,
             "name": "commitment_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1350,
             "src": "15191:13:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "15179:26:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Commitment_$654_storage",
             "typeString": "struct Realitio.Commitment storage ref"
            }
           },
           "id": 1394,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "reveal_ts",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 649,
           "src": "15179:36:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "id": 1399,
             "name": "commitment_timeout",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1383,
             "src": "15234:18:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            ],
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1396,
               "name": "now",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2658,
               "src": "15225:3:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 1395,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "ElementaryTypeNameExpression",
              "src": "15218:6:6",
              "typeDescriptions": {
               "typeIdentifier": "t_type$_t_uint32_$",
               "typeString": "type(uint32)"
              },
              "typeName": "uint32"
             },
             "id": 1397,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "typeConversion",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "15218:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "id": 1398,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "add",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 2640,
            "src": "15218:15:6",
            "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": 1400,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "15218:35:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "src": "15179:74:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "id": 1402,
         "nodeType": "ExpressionStatement",
         "src": "15179:74:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1404,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1330,
            "src": "15284:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1405,
            "name": "commitment_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1350,
            "src": "15297:13:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1406,
            "name": "answerer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1362,
            "src": "15312:8:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 1407,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2656,
             "src": "15322:3:6",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 1408,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "value",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "15322:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "74727565",
            "id": 1409,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "bool",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "15333:4:6",
            "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": 1403,
           "name": "_addAnswerToHistory",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1570,
           "src": "15264:19:6",
           "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": 1410,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "15264:74:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1411,
         "nodeType": "ExpressionStatement",
         "src": "15264:74:6"
        }
       ]
      },
      "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 @dev Specifying the answerer is useful if you want to delegate the commit-and-reveal to a third-party.",
      "id": 1413,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1339,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1330,
          "src": "14633:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1340,
        "modifierName": {
         "argumentTypes": null,
         "id": 1338,
         "name": "stateOpen",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 790,
         "src": "14623:9:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "14623:22:6"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1342,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1330,
          "src": "14669:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1343,
        "modifierName": {
         "argumentTypes": null,
         "id": 1341,
         "name": "bondMustDouble",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 914,
         "src": "14654:14:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "14654:27:6"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1345,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1330,
          "src": "14725:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         {
          "argumentTypes": null,
          "id": 1346,
          "name": "max_previous",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1334,
          "src": "14738:12:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         }
        ],
        "id": 1347,
        "modifierName": {
         "argumentTypes": null,
         "id": 1344,
         "name": "previousBondMustNotBeatMaxPrevious",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 937,
         "src": "14690:34:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
          "typeString": "modifier (bytes32,uint256)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "14690:61:6"
       }
      ],
      "name": "submitAnswerCommitment",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1337,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1330,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1413,
         "src": "14531:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1329,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "14531:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1332,
         "name": "answer_hash",
         "nodeType": "VariableDeclaration",
         "scope": 1413,
         "src": "14552:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1331,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "14552:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1334,
         "name": "max_previous",
         "nodeType": "VariableDeclaration",
         "scope": 1413,
         "src": "14573:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1333,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "14573:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1336,
         "name": "_answerer",
         "nodeType": "VariableDeclaration",
         "scope": 1413,
         "src": "14595:17:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1335,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "14595:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "14530:83:6"
      },
      "payable": true,
      "returnParameters": {
       "id": 1348,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "14773:0:6"
      },
      "scope": 2516,
      "src": "14499:847:6",
      "stateMutability": "payable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1510,
       "nodeType": "Block",
       "src": "16480:746:6",
       "statements": [
        {
         "assignments": [
          1428
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1428,
           "name": "answer_hash",
           "nodeType": "VariableDeclaration",
           "scope": 1511,
           "src": "16491:19:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1427,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "16491:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1436,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 1432,
              "name": "answer",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1417,
              "src": "16540:6:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1433,
              "name": "nonce",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1419,
              "src": "16548:5:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             }
            ],
            "expression": {
             "argumentTypes": [
              {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              },
              {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             ],
             "expression": {
              "argumentTypes": null,
              "id": 1430,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2643,
              "src": "16523:3:6",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 1431,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "16523:16:6",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 1434,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "16523:31:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 1429,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2650,
           "src": "16513:9:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 1435,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "16513:42:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "16491:64:6"
        },
        {
         "assignments": [
          1438
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1438,
           "name": "commitment_id",
           "nodeType": "VariableDeclaration",
           "scope": 1511,
           "src": "16565:21:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1437,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "16565:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1447,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 1442,
              "name": "question_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1415,
              "src": "16616:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1443,
              "name": "answer_hash",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1428,
              "src": "16629:11:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1444,
              "name": "bond",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1421,
              "src": "16642:4:6",
              "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": 1440,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2643,
              "src": "16599:3:6",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 1441,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "16599:16:6",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 1445,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "16599:48:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 1439,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2650,
           "src": "16589:9:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 1446,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "16589:59:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "16565:83:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1453,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "UnaryOperation",
            "operator": "!",
            "prefix": true,
            "src": "16667:39:6",
            "subExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1449,
               "name": "commitments",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 684,
               "src": "16668:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$654_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
               }
              },
              "id": 1451,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1450,
               "name": "commitment_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1438,
               "src": "16680:13:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "16668:26:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Commitment_$654_storage",
               "typeString": "struct Realitio.Commitment storage ref"
              }
             },
             "id": 1452,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "is_revealed",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 651,
             "src": "16668:38:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "636f6d6d69746d656e74206d757374206e6f742068617665206265656e2072657665616c656420796574",
            "id": 1454,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "16708:44:6",
            "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": 1448,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "16659:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1455,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "16659:94:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1456,
         "nodeType": "ExpressionStatement",
         "src": "16659:94:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 1465,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1458,
               "name": "commitments",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 684,
               "src": "16771:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$654_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
               }
              },
              "id": 1460,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1459,
               "name": "commitment_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1438,
               "src": "16783:13:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "16771:26:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Commitment_$654_storage",
               "typeString": "struct Realitio.Commitment storage ref"
              }
             },
             "id": 1461,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "reveal_ts",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 649,
             "src": "16771:36:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1463,
               "name": "now",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2658,
               "src": "16817:3:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 1462,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "ElementaryTypeNameExpression",
              "src": "16810:6:6",
              "typeDescriptions": {
               "typeIdentifier": "t_type$_t_uint32_$",
               "typeString": "type(uint32)"
              },
              "typeName": "uint32"
             },
             "id": 1464,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "typeConversion",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "16810:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "src": "16771:50:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "72657665616c20646561646c696e65206d757374206e6f74206861766520706173736564",
            "id": 1466,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "16823:38:6",
            "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": 1457,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "16763:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1467,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "16763:99:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1468,
         "nodeType": "ExpressionStatement",
         "src": "16763:99:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1474,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1469,
             "name": "commitments",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 684,
             "src": "16873:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$654_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
             }
            },
            "id": 1471,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1470,
             "name": "commitment_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1438,
             "src": "16885:13:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "16873:26:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Commitment_$654_storage",
             "typeString": "struct Realitio.Commitment storage ref"
            }
           },
           "id": 1472,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "revealed_answer",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 653,
           "src": "16873:42:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1473,
           "name": "answer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1417,
           "src": "16918:6:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "16873:51:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "id": 1475,
         "nodeType": "ExpressionStatement",
         "src": "16873:51:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1481,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1476,
             "name": "commitments",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 684,
             "src": "16934:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$654_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
             }
            },
            "id": 1478,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1477,
             "name": "commitment_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1438,
             "src": "16946:13:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "16934:26:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Commitment_$654_storage",
             "typeString": "struct Realitio.Commitment storage ref"
            }
           },
           "id": 1479,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "is_revealed",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 651,
           "src": "16934:38:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "hexValue": "74727565",
           "id": 1480,
           "isConstant": false,
           "isLValue": false,
           "isPure": true,
           "kind": "bool",
           "lValueRequested": false,
           "nodeType": "Literal",
           "src": "16975:4:6",
           "subdenomination": null,
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           },
           "value": "true"
          },
          "src": "16934:45:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "id": 1482,
         "nodeType": "ExpressionStatement",
         "src": "16934:45:6"
        },
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          },
          "id": 1488,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 1483,
           "name": "bond",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1421,
           "src": "16994:4:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "==",
          "rightExpression": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1484,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "17002:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 1486,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1485,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1415,
             "src": "17012:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "17002:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 1487,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "bond",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 646,
           "src": "17002:27:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "16994:35:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 1499,
         "nodeType": "IfStatement",
         "src": "16990:139:6",
         "trueBody": {
          "id": 1498,
          "nodeType": "Block",
          "src": "17031:98:6",
          "statements": [
           {
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1490,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1415,
               "src": "17066:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 1491,
               "name": "answer",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1417,
               "src": "17079:6:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "expression": {
                "argumentTypes": null,
                "baseExpression": {
                 "argumentTypes": null,
                 "id": 1492,
                 "name": "questions",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 676,
                 "src": "17087:9:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                  "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                 }
                },
                "id": 1494,
                "indexExpression": {
                 "argumentTypes": null,
                 "id": 1493,
                 "name": "question_id",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1415,
                 "src": "17097:11:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "IndexAccess",
                "src": "17087:22:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_struct$_Question_$647_storage",
                 "typeString": "struct Realitio.Question storage ref"
                }
               },
               "id": 1495,
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "memberName": "timeout",
               "nodeType": "MemberAccess",
               "referencedDeclaration": 634,
               "src": "17087:30:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               },
               {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               },
               {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
               }
              ],
              "id": 1489,
              "name": "_updateCurrentAnswer",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1599,
              "src": "17045:20:6",
              "typeDescriptions": {
               "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
               "typeString": "function (bytes32,bytes32,uint32)"
              }
             },
             "id": 1496,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "17045:73:6",
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 1497,
            "nodeType": "ExpressionStatement",
            "src": "17045:73:6"
           }
          ]
         }
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1501,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1415,
            "src": "17160:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 1502,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2656,
             "src": "17173:3:6",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 1503,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "17173:10:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 1504,
            "name": "answer_hash",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1428,
            "src": "17185:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1505,
            "name": "answer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1417,
            "src": "17198:6:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1506,
            "name": "nonce",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1419,
            "src": "17206:5:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 1507,
            "name": "bond",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1421,
            "src": "17213:4:6",
            "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": 1500,
           "name": "LogAnswerReveal",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 606,
           "src": "17144:15:6",
           "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": 1508,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "17144:74:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1509,
         "nodeType": "EmitStatement",
         "src": "17139:79:6"
        }
       ]
      },
      "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": 1511,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1424,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1415,
          "src": "16454:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1425,
        "modifierName": {
         "argumentTypes": null,
         "id": 1423,
         "name": "stateOpenOrPendingArbitration",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 860,
         "src": "16424:29:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "16424:42:6"
       }
      ],
      "name": "submitAnswerReveal",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1422,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1415,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1511,
         "src": "16349:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1414,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "16349:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1417,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 1511,
         "src": "16370:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1416,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "16370:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1419,
         "name": "nonce",
         "nodeType": "VariableDeclaration",
         "scope": 1511,
         "src": "16386:13:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1418,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "16386:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1421,
         "name": "bond",
         "nodeType": "VariableDeclaration",
         "scope": 1511,
         "src": "16401:12:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1420,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "16401:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "16348:66:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 1426,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "16480:0:6"
      },
      "scope": 2516,
      "src": "16321:905:6",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1569,
       "nodeType": "Block",
       "src": "17386:524:6",
       "statements": [
        {
         "assignments": [
          1525
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1525,
           "name": "new_history_hash",
           "nodeType": "VariableDeclaration",
           "scope": 1570,
           "src": "17396:24:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1524,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "17396:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1539,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1529,
                "name": "questions",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 676,
                "src": "17450:9:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                 "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                }
               },
               "id": 1531,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1530,
                "name": "question_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1513,
                "src": "17460:11:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "17450:22:6",
               "typeDescriptions": {
                "typeIdentifier": "t_struct$_Question_$647_storage",
                "typeString": "struct Realitio.Question storage ref"
               }
              },
              "id": 1532,
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "memberName": "history_hash",
              "nodeType": "MemberAccess",
              "referencedDeclaration": 644,
              "src": "17450:35:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1533,
              "name": "answer_or_commitment_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1515,
              "src": "17487:23:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1534,
              "name": "bond",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1519,
              "src": "17512:4:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             {
              "argumentTypes": null,
              "id": 1535,
              "name": "answerer",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1517,
              "src": "17518:8:6",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             {
              "argumentTypes": null,
              "id": 1536,
              "name": "is_commitment",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1521,
              "src": "17528:13:6",
              "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": 1527,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2643,
              "src": "17433:3:6",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 1528,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "17433:16:6",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 1537,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "17433:109:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 1526,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2650,
           "src": "17423:9:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 1538,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "17423:120:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "17396:147:6"
        },
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          },
          "id": 1542,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 1540,
           "name": "bond",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1519,
           "src": "17651:4:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": ">",
          "rightExpression": {
           "argumentTypes": null,
           "hexValue": "30",
           "id": 1541,
           "isConstant": false,
           "isLValue": false,
           "isPure": true,
           "kind": "number",
           "lValueRequested": false,
           "nodeType": "Literal",
           "src": "17658:1:6",
           "subdenomination": null,
           "typeDescriptions": {
            "typeIdentifier": "t_rational_0_by_1",
            "typeString": "int_const 0"
           },
           "value": "0"
          },
          "src": "17651:8:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 1551,
         "nodeType": "IfStatement",
         "src": "17647:73:6",
         "trueBody": {
          "id": 1550,
          "nodeType": "Block",
          "src": "17661:59:6",
          "statements": [
           {
            "expression": {
             "argumentTypes": null,
             "id": 1548,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1543,
                "name": "questions",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 676,
                "src": "17675:9:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                 "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                }
               },
               "id": 1545,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1544,
                "name": "question_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1513,
                "src": "17685:11:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "17675:22:6",
               "typeDescriptions": {
                "typeIdentifier": "t_struct$_Question_$647_storage",
                "typeString": "struct Realitio.Question storage ref"
               }
              },
              "id": 1546,
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "memberName": "bond",
              "nodeType": "MemberAccess",
              "referencedDeclaration": 646,
              "src": "17675:27:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "id": 1547,
              "name": "bond",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1519,
              "src": "17705:4:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "17675:34:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1549,
            "nodeType": "ExpressionStatement",
            "src": "17675:34:6"
           }
          ]
         }
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1557,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1552,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "17729:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 1554,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1553,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1513,
             "src": "17739:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "17729:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 1555,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "history_hash",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 644,
           "src": "17729:35:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1556,
           "name": "new_history_hash",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1525,
           "src": "17767:16:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "17729:54:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "id": 1558,
         "nodeType": "ExpressionStatement",
         "src": "17729:54:6"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1560,
            "name": "answer_or_commitment_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1515,
            "src": "17812:23:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1561,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1513,
            "src": "17837:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1562,
            "name": "new_history_hash",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1525,
            "src": "17850:16:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1563,
            "name": "answerer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1517,
            "src": "17868:8:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 1564,
            "name": "bond",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1519,
            "src": "17878:4:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 1565,
            "name": "now",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2658,
            "src": "17884:3:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 1566,
            "name": "is_commitment",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1521,
            "src": "17889:13:6",
            "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": 1559,
           "name": "LogNewAnswer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 592,
           "src": "17799:12:6",
           "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": 1567,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "17799:104:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1568,
         "nodeType": "EmitStatement",
         "src": "17794:109:6"
        }
       ]
      },
      "documentation": null,
      "id": 1570,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "_addAnswerToHistory",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1522,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1513,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1570,
         "src": "17261:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1512,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "17261:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1515,
         "name": "answer_or_commitment_id",
         "nodeType": "VariableDeclaration",
         "scope": 1570,
         "src": "17282:31:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1514,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "17282:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1517,
         "name": "answerer",
         "nodeType": "VariableDeclaration",
         "scope": 1570,
         "src": "17315:16:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1516,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "17315:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1519,
         "name": "bond",
         "nodeType": "VariableDeclaration",
         "scope": 1570,
         "src": "17333:12:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1518,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "17333:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1521,
         "name": "is_commitment",
         "nodeType": "VariableDeclaration",
         "scope": 1570,
         "src": "17347:18:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         },
         "typeName": {
          "id": 1520,
          "name": "bool",
          "nodeType": "ElementaryTypeName",
          "src": "17347:4:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "17260:106:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 1523,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "17386:0:6"
      },
      "scope": 2516,
      "src": "17232:678:6",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 1598,
       "nodeType": "Block",
       "src": "18017:136:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "id": 1584,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1579,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "18027:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 1581,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1580,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1572,
             "src": "18037:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "18027:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 1582,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "best_answer",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 642,
           "src": "18027:34:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1583,
           "name": "answer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1574,
           "src": "18064:6:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "18027:43:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "id": 1585,
         "nodeType": "ExpressionStatement",
         "src": "18027:43:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1596,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1586,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "18080:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 1588,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1587,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1572,
             "src": "18090:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "18080:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 1589,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "finalize_ts",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 636,
           "src": "18080:34:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "id": 1594,
             "name": "timeout_secs",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1576,
             "src": "18133:12:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            ],
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1591,
               "name": "now",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2658,
               "src": "18124:3:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 1590,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "ElementaryTypeNameExpression",
              "src": "18117:6:6",
              "typeDescriptions": {
               "typeIdentifier": "t_type$_t_uint32_$",
               "typeString": "type(uint32)"
              },
              "typeName": "uint32"
             },
             "id": 1592,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "typeConversion",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "18117:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "id": 1593,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "add",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 2640,
            "src": "18117:15:6",
            "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": 1595,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "18117:29:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "src": "18080:66:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "id": 1597,
         "nodeType": "ExpressionStatement",
         "src": "18080:66:6"
        }
       ]
      },
      "documentation": null,
      "id": 1599,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "_updateCurrentAnswer",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1577,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1572,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1599,
         "src": "17946:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1571,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "17946:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1574,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 1599,
         "src": "17967:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1573,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "17967:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1576,
         "name": "timeout_secs",
         "nodeType": "VariableDeclaration",
         "scope": 1599,
         "src": "17983:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 1575,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "17983:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "17945:58:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 1578,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "18017:0:6"
      },
      "scope": 2516,
      "src": "17916:237:6",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 1640,
       "nodeType": "Block",
       "src": "18883:257:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 1624,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1619,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 676,
               "src": "18901:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
               }
              },
              "id": 1621,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1620,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1601,
               "src": "18911:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "18901:22:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$647_storage",
               "typeString": "struct Realitio.Question storage ref"
              }
             },
             "id": 1622,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "bond",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 646,
             "src": "18901:27:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 1623,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "18931:1:6",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "18901:31:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "5175657374696f6e206d75737420616c7265616479206861766520616e20616e73776572207768656e206172626974726174696f6e20697320726571756573746564",
            "id": 1625,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "18934:68:6",
            "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": 1618,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "18893:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1626,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "18893:110:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1627,
         "nodeType": "ExpressionStatement",
         "src": "18893:110:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1633,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1628,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "19013:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 1630,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1629,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1601,
             "src": "19023:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "19013:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 1631,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "is_pending_arbitration",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 638,
           "src": "19013:45:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "hexValue": "74727565",
           "id": 1632,
           "isConstant": false,
           "isLValue": false,
           "isPure": true,
           "kind": "bool",
           "lValueRequested": false,
           "nodeType": "Literal",
           "src": "19061:4:6",
           "subdenomination": null,
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           },
           "value": "true"
          },
          "src": "19013:52:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "id": 1634,
         "nodeType": "ExpressionStatement",
         "src": "19013:52:6"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1636,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1601,
            "src": "19110:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1637,
            "name": "requester",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1603,
            "src": "19123:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           ],
           "id": 1635,
           "name": "LogNotifyOfArbitrationRequest",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 612,
           "src": "19080:29:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
            "typeString": "function (bytes32,address)"
           }
          },
          "id": 1638,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "19080:53:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1639,
         "nodeType": "EmitStatement",
         "src": "19075:58:6"
        }
       ]
      },
      "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": 1641,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1608,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1601,
          "src": "18756:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1609,
        "modifierName": {
         "argumentTypes": null,
         "id": 1607,
         "name": "onlyArbitrator",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 705,
         "src": "18741:14:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "18741:27:6"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1611,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1601,
          "src": "18787:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1612,
        "modifierName": {
         "argumentTypes": null,
         "id": 1610,
         "name": "stateOpen",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 790,
         "src": "18777:9:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "18777:22:6"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1614,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1601,
          "src": "18843:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         {
          "argumentTypes": null,
          "id": 1615,
          "name": "max_previous",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1605,
          "src": "18856:12:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         }
        ],
        "id": 1616,
        "modifierName": {
         "argumentTypes": null,
         "id": 1613,
         "name": "previousBondMustNotBeatMaxPrevious",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 937,
         "src": "18808:34:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
          "typeString": "modifier (bytes32,uint256)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "18808:61:6"
       }
      ],
      "name": "notifyOfArbitrationRequest",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1606,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1601,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1641,
         "src": "18670:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1600,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "18670:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1603,
         "name": "requester",
         "nodeType": "VariableDeclaration",
         "scope": 1641,
         "src": "18691:17:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1602,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "18691:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1605,
         "name": "max_previous",
         "nodeType": "VariableDeclaration",
         "scope": 1641,
         "src": "18710:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1604,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "18710:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "18669:62:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 1617,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "18883:0:6"
      },
      "scope": 2516,
      "src": "18634:506:6",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1691,
       "nodeType": "Block",
       "src": "19943:316:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            "id": 1661,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 1659,
             "name": "answerer",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1647,
             "src": "19962:8:6",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "!=",
            "rightExpression": {
             "argumentTypes": null,
             "id": 1660,
             "name": "NULL_ADDRESS",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 516,
             "src": "19974:12:6",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "src": "19962:24:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "616e737765726572206d7573742062652070726f7669646564",
            "id": 1662,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "19988:27:6",
            "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": 1658,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "19954:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1663,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "19954:62:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1664,
         "nodeType": "ExpressionStatement",
         "src": "19954:62:6"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1666,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1643,
            "src": "20043:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1667,
            "name": "answer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1645,
            "src": "20056:6:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           ],
           "id": 1665,
           "name": "LogFinalize",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 618,
           "src": "20031:11:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
            "typeString": "function (bytes32,bytes32)"
           }
          },
          "id": 1668,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "20031:32:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1669,
         "nodeType": "EmitStatement",
         "src": "20026:37:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1675,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1670,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "20074:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 1672,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1671,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1643,
             "src": "20084:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "20074:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 1673,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "is_pending_arbitration",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 638,
           "src": "20074:45:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "hexValue": "66616c7365",
           "id": 1674,
           "isConstant": false,
           "isLValue": false,
           "isPure": true,
           "kind": "bool",
           "lValueRequested": false,
           "nodeType": "Literal",
           "src": "20122:5:6",
           "subdenomination": null,
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           },
           "value": "false"
          },
          "src": "20074:53:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "id": 1676,
         "nodeType": "ExpressionStatement",
         "src": "20074:53:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1678,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1643,
            "src": "20157:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1679,
            "name": "answer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1645,
            "src": "20170:6:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1680,
            "name": "answerer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1647,
            "src": "20178:8:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "30",
            "id": 1681,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "number",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "20188:1:6",
            "subdenomination": null,
            "typeDescriptions": {
             "typeIdentifier": "t_rational_0_by_1",
             "typeString": "int_const 0"
            },
            "value": "0"
           },
           {
            "argumentTypes": null,
            "hexValue": "66616c7365",
            "id": 1682,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "bool",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "20191:5:6",
            "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": 1677,
           "name": "_addAnswerToHistory",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1570,
           "src": "20137:19:6",
           "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": 1683,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "20137:60:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1684,
         "nodeType": "ExpressionStatement",
         "src": "20137:60:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1686,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1643,
            "src": "20228:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1687,
            "name": "answer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1645,
            "src": "20241:6:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "30",
            "id": 1688,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "number",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "20249:1:6",
            "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": 1685,
           "name": "_updateCurrentAnswer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1599,
           "src": "20207:20:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
            "typeString": "function (bytes32,bytes32,uint32)"
           }
          },
          "id": 1689,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "20207:44:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1690,
         "nodeType": "ExpressionStatement",
         "src": "20207:44:6"
        }
       ]
      },
      "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": 1692,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1650,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1643,
          "src": "19849:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1651,
        "modifierName": {
         "argumentTypes": null,
         "id": 1649,
         "name": "onlyArbitrator",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 705,
         "src": "19834:14:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "19834:27:6"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1653,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1643,
          "src": "19894:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1654,
        "modifierName": {
         "argumentTypes": null,
         "id": 1652,
         "name": "statePendingArbitration",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 804,
         "src": "19870:23:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "19870:36:6"
       },
       {
        "arguments": null,
        "id": 1656,
        "modifierName": {
         "argumentTypes": null,
         "id": 1655,
         "name": "bondMustBeZero",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 885,
         "src": "19915:14:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$__$",
          "typeString": "modifier ()"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "19915:14:6"
       }
      ],
      "name": "submitAnswerByArbitrator",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1648,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1643,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1692,
         "src": "19770:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1642,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "19770:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1645,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 1692,
         "src": "19791:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1644,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "19791:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1647,
         "name": "answerer",
         "nodeType": "VariableDeclaration",
         "scope": 1692,
         "src": "19807:16:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1646,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "19807:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "19769:55:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 1657,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "19943:0:6"
      },
      "scope": 2516,
      "src": "19736:523:6",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1725,
       "nodeType": "Block",
       "src": "20511:201:6",
       "statements": [
        {
         "assignments": [
          1700
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1700,
           "name": "finalize_ts",
           "nodeType": "VariableDeclaration",
           "scope": 1726,
           "src": "20521:18:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           },
           "typeName": {
            "id": 1699,
            "name": "uint32",
            "nodeType": "ElementaryTypeName",
            "src": "20521:6:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1705,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1701,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "20542:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 1703,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1702,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1694,
            "src": "20552:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "20542:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 1704,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "finalize_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 636,
          "src": "20542:34:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "20521:55:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "components": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            },
            "id": 1722,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             },
             "id": 1715,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 1710,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "UnaryOperation",
              "operator": "!",
              "prefix": true,
              "src": "20595:46:6",
              "subExpression": {
               "argumentTypes": null,
               "expression": {
                "argumentTypes": null,
                "baseExpression": {
                 "argumentTypes": null,
                 "id": 1706,
                 "name": "questions",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 676,
                 "src": "20596:9:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                  "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                 }
                },
                "id": 1708,
                "indexExpression": {
                 "argumentTypes": null,
                 "id": 1707,
                 "name": "question_id",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1694,
                 "src": "20606:11:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "IndexAccess",
                "src": "20596:22:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_struct$_Question_$647_storage",
                 "typeString": "struct Realitio.Question storage ref"
                }
               },
               "id": 1709,
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "memberName": "is_pending_arbitration",
               "nodeType": "MemberAccess",
               "referencedDeclaration": 638,
               "src": "20596:45:6",
               "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": 1713,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftExpression": {
                 "argumentTypes": null,
                 "id": 1711,
                 "name": "finalize_ts",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1700,
                 "src": "20646:11:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                 }
                },
                "nodeType": "BinaryOperation",
                "operator": ">",
                "rightExpression": {
                 "argumentTypes": null,
                 "id": 1712,
                 "name": "UNANSWERED",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 524,
                 "src": "20660:10:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                 }
                },
                "src": "20646:24:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bool",
                 "typeString": "bool"
                }
               }
              ],
              "id": 1714,
              "isConstant": false,
              "isInlineArray": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "TupleExpression",
              "src": "20645:26:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bool",
               "typeString": "bool"
              }
             },
             "src": "20595:76:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "&&",
            "rightExpression": {
             "argumentTypes": null,
             "components": [
              {
               "argumentTypes": null,
               "commonType": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
               },
               "id": 1720,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "lValueRequested": false,
               "leftExpression": {
                "argumentTypes": null,
                "id": 1716,
                "name": "finalize_ts",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1700,
                "src": "20676:11:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint32",
                 "typeString": "uint32"
                }
               },
               "nodeType": "BinaryOperation",
               "operator": "<=",
               "rightExpression": {
                "argumentTypes": null,
                "arguments": [
                 {
                  "argumentTypes": null,
                  "id": 1718,
                  "name": "now",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2658,
                  "src": "20698:3:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 }
                ],
                "expression": {
                 "argumentTypes": [
                  {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 ],
                 "id": 1717,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": true,
                 "lValueRequested": false,
                 "nodeType": "ElementaryTypeNameExpression",
                 "src": "20691:6:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_uint32_$",
                  "typeString": "type(uint32)"
                 },
                 "typeName": "uint32"
                },
                "id": 1719,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "kind": "typeConversion",
                "lValueRequested": false,
                "names": [],
                "nodeType": "FunctionCall",
                "src": "20691:11:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint32",
                 "typeString": "uint32"
                }
               },
               "src": "20676:26:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
               }
              }
             ],
             "id": 1721,
             "isConstant": false,
             "isInlineArray": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "TupleExpression",
             "src": "20675:28:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "src": "20595:108:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           }
          ],
          "id": 1723,
          "isConstant": false,
          "isInlineArray": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "nodeType": "TupleExpression",
          "src": "20593:112:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "functionReturnParameters": 1698,
         "id": 1724,
         "nodeType": "Return",
         "src": "20586:119:6"
        }
       ]
      },
      "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": 1726,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "isFinalized",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1695,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1694,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1726,
         "src": "20458:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1693,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "20458:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "20457:21:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 1698,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1697,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 1726,
         "src": "20505:4:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         },
         "typeName": {
          "id": 1696,
          "name": "bool",
          "nodeType": "ElementaryTypeName",
          "src": "20505:4:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "20504:6:6"
      },
      "scope": 2516,
      "src": "20437:275:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 1741,
       "nodeType": "Block",
       "src": "21045:58:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1736,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "21062:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 1738,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1737,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1728,
            "src": "21072:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "21062:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 1739,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "best_answer",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 642,
          "src": "21062:34:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 1735,
         "id": 1740,
         "nodeType": "Return",
         "src": "21055:41:6"
        }
       ]
      },
      "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": 1742,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1731,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1728,
          "src": "20996:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1732,
        "modifierName": {
         "argumentTypes": null,
         "id": 1730,
         "name": "stateFinalized",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 873,
         "src": "20981:14:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "20981:27:6"
       }
      ],
      "name": "getFinalAnswer",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1729,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1728,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1742,
         "src": "20951:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1727,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "20951:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "20950:21:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 1735,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1734,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 1742,
         "src": "21036:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1733,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "21036:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "21035:9:6"
      },
      "scope": 2516,
      "src": "20927:176:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1757,
       "nodeType": "Block",
       "src": "21418:58:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1752,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "21435:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 1754,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1753,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1744,
            "src": "21445:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "21435:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 1755,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "best_answer",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 642,
          "src": "21435:34:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 1751,
         "id": 1756,
         "nodeType": "Return",
         "src": "21428:41:6"
        }
       ]
      },
      "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": 1758,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1747,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1744,
          "src": "21369:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1748,
        "modifierName": {
         "argumentTypes": null,
         "id": 1746,
         "name": "stateFinalized",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 873,
         "src": "21354:14:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "21354:27:6"
       }
      ],
      "name": "resultFor",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1745,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1744,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1758,
         "src": "21324:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1743,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "21324:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "21323:21:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 1751,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1750,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 1758,
         "src": "21409:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1749,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "21409:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "21408:9:6"
      },
      "scope": 2516,
      "src": "21305:171:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1821,
       "nodeType": "Block",
       "src": "22454:427:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            "id": 1782,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 1777,
             "name": "content_hash",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1762,
             "src": "22472:12:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "==",
            "rightExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1778,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 676,
               "src": "22488:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
               }
              },
              "id": 1780,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1779,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1760,
               "src": "22498:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "22488:22:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$647_storage",
               "typeString": "struct Realitio.Question storage ref"
              }
             },
             "id": 1781,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "content_hash",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 628,
             "src": "22488:35:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "src": "22472:51:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "636f6e74656e742068617368206d757374206d61746368",
            "id": 1783,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "22525:25:6",
            "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": 1776,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "22464:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1784,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "22464:87:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1785,
         "nodeType": "ExpressionStatement",
         "src": "22464:87:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            "id": 1792,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 1787,
             "name": "arbitrator",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1764,
             "src": "22569:10:6",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "==",
            "rightExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1788,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 676,
               "src": "22583:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
               }
              },
              "id": 1790,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1789,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1760,
               "src": "22593:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "22583:22:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$647_storage",
               "typeString": "struct Realitio.Question storage ref"
              }
             },
             "id": 1791,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "arbitrator",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 630,
             "src": "22583:33:6",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "src": "22569:47:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "61726269747261746f72206d757374206d61746368",
            "id": 1793,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "22618:23:6",
            "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": 1786,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "22561:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1794,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "22561:81:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1795,
         "nodeType": "ExpressionStatement",
         "src": "22561:81:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 1802,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 1797,
             "name": "min_timeout",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1766,
             "src": "22660:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "<=",
            "rightExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1798,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 676,
               "src": "22675:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
               }
              },
              "id": 1800,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1799,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1760,
               "src": "22685:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "22675:22:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$647_storage",
               "typeString": "struct Realitio.Question storage ref"
              }
             },
             "id": 1801,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "timeout",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 634,
             "src": "22675:30:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "src": "22660:45:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "74696d656f7574206d757374206265206c6f6e6720656e6f756768",
            "id": 1803,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "22707:29:6",
            "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": 1796,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "22652:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1804,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "22652:85:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1805,
         "nodeType": "ExpressionStatement",
         "src": "22652:85:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 1812,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 1807,
             "name": "min_bond",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1768,
             "src": "22755:8:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "<=",
            "rightExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1808,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 676,
               "src": "22767:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
               }
              },
              "id": 1810,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1809,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1760,
               "src": "22777:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "22767:22:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$647_storage",
               "typeString": "struct Realitio.Question storage ref"
              }
             },
             "id": 1811,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "bond",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 646,
             "src": "22767:27:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "src": "22755:39:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "626f6e64206d757374206265206869676820656e6f756768",
            "id": 1813,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "22796:26:6",
            "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": 1806,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "22747:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1814,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "22747:76:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1815,
         "nodeType": "ExpressionStatement",
         "src": "22747:76:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1816,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "22840:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 1818,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1817,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1760,
            "src": "22850:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "22840:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 1819,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "best_answer",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 642,
          "src": "22840:34:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 1775,
         "id": 1820,
         "nodeType": "Return",
         "src": "22833:41:6"
        }
       ]
      },
      "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": 1822,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1771,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1760,
          "src": "22405:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1772,
        "modifierName": {
         "argumentTypes": null,
         "id": 1770,
         "name": "stateFinalized",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 873,
         "src": "22390:14:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "22390:27:6"
       }
      ],
      "name": "getFinalAnswerIfMatches",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1769,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1760,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1822,
         "src": "22266:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1759,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "22266:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1762,
         "name": "content_hash",
         "nodeType": "VariableDeclaration",
         "scope": 1822,
         "src": "22296:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1761,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "22296:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1764,
         "name": "arbitrator",
         "nodeType": "VariableDeclaration",
         "scope": 1822,
         "src": "22318:18:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1763,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "22318:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1766,
         "name": "min_timeout",
         "nodeType": "VariableDeclaration",
         "scope": 1822,
         "src": "22338:18:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 1765,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "22338:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1768,
         "name": "min_bond",
         "nodeType": "VariableDeclaration",
         "scope": 1822,
         "src": "22358:16:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1767,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "22358:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "22256:124:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 1775,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1774,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 1822,
         "src": "22445:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1773,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "22445:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "22444:9:6"
      },
      "scope": 2516,
      "src": "22224:657:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 2022,
       "nodeType": "Block",
       "src": "24393:2585:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 1846,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "id": 1843,
              "name": "history_hashes",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1827,
              "src": "24412:14:6",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
               "typeString": "bytes32[] memory"
              }
             },
             "id": 1844,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "length",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "24412:21:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 1845,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "24436:1:6",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "24412:25:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "6174206c65617374206f6e6520686973746f7279206861736820656e747279206d7573742062652070726f7669646564",
            "id": 1847,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "24439:50:6",
            "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": 1842,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2659,
            2660
           ],
           "referencedDeclaration": 2660,
           "src": "24404:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1848,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "24404:86:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1849,
         "nodeType": "ExpressionStatement",
         "src": "24404:86:6"
        },
        {
         "assignments": [
          1851
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1851,
           "name": "payee",
           "nodeType": "VariableDeclaration",
           "scope": 2023,
           "src": "24581:13:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           },
           "typeName": {
            "id": 1850,
            "name": "address",
            "nodeType": "ElementaryTypeName",
            "src": "24581:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1856,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1852,
            "name": "question_claims",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 680,
            "src": "24597:15:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$661_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
            }
           },
           "id": 1854,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1853,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1824,
            "src": "24613:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "24597:28:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Claim_$661_storage",
            "typeString": "struct Realitio.Claim storage ref"
           }
          },
          "id": 1855,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "payee",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 656,
          "src": "24597:34:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "24581:50:6"
        },
        {
         "assignments": [
          1858
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1858,
           "name": "last_bond",
           "nodeType": "VariableDeclaration",
           "scope": 2023,
           "src": "24642:17:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 1857,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "24642:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1863,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1859,
            "name": "question_claims",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 680,
            "src": "24662:15:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$661_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
            }
           },
           "id": 1861,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1860,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1824,
            "src": "24678:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "24662:28:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Claim_$661_storage",
            "typeString": "struct Realitio.Claim storage ref"
           }
          },
          "id": 1862,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "last_bond",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 658,
          "src": "24662:38:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "24642:58:6"
        },
        {
         "assignments": [
          1865
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1865,
           "name": "queued_funds",
           "nodeType": "VariableDeclaration",
           "scope": 2023,
           "src": "24711:20:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 1864,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "24711:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1870,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1866,
            "name": "question_claims",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 680,
            "src": "24734:15:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$661_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
            }
           },
           "id": 1868,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1867,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1824,
            "src": "24750:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "24734:28:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Claim_$661_storage",
            "typeString": "struct Realitio.Claim storage ref"
           }
          },
          "id": 1869,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "queued_funds",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 660,
          "src": "24734:41:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "24711:64:6"
        },
        {
         "assignments": [
          1872
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1872,
           "name": "last_history_hash",
           "nodeType": "VariableDeclaration",
           "scope": 2023,
           "src": "24996:25:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1871,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "24996:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1877,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1873,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "25024:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 1875,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1874,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1824,
            "src": "25034:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "25024:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 1876,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "history_hash",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 644,
          "src": "25024:35:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "24996:63:6"
        },
        {
         "assignments": [
          1879
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1879,
           "name": "best_answer",
           "nodeType": "VariableDeclaration",
           "scope": 2023,
           "src": "25070:19:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1878,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "25070:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1884,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1880,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "25092:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 1882,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1881,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1824,
            "src": "25102:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "25092:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 1883,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "best_answer",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 642,
          "src": "25092:34:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "25070:56:6"
        },
        {
         "assignments": [],
         "declarations": [
          {
           "constant": false,
           "id": 1886,
           "name": "i",
           "nodeType": "VariableDeclaration",
           "scope": 2023,
           "src": "25137:9:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 1885,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "25137:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1887,
         "initialValue": null,
         "nodeType": "VariableDeclarationStatement",
         "src": "25137:9:6"
        },
        {
         "body": {
          "id": 1957,
          "nodeType": "Block",
          "src": "25200:702:6",
          "statements": [
           {
            "assignments": [
             1900
            ],
            "declarations": [
             {
              "constant": false,
              "id": 1900,
              "name": "is_commitment",
              "nodeType": "VariableDeclaration",
              "scope": 2023,
              "src": "25334:18:6",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
               "typeIdentifier": "t_bool",
               "typeString": "bool"
              },
              "typeName": {
               "id": 1899,
               "name": "bool",
               "nodeType": "ElementaryTypeName",
               "src": "25334:4:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 1916,
            "initialValue": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1902,
               "name": "last_history_hash",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1872,
               "src": "25383:17:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1903,
                "name": "history_hashes",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1827,
                "src": "25402:14:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                 "typeString": "bytes32[] memory"
                }
               },
               "id": 1905,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1904,
                "name": "i",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1886,
                "src": "25417:1:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "25402:17:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1906,
                "name": "answers",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1836,
                "src": "25421:7:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                 "typeString": "bytes32[] memory"
                }
               },
               "id": 1908,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1907,
                "name": "i",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1886,
                "src": "25429:1:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "25421:10:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1909,
                "name": "bonds",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1833,
                "src": "25433:5:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                 "typeString": "uint256[] memory"
                }
               },
               "id": 1911,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1910,
                "name": "i",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1886,
                "src": "25439:1:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "25433:8:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1912,
                "name": "addrs",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1830,
                "src": "25443:5:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                 "typeString": "address[] memory"
                }
               },
               "id": 1914,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1913,
                "name": "i",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1886,
                "src": "25449:1:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "25443:8:6",
               "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": 1901,
              "name": "_verifyHistoryInputOrRevert",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2102,
              "src": "25355:27:6",
              "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": 1915,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "25355:97:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "25334:118:6"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1922,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "id": 1917,
              "name": "queued_funds",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1865,
              "src": "25479:12:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 1920,
                "name": "last_bond",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1858,
                "src": "25511:9:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "expression": {
                "argumentTypes": null,
                "id": 1918,
                "name": "queued_funds",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1865,
                "src": "25494:12:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 1919,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "lValueRequested": false,
               "memberName": "add",
               "nodeType": "MemberAccess",
               "referencedDeclaration": 2613,
               "src": "25494:16:6",
               "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": 1921,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "25494:27:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "25479:42:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1923,
            "nodeType": "ExpressionStatement",
            "src": "25479:42:6"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1943,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "components": [
               {
                "argumentTypes": null,
                "id": 1924,
                "name": "queued_funds",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1865,
                "src": "25537:12:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               {
                "argumentTypes": null,
                "id": 1925,
                "name": "payee",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1851,
                "src": "25551:5:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               }
              ],
              "id": 1926,
              "isConstant": false,
              "isInlineArray": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "nodeType": "TupleExpression",
              "src": "25536:21:6",
              "typeDescriptions": {
               "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
               "typeString": "tuple(uint256,address)"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 1928,
                "name": "question_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1824,
                "src": "25597:11:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               {
                "argumentTypes": null,
                "id": 1929,
                "name": "best_answer",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1879,
                "src": "25610:11:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               {
                "argumentTypes": null,
                "id": 1930,
                "name": "queued_funds",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1865,
                "src": "25623:12:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               {
                "argumentTypes": null,
                "id": 1931,
                "name": "payee",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1851,
                "src": "25637:5:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               },
               {
                "argumentTypes": null,
                "baseExpression": {
                 "argumentTypes": null,
                 "id": 1932,
                 "name": "addrs",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1830,
                 "src": "25661:5:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                  "typeString": "address[] memory"
                 }
                },
                "id": 1934,
                "indexExpression": {
                 "argumentTypes": null,
                 "id": 1933,
                 "name": "i",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1886,
                 "src": "25667:1:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "IndexAccess",
                "src": "25661:8:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               },
               {
                "argumentTypes": null,
                "baseExpression": {
                 "argumentTypes": null,
                 "id": 1935,
                 "name": "bonds",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1833,
                 "src": "25671:5:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                  "typeString": "uint256[] memory"
                 }
                },
                "id": 1937,
                "indexExpression": {
                 "argumentTypes": null,
                 "id": 1936,
                 "name": "i",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1886,
                 "src": "25677:1:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "IndexAccess",
                "src": "25671:8:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               {
                "argumentTypes": null,
                "baseExpression": {
                 "argumentTypes": null,
                 "id": 1938,
                 "name": "answers",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1836,
                 "src": "25681:7:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                  "typeString": "bytes32[] memory"
                 }
                },
                "id": 1940,
                "indexExpression": {
                 "argumentTypes": null,
                 "id": 1939,
                 "name": "i",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1886,
                 "src": "25689:1:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "IndexAccess",
                "src": "25681:10:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               {
                "argumentTypes": null,
                "id": 1941,
                "name": "is_commitment",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1900,
                "src": "25693:13:6",
                "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": 1927,
               "name": "_processHistoryItem",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2229,
               "src": "25560:19:6",
               "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": 1942,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "25560:147:6",
              "typeDescriptions": {
               "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
               "typeString": "tuple(uint256,address)"
              }
             },
             "src": "25536:171:6",
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 1944,
            "nodeType": "ExpressionStatement",
            "src": "25536:171:6"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1949,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "id": 1945,
              "name": "last_bond",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1858,
              "src": "25819:9:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1946,
               "name": "bonds",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1833,
               "src": "25831:5:6",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                "typeString": "uint256[] memory"
               }
              },
              "id": 1948,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1947,
               "name": "i",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1886,
               "src": "25837:1:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "25831:8:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "25819:20:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1950,
            "nodeType": "ExpressionStatement",
            "src": "25819:20:6"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1955,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "id": 1951,
              "name": "last_history_hash",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1872,
              "src": "25853:17:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1952,
               "name": "history_hashes",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1827,
               "src": "25873:14:6",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                "typeString": "bytes32[] memory"
               }
              },
              "id": 1954,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1953,
               "name": "i",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1886,
               "src": "25888:1:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "25873:17:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             "src": "25853:37:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "id": 1956,
            "nodeType": "ExpressionStatement",
            "src": "25853:37:6"
           }
          ]
         },
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          },
          "id": 1895,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 1892,
           "name": "i",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1886,
           "src": "25168:1:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "<",
          "rightExpression": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "id": 1893,
            "name": "history_hashes",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1827,
            "src": "25172:14:6",
            "typeDescriptions": {
             "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
             "typeString": "bytes32[] memory"
            }
           },
           "id": 1894,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "length",
           "nodeType": "MemberAccess",
           "referencedDeclaration": null,
           "src": "25172:21:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "25168:25:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "id": 1958,
         "initializationExpression": {
          "expression": {
           "argumentTypes": null,
           "id": 1890,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "leftHandSide": {
            "argumentTypes": null,
            "id": 1888,
            "name": "i",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1886,
            "src": "25161:1:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "nodeType": "Assignment",
           "operator": "=",
           "rightHandSide": {
            "argumentTypes": null,
            "hexValue": "30",
            "id": 1889,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "number",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "25165:1:6",
            "subdenomination": null,
            "typeDescriptions": {
             "typeIdentifier": "t_rational_0_by_1",
             "typeString": "int_const 0"
            },
            "value": "0"
           },
           "src": "25161:5:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 1891,
          "nodeType": "ExpressionStatement",
          "src": "25161:5:6"
         },
         "loopExpression": {
          "expression": {
           "argumentTypes": null,
           "id": 1897,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "UnaryOperation",
           "operator": "++",
           "prefix": false,
           "src": "25195:3:6",
           "subExpression": {
            "argumentTypes": null,
            "id": 1896,
            "name": "i",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1886,
            "src": "25195:1:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 1898,
          "nodeType": "ExpressionStatement",
          "src": "25195:3:6"
         },
         "nodeType": "ForStatement",
         "src": "25156:746:6"
        },
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          },
          "id": 1961,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 1959,
           "name": "last_history_hash",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1872,
           "src": "25917:17:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "!=",
          "rightExpression": {
           "argumentTypes": null,
           "id": 1960,
           "name": "NULL_HASH",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 521,
           "src": "25938:9:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "25917:30:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": {
          "id": 2013,
          "nodeType": "Block",
          "src": "26692:213:6",
          "statements": [
           {
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 2000,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1824,
               "src": "26797:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 2001,
               "name": "payee",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1851,
               "src": "26810:5:6",
               "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
               }
              },
              {
               "argumentTypes": null,
               "arguments": [
                {
                 "argumentTypes": null,
                 "id": 2004,
                 "name": "last_bond",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1858,
                 "src": "26834:9:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                }
               ],
               "expression": {
                "argumentTypes": [
                 {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                ],
                "expression": {
                 "argumentTypes": null,
                 "id": 2002,
                 "name": "queued_funds",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1865,
                 "src": "26817:12:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "id": 2003,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "memberName": "add",
                "nodeType": "MemberAccess",
                "referencedDeclaration": 2613,
                "src": "26817:16:6",
                "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": 2005,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "kind": "functionCall",
               "lValueRequested": false,
               "names": [],
               "nodeType": "FunctionCall",
               "src": "26817:27:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               },
               {
                "typeIdentifier": "t_address",
                "typeString": "address"
               },
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 1999,
              "name": "_payPayee",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2050,
              "src": "26787:9:6",
              "typeDescriptions": {
               "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
               "typeString": "function (bytes32,address,uint256)"
              }
             },
             "id": 2006,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "26787:58:6",
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 2007,
            "nodeType": "ExpressionStatement",
            "src": "26787:58:6"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 2011,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "UnaryOperation",
             "operator": "delete",
             "prefix": true,
             "src": "26859:35:6",
             "subExpression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 2008,
               "name": "question_claims",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 680,
               "src": "26866:15:6",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$661_storage_$",
                "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
               }
              },
              "id": 2010,
              "indexExpression": {
               "argumentTypes": null,
               "id": 2009,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1824,
               "src": "26882:11:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "nodeType": "IndexAccess",
              "src": "26866:28:6",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Claim_$661_storage",
               "typeString": "struct Realitio.Claim storage ref"
              }
             },
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 2012,
            "nodeType": "ExpressionStatement",
            "src": "26859:35:6"
           }
          ]
         },
         "id": 2014,
         "nodeType": "IfStatement",
         "src": "25913:992:6",
         "trueBody": {
          "id": 1998,
          "nodeType": "Block",
          "src": "25949:737:6",
          "statements": [
           {
            "condition": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             },
             "id": 1964,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 1962,
              "name": "payee",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1851,
              "src": "26352:5:6",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "!=",
             "rightExpression": {
              "argumentTypes": null,
              "id": 1963,
              "name": "NULL_ADDRESS",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 516,
              "src": "26361:12:6",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "src": "26352:21:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "falseBody": null,
            "id": 1976,
            "nodeType": "IfStatement",
            "src": "26348:137:6",
            "trueBody": {
             "id": 1975,
             "nodeType": "Block",
             "src": "26375:110:6",
             "statements": [
              {
               "expression": {
                "argumentTypes": null,
                "arguments": [
                 {
                  "argumentTypes": null,
                  "id": 1966,
                  "name": "question_id",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1824,
                  "src": "26403:11:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_bytes32",
                   "typeString": "bytes32"
                  }
                 },
                 {
                  "argumentTypes": null,
                  "id": 1967,
                  "name": "payee",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1851,
                  "src": "26416:5:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_address",
                   "typeString": "address"
                  }
                 },
                 {
                  "argumentTypes": null,
                  "id": 1968,
                  "name": "queued_funds",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1865,
                  "src": "26423:12:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 }
                ],
                "expression": {
                 "argumentTypes": [
                  {
                   "typeIdentifier": "t_bytes32",
                   "typeString": "bytes32"
                  },
                  {
                   "typeIdentifier": "t_address",
                   "typeString": "address"
                  },
                  {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 ],
                 "id": 1965,
                 "name": "_payPayee",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 2050,
                 "src": "26393:9:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                  "typeString": "function (bytes32,address,uint256)"
                 }
                },
                "id": 1969,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "kind": "functionCall",
                "lValueRequested": false,
                "names": [],
                "nodeType": "FunctionCall",
                "src": "26393:43:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_tuple$__$",
                 "typeString": "tuple()"
                }
               },
               "id": 1970,
               "nodeType": "ExpressionStatement",
               "src": "26393:43:6"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 1973,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "id": 1971,
                 "name": "queued_funds",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1865,
                 "src": "26454:12:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "hexValue": "30",
                 "id": 1972,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": true,
                 "kind": "number",
                 "lValueRequested": false,
                 "nodeType": "Literal",
                 "src": "26469:1:6",
                 "subdenomination": null,
                 "typeDescriptions": {
                  "typeIdentifier": "t_rational_0_by_1",
                  "typeString": "int_const 0"
                 },
                 "value": "0"
                },
                "src": "26454:16:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 1974,
               "nodeType": "ExpressionStatement",
               "src": "26454:16:6"
              }
             ]
            }
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1982,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1977,
                "name": "question_claims",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 680,
                "src": "26499:15:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$661_storage_$",
                 "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
                }
               },
               "id": 1979,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1978,
                "name": "question_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1824,
                "src": "26515:11:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "26499:28:6",
               "typeDescriptions": {
                "typeIdentifier": "t_struct$_Claim_$661_storage",
                "typeString": "struct Realitio.Claim storage ref"
               }
              },
              "id": 1980,
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "memberName": "payee",
              "nodeType": "MemberAccess",
              "referencedDeclaration": 656,
              "src": "26499:34:6",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "id": 1981,
              "name": "payee",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1851,
              "src": "26536:5:6",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "src": "26499:42:6",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "id": 1983,
            "nodeType": "ExpressionStatement",
            "src": "26499:42:6"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1989,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1984,
                "name": "question_claims",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 680,
                "src": "26555:15:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$661_storage_$",
                 "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
                }
               },
               "id": 1986,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1985,
                "name": "question_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1824,
                "src": "26571:11:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "26555:28:6",
               "typeDescriptions": {
                "typeIdentifier": "t_struct$_Claim_$661_storage",
                "typeString": "struct Realitio.Claim storage ref"
               }
              },
              "id": 1987,
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "memberName": "last_bond",
              "nodeType": "MemberAccess",
              "referencedDeclaration": 658,
              "src": "26555:38:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "id": 1988,
              "name": "last_bond",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1858,
              "src": "26596:9:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "26555:50:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1990,
            "nodeType": "ExpressionStatement",
            "src": "26555:50:6"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1996,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1991,
                "name": "question_claims",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 680,
                "src": "26619:15:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$661_storage_$",
                 "typeString": "mapping(bytes32 => struct Realitio.Claim storage ref)"
                }
               },
               "id": 1993,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1992,
                "name": "question_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1824,
                "src": "26635:11:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "26619:28:6",
               "typeDescriptions": {
                "typeIdentifier": "t_struct$_Claim_$661_storage",
                "typeString": "struct Realitio.Claim storage ref"
               }
              },
              "id": 1994,
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "memberName": "queued_funds",
              "nodeType": "MemberAccess",
              "referencedDeclaration": 660,
              "src": "26619:41:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "id": 1995,
              "name": "queued_funds",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1865,
              "src": "26663:12:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "26619:56:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1997,
            "nodeType": "ExpressionStatement",
            "src": "26619:56:6"
           }
          ]
         }
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 2020,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 2015,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 676,
             "src": "26915:9:6",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
              "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
             }
            },
            "id": 2017,
            "indexExpression": {
             "argumentTypes": null,
             "id": 2016,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1824,
             "src": "26925:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "26915:22:6",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$647_storage",
             "typeString": "struct Realitio.Question storage ref"
            }
           },
           "id": 2018,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "history_hash",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 644,
           "src": "26915:35:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 2019,
           "name": "last_history_hash",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1872,
           "src": "26953:17:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "26915:55:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "id": 2021,
         "nodeType": "ExpressionStatement",
         "src": "26915:55:6"
        }
       ]
      },
      "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": 2023,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1839,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1824,
          "src": "24369:11:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1840,
        "modifierName": {
         "argumentTypes": null,
         "id": 1838,
         "name": "stateFinalized",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 873,
         "src": "24354:14:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "24354:27:6"
       }
      ],
      "name": "claimWinnings",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1837,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1824,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2023,
         "src": "24231:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1823,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "24231:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1827,
         "name": "history_hashes",
         "nodeType": "VariableDeclaration",
         "scope": 2023,
         "src": "24261:24:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
          "typeString": "bytes32[]"
         },
         "typeName": {
          "baseType": {
           "id": 1825,
           "name": "bytes32",
           "nodeType": "ElementaryTypeName",
           "src": "24261:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "id": 1826,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "24261:9:6",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
           "typeString": "bytes32[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1830,
         "name": "addrs",
         "nodeType": "VariableDeclaration",
         "scope": 2023,
         "src": "24287:15:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
          "typeString": "address[]"
         },
         "typeName": {
          "baseType": {
           "id": 1828,
           "name": "address",
           "nodeType": "ElementaryTypeName",
           "src": "24287:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "id": 1829,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "24287:9:6",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
           "typeString": "address[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1833,
         "name": "bonds",
         "nodeType": "VariableDeclaration",
         "scope": 2023,
         "src": "24304:15:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
          "typeString": "uint256[]"
         },
         "typeName": {
          "baseType": {
           "id": 1831,
           "name": "uint256",
           "nodeType": "ElementaryTypeName",
           "src": "24304:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 1832,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "24304:9:6",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
           "typeString": "uint256[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1836,
         "name": "answers",
         "nodeType": "VariableDeclaration",
         "scope": 2023,
         "src": "24321:17:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
          "typeString": "bytes32[]"
         },
         "typeName": {
          "baseType": {
           "id": 1834,
           "name": "bytes32",
           "nodeType": "ElementaryTypeName",
           "src": "24321:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "id": 1835,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "24321:9:6",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
           "typeString": "bytes32[]"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "24221:123:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 1841,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "24393:0:6"
      },
      "scope": 2516,
      "src": "24199:2779:6",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2049,
       "nodeType": "Block",
       "src": "27068:113:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "id": 2041,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2032,
            "name": "balanceOf",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 317,
            "src": "27078:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
             "typeString": "mapping(address => uint256)"
            }
           },
           "id": 2034,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2033,
            "name": "payee",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2027,
            "src": "27088:5:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "nodeType": "IndexAccess",
           "src": "27078:16:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "id": 2039,
             "name": "value",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2029,
             "src": "27118:5:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            ],
            "expression": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 2035,
              "name": "balanceOf",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 317,
              "src": "27097:9:6",
              "typeDescriptions": {
               "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
               "typeString": "mapping(address => uint256)"
              }
             },
             "id": 2037,
             "indexExpression": {
              "argumentTypes": null,
              "id": 2036,
              "name": "payee",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2027,
              "src": "27107:5:6",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "27097:16:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 2038,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "add",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 2613,
            "src": "27097:20:6",
            "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": 2040,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "27097:27:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "27078:46:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 2042,
         "nodeType": "ExpressionStatement",
         "src": "27078:46:6"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 2044,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2025,
            "src": "27148:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 2045,
            "name": "payee",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2027,
            "src": "27161:5:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 2046,
            "name": "value",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2029,
            "src": "27168:5:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           ],
           "id": 2043,
           "name": "LogClaim",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 626,
           "src": "27139:8:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
            "typeString": "function (bytes32,address,uint256)"
           }
          },
          "id": 2047,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "27139:35:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 2048,
         "nodeType": "EmitStatement",
         "src": "27134:40:6"
        }
       ]
      },
      "documentation": null,
      "id": 2050,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "_payPayee",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2030,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2025,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2050,
         "src": "27003:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2024,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "27003:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2027,
         "name": "payee",
         "nodeType": "VariableDeclaration",
         "scope": 2050,
         "src": "27024:13:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 2026,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "27024:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2029,
         "name": "value",
         "nodeType": "VariableDeclaration",
         "scope": 2050,
         "src": "27039:13:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 2028,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "27039:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "27002:51:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2031,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "27068:0:6"
      },
      "scope": 2516,
      "src": "26984:197:6",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 2101,
       "nodeType": "Block",
       "src": "27372:364:6",
       "statements": [
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          },
          "id": 2076,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 2065,
           "name": "last_history_hash",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2052,
           "src": "27386:17:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "==",
          "rightExpression": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 2069,
               "name": "history_hash",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2054,
               "src": "27434:12:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 2070,
               "name": "answer",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2056,
               "src": "27448:6:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 2071,
               "name": "bond",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2058,
               "src": "27456:4:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              {
               "argumentTypes": null,
               "id": 2072,
               "name": "addr",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2060,
               "src": "27462:4:6",
               "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
               }
              },
              {
               "argumentTypes": null,
               "hexValue": "74727565",
               "id": 2073,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "kind": "bool",
               "lValueRequested": false,
               "nodeType": "Literal",
               "src": "27468:4:6",
               "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": 2067,
               "name": "abi",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2643,
               "src": "27417:3:6",
               "typeDescriptions": {
                "typeIdentifier": "t_magic_abi",
                "typeString": "abi"
               }
              },
              "id": 2068,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "memberName": "encodePacked",
              "nodeType": "MemberAccess",
              "referencedDeclaration": null,
              "src": "27417:16:6",
              "typeDescriptions": {
               "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
               "typeString": "function () pure returns (bytes memory)"
              }
             },
             "id": 2074,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "27417:56:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes_memory_ptr",
              "typeString": "bytes memory"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_bytes_memory_ptr",
              "typeString": "bytes memory"
             }
            ],
            "id": 2066,
            "name": "keccak256",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2650,
            "src": "27407:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
             "typeString": "function () pure returns (bytes32)"
            }
           },
           "id": 2075,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "27407:67:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "27386:88:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 2080,
         "nodeType": "IfStatement",
         "src": "27382:131:6",
         "trueBody": {
          "id": 2079,
          "nodeType": "Block",
          "src": "27477:36:6",
          "statements": [
           {
            "expression": {
             "argumentTypes": null,
             "hexValue": "74727565",
             "id": 2077,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "bool",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "27498:4:6",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             },
             "value": "true"
            },
            "functionReturnParameters": 2064,
            "id": 2078,
            "nodeType": "Return",
            "src": "27491:11:6"
           }
          ]
         }
        },
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          },
          "id": 2092,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 2081,
           "name": "last_history_hash",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2052,
           "src": "27526:17:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "==",
          "rightExpression": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 2085,
               "name": "history_hash",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2054,
               "src": "27574:12:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 2086,
               "name": "answer",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2056,
               "src": "27588:6:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 2087,
               "name": "bond",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2058,
               "src": "27596:4:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              {
               "argumentTypes": null,
               "id": 2088,
               "name": "addr",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2060,
               "src": "27602:4:6",
               "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
               }
              },
              {
               "argumentTypes": null,
               "hexValue": "66616c7365",
               "id": 2089,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "kind": "bool",
               "lValueRequested": false,
               "nodeType": "Literal",
               "src": "27608:5:6",
               "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": 2083,
               "name": "abi",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2643,
               "src": "27557:3:6",
               "typeDescriptions": {
                "typeIdentifier": "t_magic_abi",
                "typeString": "abi"
               }
              },
              "id": 2084,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "memberName": "encodePacked",
              "nodeType": "MemberAccess",
              "referencedDeclaration": null,
              "src": "27557:16:6",
              "typeDescriptions": {
               "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
               "typeString": "function () pure returns (bytes memory)"
              }
             },
             "id": 2090,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "27557:57:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes_memory_ptr",
              "typeString": "bytes memory"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_bytes_memory_ptr",
              "typeString": "bytes memory"
             }
            ],
            "id": 2082,
            "name": "keccak256",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2650,
            "src": "27547:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
             "typeString": "function () pure returns (bytes32)"
            }
           },
           "id": 2091,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "27547:68:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "27526:89:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 2096,
         "nodeType": "IfStatement",
         "src": "27522:133:6",
         "trueBody": {
          "id": 2095,
          "nodeType": "Block",
          "src": "27618:37:6",
          "statements": [
           {
            "expression": {
             "argumentTypes": null,
             "hexValue": "66616c7365",
             "id": 2093,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "bool",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "27639:5:6",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             },
             "value": "false"
            },
            "functionReturnParameters": 2064,
            "id": 2094,
            "nodeType": "Return",
            "src": "27632:12:6"
           }
          ]
         }
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "hexValue": "486973746f727920696e7075742070726f766964656420646964206e6f74206d61746368207468652065787065637465642068617368",
            "id": 2098,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "27672:56:6",
            "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": 2097,
           "name": "revert",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2661,
            2662
           ],
           "referencedDeclaration": 2662,
           "src": "27665:6:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (string memory) pure"
           }
          },
          "id": 2099,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "27665:64:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 2100,
         "nodeType": "ExpressionStatement",
         "src": "27665:64:6"
        }
       ]
      },
      "documentation": null,
      "id": 2102,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "_verifyHistoryInputOrRevert",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2061,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2052,
         "name": "last_history_hash",
         "nodeType": "VariableDeclaration",
         "scope": 2102,
         "src": "27233:25:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2051,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "27233:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2054,
         "name": "history_hash",
         "nodeType": "VariableDeclaration",
         "scope": 2102,
         "src": "27268:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2053,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "27268:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2056,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 2102,
         "src": "27290:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2055,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "27290:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2058,
         "name": "bond",
         "nodeType": "VariableDeclaration",
         "scope": 2102,
         "src": "27306:12:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 2057,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "27306:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2060,
         "name": "addr",
         "nodeType": "VariableDeclaration",
         "scope": 2102,
         "src": "27320:12:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 2059,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "27320:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "27223:115:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2064,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2063,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2102,
         "src": "27366:4:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         },
         "typeName": {
          "id": 2062,
          "name": "bool",
          "nodeType": "ElementaryTypeName",
          "src": "27366:4:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "27365:6:6"
      },
      "scope": 2516,
      "src": "27187:549:6",
      "stateMutability": "pure",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 2228,
       "nodeType": "Block",
       "src": "27986:2168:6",
       "statements": [
        {
         "condition": {
          "argumentTypes": null,
          "id": 2125,
          "name": "is_commitment",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 2118,
          "src": "28185:13:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 2160,
         "nodeType": "IfStatement",
         "src": "28181:482:6",
         "trueBody": {
          "id": 2159,
          "nodeType": "Block",
          "src": "28200:463:6",
          "statements": [
           {
            "assignments": [
             2127
            ],
            "declarations": [
             {
              "constant": false,
              "id": 2127,
              "name": "commitment_id",
              "nodeType": "VariableDeclaration",
              "scope": 2229,
              "src": "28214:21:6",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              },
              "typeName": {
               "id": 2126,
               "name": "bytes32",
               "nodeType": "ElementaryTypeName",
               "src": "28214:7:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2129,
            "initialValue": {
             "argumentTypes": null,
             "id": 2128,
             "name": "answer",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2116,
             "src": "28238:6:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "28214:30:6"
           },
           {
            "condition": {
             "argumentTypes": null,
             "id": 2134,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "UnaryOperation",
             "operator": "!",
             "prefix": true,
             "src": "28359:39:6",
             "subExpression": {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 2130,
                "name": "commitments",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 684,
                "src": "28360:11:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$654_storage_$",
                 "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                }
               },
               "id": 2132,
               "indexExpression": {
                "argumentTypes": null,
                "id": 2131,
                "name": "commitment_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 2127,
                "src": "28372:13:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "28360:26:6",
               "typeDescriptions": {
                "typeIdentifier": "t_struct$_Commitment_$654_storage",
                "typeString": "struct Realitio.Commitment storage ref"
               }
              },
              "id": 2133,
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "memberName": "is_revealed",
              "nodeType": "MemberAccess",
              "referencedDeclaration": 651,
              "src": "28360:38:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bool",
               "typeString": "bool"
              }
             },
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "falseBody": {
             "id": 2157,
             "nodeType": "Block",
             "src": "28518:135:6",
             "statements": [
              {
               "expression": {
                "argumentTypes": null,
                "id": 2150,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "id": 2145,
                 "name": "answer",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 2116,
                 "src": "28536:6:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "expression": {
                  "argumentTypes": null,
                  "baseExpression": {
                   "argumentTypes": null,
                   "id": 2146,
                   "name": "commitments",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 684,
                   "src": "28545:11:6",
                   "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$654_storage_$",
                    "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                   }
                  },
                  "id": 2148,
                  "indexExpression": {
                   "argumentTypes": null,
                   "id": 2147,
                   "name": "commitment_id",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 2127,
                   "src": "28557:13:6",
                   "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                   }
                  },
                  "isConstant": false,
                  "isLValue": true,
                  "isPure": false,
                  "lValueRequested": false,
                  "nodeType": "IndexAccess",
                  "src": "28545:26:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_struct$_Commitment_$654_storage",
                   "typeString": "struct Realitio.Commitment storage ref"
                  }
                 },
                 "id": 2149,
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "memberName": "revealed_answer",
                 "nodeType": "MemberAccess",
                 "referencedDeclaration": 653,
                 "src": "28545:42:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "src": "28536:51:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 2151,
               "nodeType": "ExpressionStatement",
               "src": "28536:51:6"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 2155,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "UnaryOperation",
                "operator": "delete",
                "prefix": true,
                "src": "28605:33:6",
                "subExpression": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2152,
                  "name": "commitments",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 684,
                  "src": "28612:11:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$654_storage_$",
                   "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                  }
                 },
                 "id": 2154,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2153,
                  "name": "commitment_id",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2127,
                  "src": "28624:13:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_bytes32",
                   "typeString": "bytes32"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "28612:26:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Commitment_$654_storage",
                  "typeString": "struct Realitio.Commitment storage ref"
                 }
                },
                "typeDescriptions": {
                 "typeIdentifier": "t_tuple$__$",
                 "typeString": "tuple()"
                }
               },
               "id": 2156,
               "nodeType": "ExpressionStatement",
               "src": "28605:33:6"
              }
             ]
            },
            "id": 2158,
            "nodeType": "IfStatement",
            "src": "28355:298:6",
            "trueBody": {
             "id": 2144,
             "nodeType": "Block",
             "src": "28400:112:6",
             "statements": [
              {
               "expression": {
                "argumentTypes": null,
                "id": 2138,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "UnaryOperation",
                "operator": "delete",
                "prefix": true,
                "src": "28418:33:6",
                "subExpression": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2135,
                  "name": "commitments",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 684,
                  "src": "28425:11:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$654_storage_$",
                   "typeString": "mapping(bytes32 => struct Realitio.Commitment storage ref)"
                  }
                 },
                 "id": 2137,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2136,
                  "name": "commitment_id",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2127,
                  "src": "28437:13:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_bytes32",
                   "typeString": "bytes32"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "28425:26:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Commitment_$654_storage",
                  "typeString": "struct Realitio.Commitment storage ref"
                 }
                },
                "typeDescriptions": {
                 "typeIdentifier": "t_tuple$__$",
                 "typeString": "tuple()"
                }
               },
               "id": 2139,
               "nodeType": "ExpressionStatement",
               "src": "28418:33:6"
              },
              {
               "expression": {
                "argumentTypes": null,
                "components": [
                 {
                  "argumentTypes": null,
                  "id": 2140,
                  "name": "queued_funds",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2108,
                  "src": "28477:12:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 {
                  "argumentTypes": null,
                  "id": 2141,
                  "name": "payee",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2110,
                  "src": "28491:5:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_address",
                   "typeString": "address"
                  }
                 }
                ],
                "id": 2142,
                "isConstant": false,
                "isInlineArray": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "TupleExpression",
                "src": "28476:21:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                 "typeString": "tuple(uint256,address)"
                }
               },
               "functionReturnParameters": 2124,
               "id": 2143,
               "nodeType": "Return",
               "src": "28469:28:6"
              }
             ]
            }
           }
          ]
         }
        },
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          },
          "id": 2163,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 2161,
           "name": "answer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2116,
           "src": "28677:6:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "==",
          "rightExpression": {
           "argumentTypes": null,
           "id": 2162,
           "name": "best_answer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2106,
           "src": "28687:11:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "28677:21:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 2223,
         "nodeType": "IfStatement",
         "src": "28673:1435:6",
         "trueBody": {
          "id": 2222,
          "nodeType": "Block",
          "src": "28700:1408:6",
          "statements": [
           {
            "condition": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             },
             "id": 2166,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 2164,
              "name": "payee",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2110,
              "src": "28719:5:6",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "==",
             "rightExpression": {
              "argumentTypes": null,
              "id": 2165,
              "name": "NULL_ADDRESS",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 516,
              "src": "28728:12:6",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "src": "28719:21:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "falseBody": {
             "condition": {
              "argumentTypes": null,
              "commonType": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              },
              "id": 2191,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "leftExpression": {
               "argumentTypes": null,
               "id": 2189,
               "name": "addr",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2112,
               "src": "29058:4:6",
               "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
               }
              },
              "nodeType": "BinaryOperation",
              "operator": "!=",
              "rightExpression": {
               "argumentTypes": null,
               "id": 2190,
               "name": "payee",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2110,
               "src": "29066:5:6",
               "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
               }
              },
              "src": "29058:13:6",
              "typeDescriptions": {
               "typeIdentifier": "t_bool",
               "typeString": "bool"
              }
             },
             "falseBody": null,
             "id": 2220,
             "nodeType": "IfStatement",
             "src": "29054:1043:6",
             "trueBody": {
              "id": 2219,
              "nodeType": "Block",
              "src": "29073:1024:6",
              "statements": [
               {
                "assignments": [
                 2193
                ],
                "declarations": [
                 {
                  "constant": false,
                  "id": 2193,
                  "name": "answer_takeover_fee",
                  "nodeType": "VariableDeclaration",
                  "scope": 2229,
                  "src": "29692:27:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  },
                  "typeName": {
                   "id": 2192,
                   "name": "uint256",
                   "nodeType": "ElementaryTypeName",
                   "src": "29692:7:6",
                   "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  },
                  "value": null,
                  "visibility": "internal"
                 }
                ],
                "id": 2201,
                "initialValue": {
                 "argumentTypes": null,
                 "condition": {
                  "argumentTypes": null,
                  "components": [
                   {
                    "argumentTypes": null,
                    "commonType": {
                     "typeIdentifier": "t_uint256",
                     "typeString": "uint256"
                    },
                    "id": 2196,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                     "argumentTypes": null,
                     "id": 2194,
                     "name": "queued_funds",
                     "nodeType": "Identifier",
                     "overloadedDeclarations": [],
                     "referencedDeclaration": 2108,
                     "src": "29723:12:6",
                     "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                     }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                     "argumentTypes": null,
                     "id": 2195,
                     "name": "bond",
                     "nodeType": "Identifier",
                     "overloadedDeclarations": [],
                     "referencedDeclaration": 2114,
                     "src": "29739:4:6",
                     "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                     }
                    },
                    "src": "29723:20:6",
                    "typeDescriptions": {
                     "typeIdentifier": "t_bool",
                     "typeString": "bool"
                    }
                   }
                  ],
                  "id": 2197,
                  "isConstant": false,
                  "isInlineArray": false,
                  "isLValue": false,
                  "isPure": false,
                  "lValueRequested": false,
                  "nodeType": "TupleExpression",
                  "src": "29722:22:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_bool",
                   "typeString": "bool"
                  }
                 },
                 "falseExpression": {
                  "argumentTypes": null,
                  "id": 2199,
                  "name": "queued_funds",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2108,
                  "src": "29754:12:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "id": 2200,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": false,
                 "lValueRequested": false,
                 "nodeType": "Conditional",
                 "src": "29722:44:6",
                 "trueExpression": {
                  "argumentTypes": null,
                  "id": 2198,
                  "name": "bond",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2114,
                  "src": "29747:4:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "nodeType": "VariableDeclarationStatement",
                "src": "29692:74:6"
               },
               {
                "expression": {
                 "argumentTypes": null,
                 "arguments": [
                  {
                   "argumentTypes": null,
                   "id": 2203,
                   "name": "question_id",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 2104,
                   "src": "29859:11:6",
                   "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                   }
                  },
                  {
                   "argumentTypes": null,
                   "id": 2204,
                   "name": "payee",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 2110,
                   "src": "29872:5:6",
                   "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                   }
                  },
                  {
                   "argumentTypes": null,
                   "arguments": [
                    {
                     "argumentTypes": null,
                     "id": 2207,
                     "name": "answer_takeover_fee",
                     "nodeType": "Identifier",
                     "overloadedDeclarations": [],
                     "referencedDeclaration": 2193,
                     "src": "29896:19:6",
                     "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                     }
                    }
                   ],
                   "expression": {
                    "argumentTypes": [
                     {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                     }
                    ],
                    "expression": {
                     "argumentTypes": null,
                     "id": 2205,
                     "name": "queued_funds",
                     "nodeType": "Identifier",
                     "overloadedDeclarations": [],
                     "referencedDeclaration": 2108,
                     "src": "29879:12:6",
                     "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                     }
                    },
                    "id": 2206,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "sub",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2589,
                    "src": "29879:16:6",
                    "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": 2208,
                   "isConstant": false,
                   "isLValue": false,
                   "isPure": false,
                   "kind": "functionCall",
                   "lValueRequested": false,
                   "names": [],
                   "nodeType": "FunctionCall",
                   "src": "29879:37:6",
                   "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  }
                 ],
                 "expression": {
                  "argumentTypes": [
                   {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                   },
                   {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                   },
                   {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  ],
                  "id": 2202,
                  "name": "_payPayee",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2050,
                  "src": "29849:9:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                   "typeString": "function (bytes32,address,uint256)"
                  }
                 },
                 "id": 2209,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": false,
                 "kind": "functionCall",
                 "lValueRequested": false,
                 "names": [],
                 "nodeType": "FunctionCall",
                 "src": "29849:68:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_tuple$__$",
                  "typeString": "tuple()"
                 }
                },
                "id": 2210,
                "nodeType": "ExpressionStatement",
                "src": "29849:68:6"
               },
               {
                "expression": {
                 "argumentTypes": null,
                 "id": 2213,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": false,
                 "lValueRequested": false,
                 "leftHandSide": {
                  "argumentTypes": null,
                  "id": 2211,
                  "name": "payee",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2110,
                  "src": "30017:5:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_address",
                   "typeString": "address"
                  }
                 },
                 "nodeType": "Assignment",
                 "operator": "=",
                 "rightHandSide": {
                  "argumentTypes": null,
                  "id": 2212,
                  "name": "addr",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2112,
                  "src": "30025:4:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_address",
                   "typeString": "address"
                  }
                 },
                 "src": "30017:12:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                 }
                },
                "id": 2214,
                "nodeType": "ExpressionStatement",
                "src": "30017:12:6"
               },
               {
                "expression": {
                 "argumentTypes": null,
                 "id": 2217,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": false,
                 "lValueRequested": false,
                 "leftHandSide": {
                  "argumentTypes": null,
                  "id": 2215,
                  "name": "queued_funds",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2108,
                  "src": "30047:12:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "nodeType": "Assignment",
                 "operator": "=",
                 "rightHandSide": {
                  "argumentTypes": null,
                  "id": 2216,
                  "name": "answer_takeover_fee",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2193,
                  "src": "30062:19:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "src": "30047:34:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "id": 2218,
                "nodeType": "ExpressionStatement",
                "src": "30047:34:6"
               }
              ]
             }
            },
            "id": 2221,
            "nodeType": "IfStatement",
            "src": "28715:1382:6",
            "trueBody": {
             "id": 2188,
             "nodeType": "Block",
             "src": "28742:306:6",
             "statements": [
              {
               "expression": {
                "argumentTypes": null,
                "id": 2169,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "id": 2167,
                 "name": "payee",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 2110,
                 "src": "28889:5:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "id": 2168,
                 "name": "addr",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 2112,
                 "src": "28897:4:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                 }
                },
                "src": "28889:12:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               },
               "id": 2170,
               "nodeType": "ExpressionStatement",
               "src": "28889:12:6"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 2179,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "id": 2171,
                 "name": "queued_funds",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 2108,
                 "src": "28919:12:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "arguments": [
                  {
                   "argumentTypes": null,
                   "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                     "argumentTypes": null,
                     "id": 2174,
                     "name": "questions",
                     "nodeType": "Identifier",
                     "overloadedDeclarations": [],
                     "referencedDeclaration": 676,
                     "src": "28951:9:6",
                     "typeDescriptions": {
                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                      "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                     }
                    },
                    "id": 2176,
                    "indexExpression": {
                     "argumentTypes": null,
                     "id": 2175,
                     "name": "question_id",
                     "nodeType": "Identifier",
                     "overloadedDeclarations": [],
                     "referencedDeclaration": 2104,
                     "src": "28961:11:6",
                     "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                     }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "28951:22:6",
                    "typeDescriptions": {
                     "typeIdentifier": "t_struct$_Question_$647_storage",
                     "typeString": "struct Realitio.Question storage ref"
                    }
                   },
                   "id": 2177,
                   "isConstant": false,
                   "isLValue": true,
                   "isPure": false,
                   "lValueRequested": false,
                   "memberName": "bounty",
                   "nodeType": "MemberAccess",
                   "referencedDeclaration": 640,
                   "src": "28951:29:6",
                   "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  }
                 ],
                 "expression": {
                  "argumentTypes": [
                   {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  ],
                  "expression": {
                   "argumentTypes": null,
                   "id": 2172,
                   "name": "queued_funds",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 2108,
                   "src": "28934:12:6",
                   "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  },
                  "id": 2173,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": false,
                  "lValueRequested": false,
                  "memberName": "add",
                  "nodeType": "MemberAccess",
                  "referencedDeclaration": 2613,
                  "src": "28934:16:6",
                  "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": 2178,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": false,
                 "kind": "functionCall",
                 "lValueRequested": false,
                 "names": [],
                 "nodeType": "FunctionCall",
                 "src": "28934:47:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "src": "28919:62:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 2180,
               "nodeType": "ExpressionStatement",
               "src": "28919:62:6"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 2186,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "expression": {
                  "argumentTypes": null,
                  "baseExpression": {
                   "argumentTypes": null,
                   "id": 2181,
                   "name": "questions",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 676,
                   "src": "28999:9:6",
                   "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
                    "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
                   }
                  },
                  "id": 2183,
                  "indexExpression": {
                   "argumentTypes": null,
                   "id": 2182,
                   "name": "question_id",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 2104,
                   "src": "29009:11:6",
                   "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                   }
                  },
                  "isConstant": false,
                  "isLValue": true,
                  "isPure": false,
                  "lValueRequested": false,
                  "nodeType": "IndexAccess",
                  "src": "28999:22:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_struct$_Question_$647_storage",
                   "typeString": "struct Realitio.Question storage ref"
                  }
                 },
                 "id": 2184,
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "memberName": "bounty",
                 "nodeType": "MemberAccess",
                 "referencedDeclaration": 640,
                 "src": "28999:29:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "hexValue": "30",
                 "id": 2185,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": true,
                 "kind": "number",
                 "lValueRequested": false,
                 "nodeType": "Literal",
                 "src": "29031:1:6",
                 "subdenomination": null,
                 "typeDescriptions": {
                  "typeIdentifier": "t_rational_0_by_1",
                  "typeString": "int_const 0"
                 },
                 "value": "0"
                },
                "src": "28999:33:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 2187,
               "nodeType": "ExpressionStatement",
               "src": "28999:33:6"
              }
             ]
            }
           }
          ]
         }
        },
        {
         "expression": {
          "argumentTypes": null,
          "components": [
           {
            "argumentTypes": null,
            "id": 2224,
            "name": "queued_funds",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2108,
            "src": "30126:12:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 2225,
            "name": "payee",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2110,
            "src": "30140:5:6",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           }
          ],
          "id": 2226,
          "isConstant": false,
          "isInlineArray": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "nodeType": "TupleExpression",
          "src": "30125:21:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
           "typeString": "tuple(uint256,address)"
          }
         },
         "functionReturnParameters": 2124,
         "id": 2227,
         "nodeType": "Return",
         "src": "30118:28:6"
        }
       ]
      },
      "documentation": null,
      "id": 2229,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "_processHistoryItem",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2119,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2104,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2229,
         "src": "27780:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2103,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "27780:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2106,
         "name": "best_answer",
         "nodeType": "VariableDeclaration",
         "scope": 2229,
         "src": "27801:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2105,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "27801:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2108,
         "name": "queued_funds",
         "nodeType": "VariableDeclaration",
         "scope": 2229,
         "src": "27831:20:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 2107,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "27831:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2110,
         "name": "payee",
         "nodeType": "VariableDeclaration",
         "scope": 2229,
         "src": "27853:13:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 2109,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "27853:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2112,
         "name": "addr",
         "nodeType": "VariableDeclaration",
         "scope": 2229,
         "src": "27877:12:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 2111,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "27877:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2114,
         "name": "bond",
         "nodeType": "VariableDeclaration",
         "scope": 2229,
         "src": "27891:12:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 2113,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "27891:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2116,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 2229,
         "src": "27905:14:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2115,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "27905:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2118,
         "name": "is_commitment",
         "nodeType": "VariableDeclaration",
         "scope": 2229,
         "src": "27921:18:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         },
         "typeName": {
          "id": 2117,
          "name": "bool",
          "nodeType": "ElementaryTypeName",
          "src": "27921:4:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "27770:175:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2124,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2121,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2229,
         "src": "27968:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 2120,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "27968:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2123,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2229,
         "src": "27977:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 2122,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "27977:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "27967:18:6"
      },
      "scope": 2516,
      "src": "27742:2412:6",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 2384,
       "nodeType": "Block",
       "src": "31379:723:6",
       "statements": [
        {
         "assignments": [],
         "declarations": [
          {
           "constant": false,
           "id": 2253,
           "name": "qi",
           "nodeType": "VariableDeclaration",
           "scope": 2385,
           "src": "31398:10:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 2252,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "31398:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 2254,
         "initialValue": null,
         "nodeType": "VariableDeclarationStatement",
         "src": "31398:10:6"
        },
        {
         "assignments": [],
         "declarations": [
          {
           "constant": false,
           "id": 2256,
           "name": "i",
           "nodeType": "VariableDeclaration",
           "scope": 2385,
           "src": "31418:9:6",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 2255,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "31418:7:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 2257,
         "initialValue": null,
         "nodeType": "VariableDeclarationStatement",
         "src": "31418:9:6"
        },
        {
         "body": {
          "id": 2379,
          "nodeType": "Block",
          "src": "31482:594:6",
          "statements": [
           {
            "assignments": [
             2270
            ],
            "declarations": [
             {
              "constant": false,
              "id": 2270,
              "name": "qid",
              "nodeType": "VariableDeclaration",
              "scope": 2385,
              "src": "31496:11:6",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              },
              "typeName": {
               "id": 2269,
               "name": "bytes32",
               "nodeType": "ElementaryTypeName",
               "src": "31496:7:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2274,
            "initialValue": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 2271,
              "name": "question_ids",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2232,
              "src": "31510:12:6",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
               "typeString": "bytes32[] memory"
              }
             },
             "id": 2273,
             "indexExpression": {
              "argumentTypes": null,
              "id": 2272,
              "name": "qi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2253,
              "src": "31523:2:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "31510:16:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "31496:30:6"
           },
           {
            "assignments": [
             2276
            ],
            "declarations": [
             {
              "constant": false,
              "id": 2276,
              "name": "ln",
              "nodeType": "VariableDeclaration",
              "scope": 2385,
              "src": "31540:10:6",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              },
              "typeName": {
               "id": 2275,
               "name": "uint256",
               "nodeType": "ElementaryTypeName",
               "src": "31540:7:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2280,
            "initialValue": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 2277,
              "name": "lengths",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2235,
              "src": "31553:7:6",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
               "typeString": "uint256[] memory"
              }
             },
             "id": 2279,
             "indexExpression": {
              "argumentTypes": null,
              "id": 2278,
              "name": "qi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2253,
              "src": "31561:2:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "31553:11:6",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "31540:24:6"
           },
           {
            "assignments": [
             2284
            ],
            "declarations": [
             {
              "constant": false,
              "id": 2284,
              "name": "hh",
              "nodeType": "VariableDeclaration",
              "scope": 2385,
              "src": "31578:19:6",
              "stateVariable": false,
              "storageLocation": "memory",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
               "typeString": "bytes32[]"
              },
              "typeName": {
               "baseType": {
                "id": 2282,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "31578:7:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 2283,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "31578:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                "typeString": "bytes32[]"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2290,
            "initialValue": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 2288,
               "name": "ln",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2276,
               "src": "31614:2:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 2287,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "NewExpression",
              "src": "31600:13:6",
              "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": 2285,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "31604:7:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 2286,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "31604:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                "typeString": "bytes32[]"
               }
              }
             },
             "id": 2289,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "31600:17:6",
             "typeDescriptions": {
              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
              "typeString": "bytes32[] memory"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "31578:39:6"
           },
           {
            "assignments": [
             2294
            ],
            "declarations": [
             {
              "constant": false,
              "id": 2294,
              "name": "ad",
              "nodeType": "VariableDeclaration",
              "scope": 2385,
              "src": "31631:19:6",
              "stateVariable": false,
              "storageLocation": "memory",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
               "typeString": "address[]"
              },
              "typeName": {
               "baseType": {
                "id": 2292,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "31631:7:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               },
               "id": 2293,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "31631:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                "typeString": "address[]"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2300,
            "initialValue": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 2298,
               "name": "ln",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2276,
               "src": "31667:2:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 2297,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "NewExpression",
              "src": "31653:13:6",
              "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": 2295,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "31657:7:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               },
               "id": 2296,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "31657:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                "typeString": "address[]"
               }
              }
             },
             "id": 2299,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "31653:17:6",
             "typeDescriptions": {
              "typeIdentifier": "t_array$_t_address_$dyn_memory",
              "typeString": "address[] memory"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "31631:39:6"
           },
           {
            "assignments": [
             2304
            ],
            "declarations": [
             {
              "constant": false,
              "id": 2304,
              "name": "bo",
              "nodeType": "VariableDeclaration",
              "scope": 2385,
              "src": "31684:19:6",
              "stateVariable": false,
              "storageLocation": "memory",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
               "typeString": "uint256[]"
              },
              "typeName": {
               "baseType": {
                "id": 2302,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "31684:7:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 2303,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "31684:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                "typeString": "uint256[]"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2310,
            "initialValue": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 2308,
               "name": "ln",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2276,
               "src": "31720:2:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 2307,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "NewExpression",
              "src": "31706:13:6",
              "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": 2305,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "31710:7:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 2306,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "31710:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                "typeString": "uint256[]"
               }
              }
             },
             "id": 2309,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "31706:17:6",
             "typeDescriptions": {
              "typeIdentifier": "t_array$_t_uint256_$dyn_memory",
              "typeString": "uint256[] memory"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "31684:39:6"
           },
           {
            "assignments": [
             2314
            ],
            "declarations": [
             {
              "constant": false,
              "id": 2314,
              "name": "an",
              "nodeType": "VariableDeclaration",
              "scope": 2385,
              "src": "31737:19:6",
              "stateVariable": false,
              "storageLocation": "memory",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
               "typeString": "bytes32[]"
              },
              "typeName": {
               "baseType": {
                "id": 2312,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "31737:7:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 2313,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "31737:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                "typeString": "bytes32[]"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2320,
            "initialValue": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 2318,
               "name": "ln",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2276,
               "src": "31773:2:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 2317,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "NewExpression",
              "src": "31759:13:6",
              "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": 2315,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "31763:7:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 2316,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "31763:9:6",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                "typeString": "bytes32[]"
               }
              }
             },
             "id": 2319,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "31759:17:6",
             "typeDescriptions": {
              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
              "typeString": "bytes32[] memory"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "31737:39:6"
           },
           {
            "assignments": [],
            "declarations": [
             {
              "constant": false,
              "id": 2322,
              "name": "j",
              "nodeType": "VariableDeclaration",
              "scope": 2385,
              "src": "31790:9:6",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              },
              "typeName": {
               "id": 2321,
               "name": "uint256",
               "nodeType": "ElementaryTypeName",
               "src": "31790:7:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2323,
            "initialValue": null,
            "nodeType": "VariableDeclarationStatement",
            "src": "31790:9:6"
           },
           {
            "body": {
             "id": 2369,
             "nodeType": "Block",
             "src": "31838:180:6",
             "statements": [
              {
               "expression": {
                "argumentTypes": null,
                "id": 2340,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2334,
                  "name": "hh",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2284,
                  "src": "31856:2:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                   "typeString": "bytes32[] memory"
                  }
                 },
                 "id": 2336,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2335,
                  "name": "j",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2322,
                  "src": "31859:1:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "31856:5:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2337,
                  "name": "hist_hashes",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2238,
                  "src": "31864:11:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                   "typeString": "bytes32[] memory"
                  }
                 },
                 "id": 2339,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2338,
                  "name": "i",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2256,
                  "src": "31876:1:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "nodeType": "IndexAccess",
                 "src": "31864:14:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "src": "31856:22:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 2341,
               "nodeType": "ExpressionStatement",
               "src": "31856:22:6"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 2348,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2342,
                  "name": "ad",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2294,
                  "src": "31896:2:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                   "typeString": "address[] memory"
                  }
                 },
                 "id": 2344,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2343,
                  "name": "j",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2322,
                  "src": "31899:1:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "31896:5:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2345,
                  "name": "addrs",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2241,
                  "src": "31904:5:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                   "typeString": "address[] memory"
                  }
                 },
                 "id": 2347,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2346,
                  "name": "i",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2256,
                  "src": "31910:1:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "nodeType": "IndexAccess",
                 "src": "31904:8:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                 }
                },
                "src": "31896:16:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               },
               "id": 2349,
               "nodeType": "ExpressionStatement",
               "src": "31896:16:6"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 2356,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2350,
                  "name": "bo",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2304,
                  "src": "31930:2:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                   "typeString": "uint256[] memory"
                  }
                 },
                 "id": 2352,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2351,
                  "name": "j",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2322,
                  "src": "31933:1:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "31930:5:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2353,
                  "name": "bonds",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2244,
                  "src": "31938:5:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                   "typeString": "uint256[] memory"
                  }
                 },
                 "id": 2355,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2354,
                  "name": "i",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2256,
                  "src": "31944:1:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "nodeType": "IndexAccess",
                 "src": "31938:8:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "src": "31930:16:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 2357,
               "nodeType": "ExpressionStatement",
               "src": "31930:16:6"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 2364,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2358,
                  "name": "an",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2314,
                  "src": "31964:2:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                   "typeString": "bytes32[] memory"
                  }
                 },
                 "id": 2360,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2359,
                  "name": "j",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2322,
                  "src": "31967:1:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "31964:5:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2361,
                  "name": "answers",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2247,
                  "src": "31972:7:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                   "typeString": "bytes32[] memory"
                  }
                 },
                 "id": 2363,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2362,
                  "name": "i",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2256,
                  "src": "31980:1:6",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "nodeType": "IndexAccess",
                 "src": "31972:10:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "src": "31964:18:6",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 2365,
               "nodeType": "ExpressionStatement",
               "src": "31964:18:6"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 2367,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "UnaryOperation",
                "operator": "++",
                "prefix": false,
                "src": "32000:3:6",
                "subExpression": {
                 "argumentTypes": null,
                 "id": 2366,
                 "name": "i",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 2256,
                 "src": "32000:1:6",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 2368,
               "nodeType": "ExpressionStatement",
               "src": "32000:3:6"
              }
             ]
            },
            "condition": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             },
             "id": 2330,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 2328,
              "name": "j",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2322,
              "src": "31825:1:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "<",
             "rightExpression": {
              "argumentTypes": null,
              "id": 2329,
              "name": "ln",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2276,
              "src": "31829:2:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "31825:6:6",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "id": 2370,
            "initializationExpression": {
             "expression": {
              "argumentTypes": null,
              "id": 2326,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "leftHandSide": {
               "argumentTypes": null,
               "id": 2324,
               "name": "j",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2322,
               "src": "31818:1:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "nodeType": "Assignment",
              "operator": "=",
              "rightHandSide": {
               "argumentTypes": null,
               "hexValue": "30",
               "id": 2325,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "kind": "number",
               "lValueRequested": false,
               "nodeType": "Literal",
               "src": "31822:1:6",
               "subdenomination": null,
               "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
               },
               "value": "0"
              },
              "src": "31818:5:6",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "id": 2327,
             "nodeType": "ExpressionStatement",
             "src": "31818:5:6"
            },
            "loopExpression": {
             "expression": {
              "argumentTypes": null,
              "id": 2332,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "UnaryOperation",
              "operator": "++",
              "prefix": false,
              "src": "31833:3:6",
              "subExpression": {
               "argumentTypes": null,
               "id": 2331,
               "name": "j",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2322,
               "src": "31833:1:6",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "id": 2333,
             "nodeType": "ExpressionStatement",
             "src": "31833:3:6"
            },
            "nodeType": "ForStatement",
            "src": "31813:205:6"
           },
           {
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 2372,
               "name": "qid",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2270,
               "src": "32045:3:6",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 2373,
               "name": "hh",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2284,
               "src": "32050:2:6",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                "typeString": "bytes32[] memory"
               }
              },
              {
               "argumentTypes": null,
               "id": 2374,
               "name": "ad",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2294,
               "src": "32054:2:6",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                "typeString": "address[] memory"
               }
              },
              {
               "argumentTypes": null,
               "id": 2375,
               "name": "bo",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2304,
               "src": "32058:2:6",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                "typeString": "uint256[] memory"
               }
              },
              {
               "argumentTypes": null,
               "id": 2376,
               "name": "an",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2314,
               "src": "32062:2:6",
               "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": 2371,
              "name": "claimWinnings",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2023,
              "src": "32031:13:6",
              "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": 2377,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "32031:34:6",
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 2378,
            "nodeType": "ExpressionStatement",
            "src": "32031:34:6"
           }
          ]
         },
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          },
          "id": 2265,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 2262,
           "name": "qi",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2253,
           "src": "31450:2:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "<",
          "rightExpression": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "id": 2263,
            "name": "question_ids",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2232,
            "src": "31455:12:6",
            "typeDescriptions": {
             "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
             "typeString": "bytes32[] memory"
            }
           },
           "id": 2264,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "length",
           "nodeType": "MemberAccess",
           "referencedDeclaration": null,
           "src": "31455:19:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "31450:24:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "id": 2380,
         "initializationExpression": {
          "expression": {
           "argumentTypes": null,
           "id": 2260,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "leftHandSide": {
            "argumentTypes": null,
            "id": 2258,
            "name": "qi",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2253,
            "src": "31442:2:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "nodeType": "Assignment",
           "operator": "=",
           "rightHandSide": {
            "argumentTypes": null,
            "hexValue": "30",
            "id": 2259,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "number",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "31447:1:6",
            "subdenomination": null,
            "typeDescriptions": {
             "typeIdentifier": "t_rational_0_by_1",
             "typeString": "int_const 0"
            },
            "value": "0"
           },
           "src": "31442:6:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 2261,
          "nodeType": "ExpressionStatement",
          "src": "31442:6:6"
         },
         "loopExpression": {
          "expression": {
           "argumentTypes": null,
           "id": 2267,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "UnaryOperation",
           "operator": "++",
           "prefix": false,
           "src": "31476:4:6",
           "subExpression": {
            "argumentTypes": null,
            "id": 2266,
            "name": "qi",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2253,
            "src": "31476:2:6",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 2268,
          "nodeType": "ExpressionStatement",
          "src": "31476:4:6"
         },
         "nodeType": "ForStatement",
         "src": "31437:639:6"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [],
          "expression": {
           "argumentTypes": [],
           "id": 2381,
           "name": "withdraw",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 355,
           "src": "32085:8:6",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
            "typeString": "function ()"
           }
          },
          "id": 2382,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "32085:10:6",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 2383,
         "nodeType": "ExpressionStatement",
         "src": "32085:10:6"
        }
       ]
      },
      "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": 2385,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [],
        "id": 2250,
        "modifierName": {
         "argumentTypes": null,
         "id": 2249,
         "name": "stateAny",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 709,
         "src": "31291:8:6",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$__$",
          "typeString": "modifier ()"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "31291:10:6"
       }
      ],
      "name": "claimMultipleAndWithdrawBalance",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2248,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2232,
         "name": "question_ids",
         "nodeType": "VariableDeclaration",
         "scope": 2385,
         "src": "31149:22:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
          "typeString": "bytes32[]"
         },
         "typeName": {
          "baseType": {
           "id": 2230,
           "name": "bytes32",
           "nodeType": "ElementaryTypeName",
           "src": "31149:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "id": 2231,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "31149:9:6",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
           "typeString": "bytes32[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2235,
         "name": "lengths",
         "nodeType": "VariableDeclaration",
         "scope": 2385,
         "src": "31173:17:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
          "typeString": "uint256[]"
         },
         "typeName": {
          "baseType": {
           "id": 2233,
           "name": "uint256",
           "nodeType": "ElementaryTypeName",
           "src": "31173:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 2234,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "31173:9:6",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
           "typeString": "uint256[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2238,
         "name": "hist_hashes",
         "nodeType": "VariableDeclaration",
         "scope": 2385,
         "src": "31201:21:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
          "typeString": "bytes32[]"
         },
         "typeName": {
          "baseType": {
           "id": 2236,
           "name": "bytes32",
           "nodeType": "ElementaryTypeName",
           "src": "31201:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "id": 2237,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "31201:9:6",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
           "typeString": "bytes32[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2241,
         "name": "addrs",
         "nodeType": "VariableDeclaration",
         "scope": 2385,
         "src": "31224:15:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
          "typeString": "address[]"
         },
         "typeName": {
          "baseType": {
           "id": 2239,
           "name": "address",
           "nodeType": "ElementaryTypeName",
           "src": "31224:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "id": 2240,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "31224:9:6",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
           "typeString": "address[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2244,
         "name": "bonds",
         "nodeType": "VariableDeclaration",
         "scope": 2385,
         "src": "31241:15:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
          "typeString": "uint256[]"
         },
         "typeName": {
          "baseType": {
           "id": 2242,
           "name": "uint256",
           "nodeType": "ElementaryTypeName",
           "src": "31241:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 2243,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "31241:9:6",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
           "typeString": "uint256[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2247,
         "name": "answers",
         "nodeType": "VariableDeclaration",
         "scope": 2385,
         "src": "31258:17:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
          "typeString": "bytes32[]"
         },
         "typeName": {
          "baseType": {
           "id": 2245,
           "name": "bytes32",
           "nodeType": "ElementaryTypeName",
           "src": "31258:7:6",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "id": 2246,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "31258:9:6",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
           "typeString": "bytes32[]"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "31139:142:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2251,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "31379:0:6"
      },
      "scope": 2516,
      "src": "31099:1003:6",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2397,
       "nodeType": "Block",
       "src": "32325:59:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2392,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "32342:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 2394,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2393,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2387,
            "src": "32352:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "32342:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 2395,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "content_hash",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 628,
          "src": "32342:35:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 2391,
         "id": 2396,
         "nodeType": "Return",
         "src": "32335:42:6"
        }
       ]
      },
      "documentation": "@notice Returns the questions's content hash, identifying the question content\n @param question_id The ID of the question ",
      "id": 2398,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getContentHash",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2388,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2387,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2398,
         "src": "32270:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2386,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "32270:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "32269:21:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2391,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2390,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2398,
         "src": "32316:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2389,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "32316:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "32315:9:6"
      },
      "scope": 2516,
      "src": "32246:138:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2410,
       "nodeType": "Block",
       "src": "32583:57:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2405,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "32600:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 2407,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2406,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2400,
            "src": "32610:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "32600:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 2408,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "arbitrator",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 630,
          "src": "32600:33:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "functionReturnParameters": 2404,
         "id": 2409,
         "nodeType": "Return",
         "src": "32593:40:6"
        }
       ]
      },
      "documentation": "@notice Returns the arbitrator address for the question\n @param question_id The ID of the question ",
      "id": 2411,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getArbitrator",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2401,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2400,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2411,
         "src": "32528:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2399,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "32528:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "32527:21:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2404,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2403,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2411,
         "src": "32574:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 2402,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "32574:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "32573:9:6"
      },
      "scope": 2516,
      "src": "32505:135:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2423,
       "nodeType": "Block",
       "src": "32851:57:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2418,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "32868:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 2420,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2419,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2413,
            "src": "32878:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "32868:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 2421,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "opening_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 632,
          "src": "32868:33:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "functionReturnParameters": 2417,
         "id": 2422,
         "nodeType": "Return",
         "src": "32861:40:6"
        }
       ]
      },
      "documentation": "@notice Returns the timestamp when the question can first be answered\n @param question_id The ID of the question ",
      "id": 2424,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getOpeningTS",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2414,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2413,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2424,
         "src": "32797:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2412,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "32797:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "32796:21:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2417,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2416,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2424,
         "src": "32843:6:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 2415,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "32843:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "32842:8:6"
      },
      "scope": 2516,
      "src": "32775:133:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2436,
       "nodeType": "Block",
       "src": "33109:54:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2431,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "33126:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 2433,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2432,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2426,
            "src": "33136:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "33126:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 2434,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "timeout",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 634,
          "src": "33126:30:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "functionReturnParameters": 2430,
         "id": 2435,
         "nodeType": "Return",
         "src": "33119:37:6"
        }
       ]
      },
      "documentation": "@notice Returns the timeout in seconds used after each answer\n @param question_id The ID of the question ",
      "id": 2437,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getTimeout",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2427,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2426,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2437,
         "src": "33055:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2425,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "33055:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "33054:21:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2430,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2429,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2437,
         "src": "33101:6:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 2428,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "33101:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "33100:8:6"
      },
      "scope": 2516,
      "src": "33035:128:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2449,
       "nodeType": "Block",
       "src": "33379:58:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2444,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "33396:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 2446,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2445,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2439,
            "src": "33406:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "33396:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 2447,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "finalize_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 636,
          "src": "33396:34:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "functionReturnParameters": 2443,
         "id": 2448,
         "nodeType": "Return",
         "src": "33389:41:6"
        }
       ]
      },
      "documentation": "@notice Returns the timestamp at which the question will be/was finalized\n @param question_id The ID of the question ",
      "id": 2450,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getFinalizeTS",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2440,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2439,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2450,
         "src": "33325:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2438,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "33325:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "33324:21:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2443,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2442,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2450,
         "src": "33371:6:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 2441,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "33371:6:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "33370:8:6"
      },
      "scope": 2516,
      "src": "33302:135:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2462,
       "nodeType": "Block",
       "src": "33644:69:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2457,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "33661:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 2459,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2458,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2452,
            "src": "33671:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "33661:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 2460,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "is_pending_arbitration",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 638,
          "src": "33661:45:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "functionReturnParameters": 2456,
         "id": 2461,
         "nodeType": "Return",
         "src": "33654:52:6"
        }
       ]
      },
      "documentation": "@notice Returns whether the question is pending arbitration\n @param question_id The ID of the question ",
      "id": 2463,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "isPendingArbitration",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2453,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2452,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2463,
         "src": "33592:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2451,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "33592:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "33591:21:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2456,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2455,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2463,
         "src": "33638:4:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         },
         "typeName": {
          "id": 2454,
          "name": "bool",
          "nodeType": "ElementaryTypeName",
          "src": "33638:4:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "33637:6:6"
      },
      "scope": 2516,
      "src": "33562:151:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2475,
       "nodeType": "Block",
       "src": "33966:53:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2470,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "33983:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 2472,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2471,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2465,
            "src": "33993:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "33983:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 2473,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "bounty",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 640,
          "src": "33983:29:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "functionReturnParameters": 2469,
         "id": 2474,
         "nodeType": "Return",
         "src": "33976:36:6"
        }
       ]
      },
      "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": 2476,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getBounty",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2466,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2465,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2476,
         "src": "33911:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2464,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "33911:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "33910:21:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2469,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2468,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2476,
         "src": "33957:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 2467,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "33957:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "33956:9:6"
      },
      "scope": 2516,
      "src": "33892:127:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2488,
       "nodeType": "Block",
       "src": "34202:58:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2483,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "34219:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 2485,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2484,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2478,
            "src": "34229:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "34219:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 2486,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "best_answer",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 642,
          "src": "34219:34:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 2482,
         "id": 2487,
         "nodeType": "Return",
         "src": "34212:41:6"
        }
       ]
      },
      "documentation": "@notice Returns the current best answer\n @param question_id The ID of the question ",
      "id": 2489,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getBestAnswer",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2479,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2478,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2489,
         "src": "34147:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2477,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "34147:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "34146:21:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2482,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2481,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2489,
         "src": "34193:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2480,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "34193:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "34192:9:6"
      },
      "scope": 2516,
      "src": "34124:136:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2501,
       "nodeType": "Block",
       "src": "34523:59:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2496,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "34540:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 2498,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2497,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2491,
            "src": "34550:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "34540:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 2499,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "history_hash",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 644,
          "src": "34540:35:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 2495,
         "id": 2500,
         "nodeType": "Return",
         "src": "34533:42:6"
        }
       ]
      },
      "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": 2502,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getHistoryHash",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2492,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2491,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2502,
         "src": "34468:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2490,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "34468:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "34467:21:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2495,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2494,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2502,
         "src": "34514:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2493,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "34514:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "34513:9:6"
      },
      "scope": 2516,
      "src": "34444:138:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2514,
       "nodeType": "Block",
       "src": "34781:51:6",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2509,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 676,
            "src": "34798:9:6",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$647_storage_$",
             "typeString": "mapping(bytes32 => struct Realitio.Question storage ref)"
            }
           },
           "id": 2511,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2510,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2504,
            "src": "34808:11:6",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "34798:22:6",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$647_storage",
            "typeString": "struct Realitio.Question storage ref"
           }
          },
          "id": 2512,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "bond",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 646,
          "src": "34798:27:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "functionReturnParameters": 2508,
         "id": 2513,
         "nodeType": "Return",
         "src": "34791:34:6"
        }
       ]
      },
      "documentation": "@notice Returns the highest bond posted so far for a question\n @param question_id The ID of the question ",
      "id": 2515,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getBond",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2505,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2504,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2515,
         "src": "34726:19:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2503,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "34726:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "34725:21:6"
      },
      "payable": false,
      "returnParameters": {
       "id": 2508,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2507,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2515,
         "src": "34772:7:6",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 2506,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "34772:7:6",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "34771:9:6"
      },
      "scope": 2516,
      "src": "34709:123:6",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     }
    ],
    "scope": 2517,
    "src": "128:34707:6"
   }
  ],
  "src": "0:34836:6"
 },
 "compiler": {
  "name": "solc",
  "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
 },
 "networks": {
  "1": {
   "events": {},
   "links": {},
   "address": "0x325a2e0f3cca2ddbaebb4dfc38df8d19ca165b47",
   "transactionHash": "0xdc0c21a41e03121c3d3aee7fd9f28a27390020b989294698bf377e89f4536b54"
  },
  "4": {
   "events": {},
   "links": {},
   "address": "0x3D00D77ee771405628a4bA4913175EcC095538da",
   "transactionHash": "0x59200032eea892a10bf5ae9385eb288c062786d4c41a46cd2ee1e15dd2c29f60"
  },
  "42": {
   "events": {},
   "links": {},
   "address": "0x50e35a1ed424ab9c0b8c7095b3d9ec2fb791a168",
   "transactionHash": "0xb35864c7afbeb44866e7f9e3ad3f1c08a80f65d3c1d339b3c53f296d3efc674f"
  },
  "77": {
   "events": {},
   "links": {},
   "address": "0x90a617ed516ab7fAaBA56CcEDA0C5D952f294d03",
   "transactionHash": ""
  },
  "100": {
   "events": {},
   "links": {},
   "address": "0x79e32aE03fb27B07C89c0c568F80287C01ca2E57",
   "transactionHash": ""
  },
  "123411710": {
   "events": {},
   "links": {},
   "address": "0xa4c32Ec8E9dfb7F1CB768742292905fE1557F0F4",
   "transactionHash": "0x8a50ae4f787f18003d65ce8dcb4c95603040859d3eaaad7970f403488855e7d6"
  }
 },
 "schemaVersion": "3.0.0-beta.1",
 "updatedAt": "2018-10-17T05:19:16.969Z"
}