{
 "contractName": "RealitioERC20",
 "abi": [
  {
   "constant": false,
   "inputs": [],
   "name": "withdraw",
   "outputs": [],
   "payable": false,
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "",
     "type": "uint256"
    }
   ],
   "name": "template_hashes",
   "outputs": [
    {
     "name": "",
     "type": "bytes32"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "",
     "type": "bytes32"
    }
   ],
   "name": "question_claims",
   "outputs": [
    {
     "name": "payee",
     "type": "address"
    },
    {
     "name": "last_bond",
     "type": "uint256"
    },
    {
     "name": "queued_funds",
     "type": "uint256"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "",
     "type": "address"
    }
   ],
   "name": "arbitrator_question_fees",
   "outputs": [
    {
     "name": "",
     "type": "uint256"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "",
     "type": "address"
    }
   ],
   "name": "balanceOf",
   "outputs": [
    {
     "name": "",
     "type": "uint256"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "",
     "type": "bytes32"
    }
   ],
   "name": "commitments",
   "outputs": [
    {
     "name": "reveal_ts",
     "type": "uint32"
    },
    {
     "name": "is_revealed",
     "type": "bool"
    },
    {
     "name": "revealed_answer",
     "type": "bytes32"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "",
     "type": "bytes32"
    }
   ],
   "name": "questions",
   "outputs": [
    {
     "name": "content_hash",
     "type": "bytes32"
    },
    {
     "name": "arbitrator",
     "type": "address"
    },
    {
     "name": "opening_ts",
     "type": "uint32"
    },
    {
     "name": "timeout",
     "type": "uint32"
    },
    {
     "name": "finalize_ts",
     "type": "uint32"
    },
    {
     "name": "is_pending_arbitration",
     "type": "bool"
    },
    {
     "name": "bounty",
     "type": "uint256"
    },
    {
     "name": "best_answer",
     "type": "bytes32"
    },
    {
     "name": "history_hash",
     "type": "bytes32"
    },
    {
     "name": "bond",
     "type": "uint256"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "",
     "type": "uint256"
    }
   ],
   "name": "templates",
   "outputs": [
    {
     "name": "",
     "type": "uint256"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function"
  },
  {
   "constant": true,
   "inputs": [],
   "name": "token",
   "outputs": [
    {
     "name": "",
     "type": "address"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function"
  },
  {
   "inputs": [],
   "payable": false,
   "stateMutability": "nonpayable",
   "type": "constructor"
  },
  {
   "anonymous": false,
   "inputs": [
    {
     "indexed": false,
     "name": "arbitrator",
     "type": "address"
    },
    {
     "indexed": false,
     "name": "amount",
     "type": "uint256"
    }
   ],
   "name": "LogSetQuestionFee",
   "type": "event"
  },
  {
   "anonymous": false,
   "inputs": [
    {
     "indexed": true,
     "name": "template_id",
     "type": "uint256"
    },
    {
     "indexed": true,
     "name": "user",
     "type": "address"
    },
    {
     "indexed": false,
     "name": "question_text",
     "type": "string"
    }
   ],
   "name": "LogNewTemplate",
   "type": "event"
  },
  {
   "anonymous": false,
   "inputs": [
    {
     "indexed": true,
     "name": "question_id",
     "type": "bytes32"
    },
    {
     "indexed": true,
     "name": "user",
     "type": "address"
    },
    {
     "indexed": false,
     "name": "template_id",
     "type": "uint256"
    },
    {
     "indexed": false,
     "name": "question",
     "type": "string"
    },
    {
     "indexed": true,
     "name": "content_hash",
     "type": "bytes32"
    },
    {
     "indexed": false,
     "name": "arbitrator",
     "type": "address"
    },
    {
     "indexed": false,
     "name": "timeout",
     "type": "uint32"
    },
    {
     "indexed": false,
     "name": "opening_ts",
     "type": "uint32"
    },
    {
     "indexed": false,
     "name": "nonce",
     "type": "uint256"
    },
    {
     "indexed": false,
     "name": "created",
     "type": "uint256"
    }
   ],
   "name": "LogNewQuestion",
   "type": "event"
  },
  {
   "anonymous": false,
   "inputs": [
    {
     "indexed": true,
     "name": "question_id",
     "type": "bytes32"
    },
    {
     "indexed": false,
     "name": "bounty_added",
     "type": "uint256"
    },
    {
     "indexed": false,
     "name": "bounty",
     "type": "uint256"
    },
    {
     "indexed": true,
     "name": "user",
     "type": "address"
    }
   ],
   "name": "LogFundAnswerBounty",
   "type": "event"
  },
  {
   "anonymous": false,
   "inputs": [
    {
     "indexed": false,
     "name": "answer",
     "type": "bytes32"
    },
    {
     "indexed": true,
     "name": "question_id",
     "type": "bytes32"
    },
    {
     "indexed": false,
     "name": "history_hash",
     "type": "bytes32"
    },
    {
     "indexed": true,
     "name": "user",
     "type": "address"
    },
    {
     "indexed": false,
     "name": "bond",
     "type": "uint256"
    },
    {
     "indexed": false,
     "name": "ts",
     "type": "uint256"
    },
    {
     "indexed": false,
     "name": "is_commitment",
     "type": "bool"
    }
   ],
   "name": "LogNewAnswer",
   "type": "event"
  },
  {
   "anonymous": false,
   "inputs": [
    {
     "indexed": true,
     "name": "question_id",
     "type": "bytes32"
    },
    {
     "indexed": true,
     "name": "user",
     "type": "address"
    },
    {
     "indexed": true,
     "name": "answer_hash",
     "type": "bytes32"
    },
    {
     "indexed": false,
     "name": "answer",
     "type": "bytes32"
    },
    {
     "indexed": false,
     "name": "nonce",
     "type": "uint256"
    },
    {
     "indexed": false,
     "name": "bond",
     "type": "uint256"
    }
   ],
   "name": "LogAnswerReveal",
   "type": "event"
  },
  {
   "anonymous": false,
   "inputs": [
    {
     "indexed": true,
     "name": "question_id",
     "type": "bytes32"
    },
    {
     "indexed": true,
     "name": "user",
     "type": "address"
    }
   ],
   "name": "LogNotifyOfArbitrationRequest",
   "type": "event"
  },
  {
   "anonymous": false,
   "inputs": [
    {
     "indexed": true,
     "name": "question_id",
     "type": "bytes32"
    },
    {
     "indexed": true,
     "name": "answer",
     "type": "bytes32"
    }
   ],
   "name": "LogFinalize",
   "type": "event"
  },
  {
   "anonymous": false,
   "inputs": [
    {
     "indexed": true,
     "name": "question_id",
     "type": "bytes32"
    },
    {
     "indexed": true,
     "name": "user",
     "type": "address"
    },
    {
     "indexed": false,
     "name": "amount",
     "type": "uint256"
    }
   ],
   "name": "LogClaim",
   "type": "event"
  },
  {
   "anonymous": false,
   "inputs": [
    {
     "indexed": true,
     "name": "user",
     "type": "address"
    },
    {
     "indexed": false,
     "name": "amount",
     "type": "uint256"
    }
   ],
   "name": "LogWithdraw",
   "type": "event"
  },
  {
   "constant": false,
   "inputs": [
    {
     "name": "_token",
     "type": "address"
    }
   ],
   "name": "setToken",
   "outputs": [],
   "payable": false,
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "constant": false,
   "inputs": [
    {
     "name": "fee",
     "type": "uint256"
    }
   ],
   "name": "setQuestionFee",
   "outputs": [],
   "payable": false,
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "constant": false,
   "inputs": [
    {
     "name": "content",
     "type": "string"
    }
   ],
   "name": "createTemplate",
   "outputs": [
    {
     "name": "",
     "type": "uint256"
    }
   ],
   "payable": false,
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "constant": false,
   "inputs": [
    {
     "name": "content",
     "type": "string"
    },
    {
     "name": "question",
     "type": "string"
    },
    {
     "name": "arbitrator",
     "type": "address"
    },
    {
     "name": "timeout",
     "type": "uint32"
    },
    {
     "name": "opening_ts",
     "type": "uint32"
    },
    {
     "name": "nonce",
     "type": "uint256"
    }
   ],
   "name": "createTemplateAndAskQuestion",
   "outputs": [
    {
     "name": "",
     "type": "bytes32"
    }
   ],
   "payable": false,
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "constant": false,
   "inputs": [
    {
     "name": "template_id",
     "type": "uint256"
    },
    {
     "name": "question",
     "type": "string"
    },
    {
     "name": "arbitrator",
     "type": "address"
    },
    {
     "name": "timeout",
     "type": "uint32"
    },
    {
     "name": "opening_ts",
     "type": "uint32"
    },
    {
     "name": "nonce",
     "type": "uint256"
    }
   ],
   "name": "askQuestion",
   "outputs": [
    {
     "name": "",
     "type": "bytes32"
    }
   ],
   "payable": false,
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "constant": false,
   "inputs": [
    {
     "name": "template_id",
     "type": "uint256"
    },
    {
     "name": "question",
     "type": "string"
    },
    {
     "name": "arbitrator",
     "type": "address"
    },
    {
     "name": "timeout",
     "type": "uint32"
    },
    {
     "name": "opening_ts",
     "type": "uint32"
    },
    {
     "name": "nonce",
     "type": "uint256"
    },
    {
     "name": "tokens",
     "type": "uint256"
    }
   ],
   "name": "askQuestionERC20",
   "outputs": [
    {
     "name": "",
     "type": "bytes32"
    }
   ],
   "payable": false,
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "constant": false,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    },
    {
     "name": "tokens",
     "type": "uint256"
    }
   ],
   "name": "fundAnswerBountyERC20",
   "outputs": [],
   "payable": false,
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "constant": false,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    },
    {
     "name": "answer",
     "type": "bytes32"
    },
    {
     "name": "max_previous",
     "type": "uint256"
    },
    {
     "name": "tokens",
     "type": "uint256"
    }
   ],
   "name": "submitAnswerERC20",
   "outputs": [],
   "payable": false,
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "constant": false,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    },
    {
     "name": "answer_hash",
     "type": "bytes32"
    },
    {
     "name": "max_previous",
     "type": "uint256"
    },
    {
     "name": "_answerer",
     "type": "address"
    },
    {
     "name": "tokens",
     "type": "uint256"
    }
   ],
   "name": "submitAnswerCommitmentERC20",
   "outputs": [],
   "payable": false,
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "constant": false,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    },
    {
     "name": "answer",
     "type": "bytes32"
    },
    {
     "name": "nonce",
     "type": "uint256"
    },
    {
     "name": "bond",
     "type": "uint256"
    }
   ],
   "name": "submitAnswerReveal",
   "outputs": [],
   "payable": false,
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "constant": false,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    },
    {
     "name": "requester",
     "type": "address"
    },
    {
     "name": "max_previous",
     "type": "uint256"
    }
   ],
   "name": "notifyOfArbitrationRequest",
   "outputs": [],
   "payable": false,
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "constant": false,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    },
    {
     "name": "answer",
     "type": "bytes32"
    },
    {
     "name": "answerer",
     "type": "address"
    }
   ],
   "name": "submitAnswerByArbitrator",
   "outputs": [],
   "payable": false,
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    }
   ],
   "name": "isFinalized",
   "outputs": [
    {
     "name": "",
     "type": "bool"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    }
   ],
   "name": "getFinalAnswer",
   "outputs": [
    {
     "name": "",
     "type": "bytes32"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    }
   ],
   "name": "resultFor",
   "outputs": [
    {
     "name": "",
     "type": "bytes32"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    },
    {
     "name": "content_hash",
     "type": "bytes32"
    },
    {
     "name": "arbitrator",
     "type": "address"
    },
    {
     "name": "min_timeout",
     "type": "uint32"
    },
    {
     "name": "min_bond",
     "type": "uint256"
    }
   ],
   "name": "getFinalAnswerIfMatches",
   "outputs": [
    {
     "name": "",
     "type": "bytes32"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function"
  },
  {
   "constant": false,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    },
    {
     "name": "history_hashes",
     "type": "bytes32[]"
    },
    {
     "name": "addrs",
     "type": "address[]"
    },
    {
     "name": "bonds",
     "type": "uint256[]"
    },
    {
     "name": "answers",
     "type": "bytes32[]"
    }
   ],
   "name": "claimWinnings",
   "outputs": [],
   "payable": false,
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "constant": false,
   "inputs": [
    {
     "name": "question_ids",
     "type": "bytes32[]"
    },
    {
     "name": "lengths",
     "type": "uint256[]"
    },
    {
     "name": "hist_hashes",
     "type": "bytes32[]"
    },
    {
     "name": "addrs",
     "type": "address[]"
    },
    {
     "name": "bonds",
     "type": "uint256[]"
    },
    {
     "name": "answers",
     "type": "bytes32[]"
    }
   ],
   "name": "claimMultipleAndWithdrawBalance",
   "outputs": [],
   "payable": false,
   "stateMutability": "nonpayable",
   "type": "function"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    }
   ],
   "name": "getContentHash",
   "outputs": [
    {
     "name": "",
     "type": "bytes32"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    }
   ],
   "name": "getArbitrator",
   "outputs": [
    {
     "name": "",
     "type": "address"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    }
   ],
   "name": "getOpeningTS",
   "outputs": [
    {
     "name": "",
     "type": "uint32"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    }
   ],
   "name": "getTimeout",
   "outputs": [
    {
     "name": "",
     "type": "uint32"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    }
   ],
   "name": "getFinalizeTS",
   "outputs": [
    {
     "name": "",
     "type": "uint32"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    }
   ],
   "name": "isPendingArbitration",
   "outputs": [
    {
     "name": "",
     "type": "bool"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    }
   ],
   "name": "getBounty",
   "outputs": [
    {
     "name": "",
     "type": "uint256"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    }
   ],
   "name": "getBestAnswer",
   "outputs": [
    {
     "name": "",
     "type": "bytes32"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    }
   ],
   "name": "getHistoryHash",
   "outputs": [
    {
     "name": "",
     "type": "bytes32"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function"
  },
  {
   "constant": true,
   "inputs": [
    {
     "name": "question_id",
     "type": "bytes32"
    }
   ],
   "name": "getBond",
   "outputs": [
    {
     "name": "",
     "type": "uint256"
    }
   ],
   "payable": false,
   "stateMutability": "view",
   "type": "function"
  }
 ],
 "bytecode": "0x608060405260006002553480156200001657600080fd5b506200008d606060405190810160405280603f81526020017f7b227469746c65223a20222573222c202274797065223a2022626f6f6c222c2081526020017f2263617465676f7279223a20222573222c20226c616e67223a20222573227d0081525062000308640100000000026401000000009004565b506200012a608060405190810160405280604f81526020017f7b227469746c65223a20222573222c202274797065223a202275696e74222c2081526020017f22646563696d616c73223a2031382c202263617465676f7279223a202225732281526020017f2c20226c616e67223a20222573227d000000000000000000000000000000000081525062000308640100000000026401000000009004565b50620001c7608060405190810160405280605a81526020017f7b227469746c65223a20222573222c202274797065223a202273696e676c652d81526020017f73656c656374222c20226f7574636f6d6573223a205b25735d2c20226361746581526020017f676f7279223a20222573222c20226c616e67223a20222573227d00000000000081525062000308640100000000026401000000009004565b5062000264608060405190810160405280605c81526020017f7b227469746c65223a20222573222c202274797065223a20226d756c7469706c81526020017f652d73656c656374222c20226f7574636f6d6573223a205b25735d2c2022636181526020017f7465676f7279223a20222573222c20226c616e67223a20222573227d0000000081525062000308640100000000026401000000009004565b5062000301608060405190810160405280604381526020017f7b227469746c65223a20222573222c202274797065223a20226461746574696d81526020017f65222c202263617465676f7279223a20222573222c20226c616e67223a20222581526020017f73227d000000000000000000000000000000000000000000000000000000000081525062000308640100000000026401000000009004565b50620004ca565b60025460008181526003602090815260408083204390555184519293928592918201918291908401908083835b60208310620003565780518252601f19909201916020918201910162000335565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310620003bb5780518252601f1990920191602091820191016200039a565b51815160209384036101000a6000190180199092169116179052604080519290940182900382206000888152600483528581209190915581835289518383015289513397508896507fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e4958b955084939084019290860191908190849084905b83811015620004545781810151838201526020016200043a565b50505050905090810190601f168015620004825780820380516001836020036101000a031916815260200191505b509250505060405180910390a3620004aa8160016401000000006200360e620004b382021704565b60025592915050565b600082820183811015620004c357fe5b9392505050565b6140f780620004da6000396000f3006080604052600436106101b35763ffffffff60e060020a6000350416631101a0fd81146101b8578063128b7a47146102bf57806312a203c3146102da578063144fa6d71461031f5780632417395c146103405780632518904c1461035857806326d6c97b1461038c57806328828b1e146103a45780632f998a6f146105165780633ccfd60b146105375780634dc266b41461054c5780634df6ca2a1461056d5780634e60f8831461058557806351577ea91461059d578063590158a7146105b55780636fa42742146105f557806370a0823114610616578063762c38fd146106375780637f8d429e146106ba57806382ffa9f7146106e6578063839df945146106fe57806383bf46091461073b5780638d552d4614610794578063924532fb146107ac57806395addb90146107c45780639e63fa6a146108405780639f1025c614610871578063a1130d0414610889578063a462fb7b14610945578063ac7b2a5f1461095d578063acae8f4e1461098a578063bc525652146109a2578063d09cc57e14610945578063d4876b9f146109ba578063f6a94ecb14610a43578063fc0c546a14610a6a578063fe92049d14610a7f575b600080fd5b3480156101c457600080fd5b506040805160206004602480358281013584810280870186019097528086526102bd96843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610aa69650505050505050565b005b3480156102cb57600080fd5b506102bd600435602435610ddb565b3480156102e657600080fd5b5061030d600435602435600160a060020a036044351663ffffffff60643516608435611042565b60408051918252519081900360200190f35b34801561032b57600080fd5b506102bd600160a060020a036004351661127b565b34801561034c57600080fd5b5061030d600435611331565b34801561036457600080fd5b50610370600435611346565b60408051600160a060020a039092168252519081900360200190f35b34801561039857600080fd5b5061030d600435611364565b3480156103b057600080fd5b50604080516020600480358082013583810280860185019096528085526102bd95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506113799650505050505050565b34801561052257600080fd5b506102bd60043560243560443560643561158d565b34801561054357600080fd5b506102bd61192d565b34801561055857600080fd5b506102bd600435602435604435606435611a21565b34801561057957600080fd5b506102bd600435611ec2565b34801561059157600080fd5b5061030d600435611f11565b3480156105a957600080fd5b5061030d600435611f23565b3480156105c157600080fd5b506105cd600435611f35565b60408051600160a060020a039094168452602084019290925282820152519081900360600190f35b34801561060157600080fd5b5061030d600160a060020a0360043516611f60565b34801561062257600080fd5b5061030d600160a060020a0360043516611f72565b34801561064357600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261030d95833595369560449491939091019190819084018382808284375094975050508335600160a060020a03169450505050602081013563ffffffff9081169160408101359091169060600135611f84565b3480156106c657600080fd5b506106d26004356122aa565b604080519115158252519081900360200190f35b3480156106f257600080fd5b5061030d600435612307565b34801561070a57600080fd5b5061071660043561231d565b6040805163ffffffff9094168452911515602084015282820152519081900360600190f35b34801561074757600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261030d94369492936024939284019190819084018382808284375094975061234a9650505050505050565b3480156107a057600080fd5b5061030d6004356124e4565b3480156107b857600080fd5b506106d26004356124f9565b3480156107d057600080fd5b506107dc600435612511565b604080519a8b52600160a060020a0390991660208b015263ffffffff9788168a8a015295871660608a015293909516608088015290151560a087015260c086015260e085019290925261010084019190915261012083015251908190036101400190f35b34801561084c57600080fd5b5061085860043561257d565b6040805163ffffffff9092168252519081900360200190f35b34801561087d57600080fd5b5061085860043561259f565b34801561089557600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261030d94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375094975050508335600160a060020a03169450505050602081013563ffffffff90811691604081013590911690606001356125c1565b34801561095157600080fd5b5061030d6004356125e9565b34801561096957600080fd5b506102bd600435602435604435600160a060020a0360643516608435612662565b34801561099657600080fd5b50610858600435612a9c565b3480156109ae57600080fd5b5061030d600435612abe565b3480156109c657600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261030d95833595369560449491939091019190819084018382808284375094975050600160a060020a0385351695505063ffffffff60208501358116946040810135909116935060608101359250608001359050612ad0565b348015610a4f57600080fd5b506102bd600435600160a060020a0360243516604435612e45565b348015610a7657600080fd5b5061037061321b565b348015610a8b57600080fd5b506102bd600435602435600160a060020a036044351661322a565b60008060008060008060008b610abb816122aa565b1515610b11576040805160e560020a62461bcd02815260206004820152601a60248201527f7175657374696f6e206d7573742062652066696e616c697a6564000000000000604482015290519081900360640190fd5b8b51600010610b90576040805160e560020a62461bcd02815260206004820152603060248201527f6174206c65617374206f6e6520686973746f7279206861736820656e7472792060448201527f6d7573742062652070726f766964656400000000000000000000000000000000606482015290519081900360840190fd5b60008d81526006602090815260408083208054600182015460029092015460059485905292852093840154600490940154600160a060020a039091169c50909a50909850909650945092505b8b51831015610cfc57610c4e858d85815181101515610bf757fe5b906020019060200201518b86815181101515610c0f57fe5b906020019060200201518d87815181101515610c2757fe5b906020019060200201518f88815181101515610c3f57fe5b906020019060200201516133f8565b9150610c60868863ffffffff61360e16565b9550610cb78d85888b8f88815181101515610c7757fe5b906020019060200201518f89815181101515610c8f57fe5b906020019060200201518f8a815181101515610ca757fe5b9060200190602002015189613628565b8b519099509096508a9084908110610ccb57fe5b9060200190602002015196508b83815181101515610ce557fe5b602090810290910101519450600190920191610bdc565b8415610d6757600160a060020a03881615610d2157610d1c8d8988613758565b600095505b60008d8152600660205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038a1617815560018101889055600201869055610db6565b610d818d89610d7c898b63ffffffff61360e16565b613758565b60008d8152600660205260408120805473ffffffffffffffffffffffffffffffffffffffff1916815560018101829055600201555b5050506000998a52506005602081905260409099209098019790975550505050505050565b600082815260056020526040812060010154839190819060c060020a900463ffffffff168110610e43576040805160e560020a62461bcd028152602060048201526013602482015260008051602061400c833981519152604482015290519081900360640190fd5b60008381526005602052604090206002015460ff1615610eaf576040805160e560020a62461bcd028152602060048201526028602482015260008051602061404c833981519152604482015260008051602061402c833981519152606482015290519081900360840190fd5b60008381526005602052604090206001015460e060020a900463ffffffff169150811580610ee857504263ffffffff168263ffffffff16115b1515610f40576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061406c83398151915260448201526000805160206140ac833981519152606482015290519081900360840190fd5b5060008281526005602052604090206001015460a060020a900463ffffffff16801580610f7957504263ffffffff168163ffffffff1611155b1515610fbd576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061408c833981519152604482015290519081900360640190fd5b610fc6846137db565b600085815260056020526040902060030154610fe8908563ffffffff61360e16565b6000868152600560209081526040918290206003018390558151878152908101929092528051339288927f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab6692918290030190a35050505050565b60008561104e816122aa565b15156110a4576040805160e560020a62461bcd02815260206004820152601a60248201527f7175657374696f6e206d7573742062652066696e616c697a6564000000000000604482015290519081900360640190fd5b6000878152600560205260409020548614611109576040805160e560020a62461bcd02815260206004820152601760248201527f636f6e74656e742068617368206d757374206d61746368000000000000000000604482015290519081900360640190fd5b600087815260056020526040902060010154600160a060020a0386811691161461117d576040805160e560020a62461bcd02815260206004820152601560248201527f61726269747261746f72206d757374206d617463680000000000000000000000604482015290519081900360640190fd5b60008781526005602052604090206001015463ffffffff60c060020a909104811690851611156111f7576040805160e560020a62461bcd02815260206004820152601b60248201527f74696d656f7574206d757374206265206c6f6e6720656e6f7567680000000000604482015290519081900360640190fd5b600087815260056020526040902060060154831115611260576040805160e560020a62461bcd02815260206004820152601860248201527f626f6e64206d757374206265206869676820656e6f7567680000000000000000604482015290519081900360640190fd5b50505060009384525050600560205250604090206004015490565b600054600160a060020a031615611302576040805160e560020a62461bcd02815260206004820152602260248201527f546f6b656e2063616e206f6e6c7920626520696e697469616c697a6564206f6e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60009081526005602052604090206003015490565b600090815260056020526040902060010154600160a060020a031690565b60009081526005602052604090206006015490565b60008080806060808080845b8e51891015611574578e8981518110151561139c57fe5b9060200190602002015196508d898151811015156113b657fe5b906020019060200201519550856040519080825280602002602001820160405280156113ec578160200160208202803883390190505b50945085604051908082528060200260200182016040528015611419578160200160208202803883390190505b50935085604051908082528060200260200182016040528015611446578160200160208202803883390190505b50925085604051908082528060200260200182016040528015611473578160200160208202803883390190505b509150600090505b8581101561155c578c8881518110151561149157fe5b9060200190602002015185828151811015156114a957fe5b602090810290910101528b518c90899081106114c157fe5b9060200190602002015184828151811015156114d957fe5b600160a060020a039092166020928302909101909101528a518b90899081106114fe57fe5b90602001906020020151838281518110151561151657fe5b6020908102909101015289518a908990811061152e57fe5b90602001906020020151828281518110151561154657fe5b602090810290910101526001978801970161147b565b6115698786868686610aa6565b600190980197611385565b61157c61192d565b505050505050505050505050505050565b600084815260056020526040812060010154859190819060c060020a900463ffffffff1681106115f5576040805160e560020a62461bcd028152602060048201526013602482015260008051602061400c833981519152604482015290519081900360640190fd5b60008381526005602052604090206002015460ff1615611661576040805160e560020a62461bcd028152602060048201526028602482015260008051602061404c833981519152604482015260008051602061402c833981519152606482015290519081900360840190fd5b60008381526005602052604090206001015460e060020a900463ffffffff16915081158061169a57504263ffffffff168263ffffffff16115b15156116f2576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061406c83398151915260448201526000805160206140ac833981519152606482015290519081900360840190fd5b5060008281526005602052604090206001015460a060020a900463ffffffff1680158061172b57504263ffffffff168163ffffffff1611155b151561176f576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061408c833981519152604482015290519081900360640190fd5b8684600081116117c9576040805160e560020a62461bcd02815260206004820152601560248201527f626f6e64206d75737420626520706f7369746976650000000000000000000000604482015290519081900360640190fd5b6000828152600560205260409020600601546117ec90600263ffffffff61397116565b811015611869576040805160e560020a62461bcd02815260206004820152602a60248201527f626f6e64206d75737420626520646f75626c65206174206c656173742070726560448201527f76696f757320626f6e6400000000000000000000000000000000000000000000606482015290519081900360840190fd5b888760008111156118dd576000828152600560205260409020600601548110156118dd576040805160e560020a62461bcd02815260206004820152601d60248201527f626f6e64206d75737420657863656564206d61785f70726576696f7573000000604482015290519081900360640190fd5b6118e6886137db565b6118f48b8b338b600061399c565b60008b815260056020526040902060010154611920908c908c9060c060020a900463ffffffff16613b15565b5050505050505050505050565b336000818152600160209081526040808320805490849055835482517fa9059cbb00000000000000000000000000000000000000000000000000000000815260048101969096526024860182905291519094600160a060020a039092169363a9059cbb93604480850194919392918390030190829087803b1580156119b157600080fd5b505af11580156119c5573d6000803e3d6000fd5b505050506040513d60208110156119db57600080fd5b505115156119e857600080fd5b60408051828152905133917f4ce7033d118120e254016dccf195288400b28fc8936425acd5f17ce2df3ab708919081900360200190a250565b600084815260056020526040812060010154819086908290819060c060020a900463ffffffff168110611a8c576040805160e560020a62461bcd028152602060048201526013602482015260008051602061400c833981519152604482015290519081900360640190fd5b60008381526005602052604090206001015460e060020a900463ffffffff169150811580611ac557504263ffffffff168263ffffffff16115b1515611b41576040805160e560020a62461bcd02815260206004820152602960248201527f66696e616c697a6174696f6e206465616c696e65206d757374206e6f7420686160448201527f7665207061737365640000000000000000000000000000000000000000000000606482015290519081900360840190fd5b5060008281526005602052604090206001015460a060020a900463ffffffff16801580611b7a57504263ffffffff168163ffffffff1611155b1515611bbe576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061408c833981519152604482015290519081900360640190fd5b6040805160208082018b90528183018a9052825180830384018152606090920192839052815191929182918401908083835b60208310611c0f5780518252601f199092019160209182019101611bf0565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209450888587604051602001808460001916600019168152602001836000191660001916815260200182815260200193505050506040516020818303038152906040526040518082805190602001908083835b60208310611cad5780518252601f199092019160209182019101611c8e565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120600081815260079092529290205491975050640100000000900460ff16159150611d719050576040805160e560020a62461bcd02815260206004820152602a60248201527f636f6d6d69746d656e74206d757374206e6f742068617665206265656e20726560448201527f7665616c65642079657400000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008481526007602052604090205463ffffffff428116911611611e04576040805160e560020a62461bcd028152602060048201526024808201527f72657665616c20646561646c696e65206d757374206e6f74206861766520706160448201527f7373656400000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000848152600760209081526040808320600181018c9055805464ff0000000019166401000000001790558b83526005909152902060060154861415611e7057600089815260056020526040902060010154611e70908a908a9060c060020a900463ffffffff16613b15565b60408051898152602081018990528082018890529051869133918c917fa7b2d313bc7a062e30b2c3b811aa4c9faf09755a6b4ea3bf42deff920944332f919081900360600190a4505050505050505050565b336000818152600860209081526040918290208490558151928352820183905280517fdca703d022171824d3d639b33c1525fd2338120b4cfb89507c0b59596893acda9281900390910190a150565b60046020526000908152604090205481565b60009081526005602052604090205490565b600660205260009081526040902080546001820154600290920154600160a060020a03909116919083565b60086020526000908152604090205481565b60016020526000908152604090205481565b600086815260036020526040812054819081908110611fed576040805160e560020a62461bcd02815260206004820152601360248201527f74656d706c617465206d75737420657869737400000000000000000000000000604482015290519081900360640190fd5b888589604051602001808481526020018363ffffffff1663ffffffff1660e060020a02815260040182805190602001908083835b602083106120405780518252601f199092019160209182019101612021565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b602083106120a55780518252601f199092019160209182019101612086565b51815160209384036101000a600019018019909216911617905260408051929094018290038220828201819052600160a060020a038e166c010000000000000000000000009081028487015263ffffffff8e1660e060020a02605485015233026058840152606c8084018c905285518085039091018152608c9093019485905282519098509195509293508392850191508083835b602083106121595780518252601f19909201916020918201910161213a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905061219781838989896000613b8b565b816000191633600160a060020a031682600019167ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8c8c8c8c8c8c42604051808881526020018060200187600160a060020a0316600160a060020a031681526020018663ffffffff1663ffffffff1681526020018563ffffffff1663ffffffff168152602001848152602001838152602001828103825288818151815260200191508051906020019080838360005b8381101561225e578181015183820152602001612246565b50505050905090810190601f16801561228b5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390a498975050505050505050565b6000818152600560205260408120600181015460029091015460e060020a90910463ffffffff169060ff161580156122e85750600063ffffffff8216115b801561230057504263ffffffff168163ffffffff1611155b9392505050565b6000908152600560208190526040909120015490565b6007602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b60025460008181526003602090815260408083204390555184519293928592918201918291908401908083835b602083106123965780518252601f199092019160209182019101612377565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b602083106123f95780518252601f1990920191602091820191016123da565b51815160209384036101000a6000190180199092169116179052604080519290940182900382206000888152600483528581209190915581835289518383015289513397508896507fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e4958b955084939084019290860191908190849084905b83811015612490578181015183820152602001612478565b50505050905090810190601f1680156124bd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a36124db81600163ffffffff61360e16565b60025592915050565b60009081526005602052604090206004015490565b60009081526005602052604090206002015460ff1690565b600560208190526000918252604090912080546001820154600283015460038401546004850154958501546006909501549395600160a060020a0384169563ffffffff60a060020a860481169660c060020a870482169660e060020a90049091169460ff16939291908a565b60009081526005602052604090206001015460a060020a900463ffffffff1690565b60009081526005602052604090206001015460c060020a900463ffffffff1690565b6000806125cd8861234a565b90506125dd818888888888611f84565b98975050505050505050565b6000816125f5816122aa565b151561264b576040805160e560020a62461bcd02815260206004820152601a60248201527f7175657374696f6e206d7573742062652066696e616c697a6564000000000000604482015290519081900360640190fd5b505060009081526005602052604090206004015490565b600085815260056020526040812060010154819087908290819060c060020a900463ffffffff1681106126cd576040805160e560020a62461bcd028152602060048201526013602482015260008051602061400c833981519152604482015290519081900360640190fd5b60008381526005602052604090206002015460ff1615612739576040805160e560020a62461bcd028152602060048201526028602482015260008051602061404c833981519152604482015260008051602061402c833981519152606482015290519081900360840190fd5b60008381526005602052604090206001015460e060020a900463ffffffff16915081158061277257504263ffffffff168263ffffffff16115b15156127ca576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061406c83398151915260448201526000805160206140ac833981519152606482015290519081900360840190fd5b5060008281526005602052604090206001015460a060020a900463ffffffff1680158061280357504263ffffffff168163ffffffff1611155b1515612847576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061408c833981519152604482015290519081900360640190fd5b8986600081116128a1576040805160e560020a62461bcd02815260206004820152601560248201527f626f6e64206d75737420626520706f7369746976650000000000000000000000604482015290519081900360640190fd5b6000828152600560205260409020600601546128c490600263ffffffff61397116565b811015612941576040805160e560020a62461bcd02815260206004820152602a60248201527f626f6e64206d75737420626520646f75626c65206174206c656173742070726560448201527f76696f757320626f6e6400000000000000000000000000000000000000000000606482015290519081900360840190fd5b8b8a60008111156129b5576000828152600560205260409020600601548110156129b5576040805160e560020a62461bcd02815260206004820152601d60248201527f626f6e64206d75737420657863656564206d61785f70726576696f7573000000604482015290519081900360640190fd5b6129be8a6137db565b8d8d8b604051602001808460001916600019168152602001836000191660001916815260200182815260200193505050506040516020818303038152906040526040518082805190602001908083835b60208310612a2d5780518252601f199092019160209182019101612a0e565b5181516020939093036101000a600019018019909116921691909117905260405192018290039091209b50505050600160a060020a038b1615612a70578a612a72565b335b9750612a7e8e8a613eed565b612a8c8e8a8a8d600161399c565b5050505050505050505050505050565b60009081526005602052604090206001015460e060020a900463ffffffff1690565b60036020526000908152604090205481565b6000806000612ade846137db565b60008a81526003602052604081205411612b42576040805160e560020a62461bcd02815260206004820152601360248201527f74656d706c617465206d75737420657869737400000000000000000000000000604482015290519081900360640190fd5b89868a604051602001808481526020018363ffffffff1663ffffffff1660e060020a02815260040182805190602001908083835b60208310612b955780518252601f199092019160209182019101612b76565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b60208310612bfa5780518252601f199092019160209182019101612bdb565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150818888338860405160200180866000191660001916815260200185600160a060020a0316600160a060020a03166c010000000000000000000000000281526014018463ffffffff1663ffffffff1660e060020a02815260040183600160a060020a0316600160a060020a03166c01000000000000000000000000028152601401828152602001955050505050506040516020818303038152906040526040518082805190602001908083835b60208310612cf45780518252601f199092019160209182019101612cd5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050612d3181838a8a8a89613b8b565b816000191633600160a060020a031682600019167ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8d8d8d8d8d8d42604051808881526020018060200187600160a060020a0316600160a060020a031681526020018663ffffffff1663ffffffff1681526020018563ffffffff1663ffffffff168152602001848152602001838152602001828103825288818151815260200191508051906020019080838360005b83811015612df8578181015183820152602001612de0565b50505050905090810190601f168015612e255780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390a49998505050505050505050565b6000838152600560205260409020600101548390600160a060020a03163314612eb8576040805160e560020a62461bcd02815260206004820152601d60248201527f6d73672e73656e646572206d7573742062652061726269747261746f72000000604482015290519081900360640190fd5b600084815260056020526040812060010154859190819060c060020a900463ffffffff168110612f20576040805160e560020a62461bcd028152602060048201526013602482015260008051602061400c833981519152604482015290519081900360640190fd5b60008381526005602052604090206002015460ff1615612f8c576040805160e560020a62461bcd028152602060048201526028602482015260008051602061404c833981519152604482015260008051602061402c833981519152606482015290519081900360840190fd5b60008381526005602052604090206001015460e060020a900463ffffffff169150811580612fc557504263ffffffff168263ffffffff16115b151561301d576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061406c83398151915260448201526000805160206140ac833981519152606482015290519081900360840190fd5b5060008281526005602052604090206001015460a060020a900463ffffffff1680158061305657504263ffffffff168163ffffffff1611155b151561309a576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061408c833981519152604482015290519081900360640190fd5b8685600081111561310e5760008281526005602052604090206006015481101561310e576040805160e560020a62461bcd02815260206004820152601d60248201527f626f6e64206d75737420657863656564206d61785f70726576696f7573000000604482015290519081900360640190fd5b600089815260056020526040812060060154116131c1576040805160e560020a62461bcd02815260206004820152604260248201527f5175657374696f6e206d75737420616c7265616479206861766520616e20616e60448201527f73776572207768656e206172626974726174696f6e206973207265717565737460648201527f6564000000000000000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b600089815260056020526040808220600201805460ff1916600117905551600160a060020a038a16918b917f75d7939999bc902187c4aed400872883e445145f1983539166f783fa040b47629190a3505050505050505050565b600054600160a060020a031681565b6000838152600560205260409020600101548390600160a060020a0316331461329d576040805160e560020a62461bcd02815260206004820152601d60248201527f6d73672e73656e646572206d7573742062652061726269747261746f72000000604482015290519081900360640190fd5b600084815260056020526040902060020154849060ff16151561332f576040805160e560020a62461bcd028152602060048201526024808201527f7175657374696f6e206d7573742062652070656e64696e67206172626974726160448201527f74696f6e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038316151561338f576040805160e560020a62461bcd02815260206004820152601960248201527f616e737765726572206d7573742062652070726f766964656400000000000000604482015290519081900360640190fd5b604051849086907f18d760beffe3717270cd90d9d920ec1a48c194e9ad7bba23eb1c92d3eb974f9790600090a36000858152600560205260408120600201805460ff191690556133e5908690869086908061399c565b6133f185856000613b15565b5050505050565b604080516020808201879052818301869052606082018590526c01000000000000000000000000600160a060020a0385160260808301527f01000000000000000000000000000000000000000000000000000000000000006094830152825160758184030181526095909201928390528151600093918291908401908083835b602083106134975780518252601f199092019160209182019101613478565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912089141592506134d491505057506001613605565b604080516020808201889052818301879052606082018690526c01000000000000000000000000600160a060020a0386160260808301526000609483015282516075818403018152609590920192839052815191929182918401908083835b602083106135525780518252601f199092019160209182019101613533565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120891415925061358f91505057506000613605565b6040805160e560020a62461bcd02815260206004820152603660248201527f486973746f727920696e7075742070726f766964656420646964206e6f74206d60448201527f6174636820746865206578706563746564206861736800000000000000000000606482015290519081900360840190fd5b95945050505050565b60008282018381101561361d57fe5b8091505b5092915050565b60008060008084156136a857600086815260076020526040902054869250640100000000900460ff161515613680576000828152600760205260408120805464ffffffffff1916815560010155899350889250613749565b6000828152600760205260408120600181018054825464ffffffffff19169092559190915595505b858b141561374257600160a060020a03891615156137015760008c81526005602052604090206003015497985088976136e8908b9063ffffffff61360e16565b60008d8152600560205260408120600301559950613742565b600160a060020a03888116908a161461374257868a10156137225789613724565b865b905061373b8c8a610d7c8d8563ffffffff613fe116565b8798508099505b8989935093505b50509850989650505050505050565b600160a060020a038216600090815260016020526040902054613781908263ffffffff61360e16565b600160a060020a0383166000818152600160209081526040918290209390935580518481529051919286927f9c121aff33b50c1a53fef034ebec5f83da2d5a5187048f9c76c397ba27c1a1a69281900390910190a3505050565b60008115156137e95761396d565b5033600090815260016020526040812054908111156138515781811061382e57613819818363ffffffff613fe116565b3360009081526001602052604090205561396d565b61383e828263ffffffff613fe116565b3360009081526001602052604081205591505b60008054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690529051600160a060020a03909216926323b872dd926064808401936020939083900390910190829087803b1580156138c557600080fd5b505af11580156138d9573d6000803e3d6000fd5b505050506040513d60208110156138ef57600080fd5b5051151561396d576040805160e560020a62461bcd02815260206004820152603960248201527f5472616e73666572206f6620746f6b656e73206661696c65642c20696e73756660448201527f66696369656e7420617070726f7665642062616c616e63653f00000000000000606482015290519081900360840190fd5b5050565b6000808315156139845760009150613621565b5082820282848281151561399457fe5b041461361d57fe5b600085815260056020818152604080842090920154825180830191909152808301889052606081018690526c01000000000000000000000000600160a060020a0388160260808201527f01000000000000000000000000000000000000000000000000000000000000008515150260948201528251607581830301815260959091019283905280519092918291908401908083835b60208310613a505780518252601f199092019160209182019101613a31565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090506000831115613a9d5760008681526005602052604090206006018390555b600086815260056020818152604092839020909101839055815187815290810183905280820185905242606082015283151560808201529051600160a060020a0386169188917fe47ca4ebbbc2990134d1168821f38c5e177f3d5ee564bffeadeaa351905e62219181900360a00190a3505050505050565b6000838152600560205260409020600401829055613b3d63ffffffff428116908390613ff316565b600093845260056020526040909320600101805463ffffffff9490941660e060020a027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff909416939093179092555050565b6000868152600560205260408120600101548190889060c060020a900463ffffffff1615613c03576040805160e560020a62461bcd02815260206004820152601760248201527f7175657374696f6e206d757374206e6f74206578697374000000000000000000604482015290519081900360640190fd5b839250600063ffffffff871611613c64576040805160e560020a62461bcd02815260206004820152601860248201527f74696d656f7574206d75737420626520706f7369746976650000000000000000604482015290519081900360640190fd5b6301e1338063ffffffff871610613ceb576040805160e560020a62461bcd02815260206004820152602260248201527f74696d656f7574206d757374206265206c657373207468616e2033363520646160448201527f7973000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0387161515613d4b576040805160e560020a62461bcd02815260206004820152601660248201527f61726269747261746f72206d7573742062652073657400000000000000000000604482015290519081900360640190fd5b33600160a060020a03881614613e4957600160a060020a038716600090815260086020526040902054915081831015613df3576040805160e560020a62461bcd028152602060048201526024808201527f4554482070726f7669646564206d75737420636f766572207175657374696f6e60448201527f2066656500000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b613e03838363ffffffff613fe116565b600160a060020a038816600090815260016020526040902054909350613e2f908363ffffffff61360e16565b600160a060020a0388166000908152600160205260409020555b50506000968752600560205260409096209485555060018401805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03949094169390931777ffffffff0000000000000000000000000000000000000000191660a060020a63ffffffff92831602177fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff1660c060020a929091169190910217905560030155565b60008181526007602052604081205463ffffffff1615613f7d576040805160e560020a62461bcd02815260206004820152602160248201527f636f6d6d69746d656e74206d757374206e6f7420616c7265616479206578697360448201527f7400000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008381526005602052604090206001015460089060c060020a900463ffffffff16049050613fb663ffffffff428116908390613ff316565b600092835260076020526040909220805463ffffffff191663ffffffff909316929092179091555050565b600082821115613fed57fe5b50900390565b600082820163ffffffff808516908216101561361d57fe007175657374696f6e206d757374206578697374000000000000000000000000006974726174696f6e0000000000000000000000000000000000000000000000007175657374696f6e206d757374206e6f742062652070656e64696e672061726266696e616c697a6174696f6e20646561646c696e65206d757374206e6f7420686f70656e696e672064617465206d7573742068617665207061737365640000006176652070617373656400000000000000000000000000000000000000000000a165627a7a723058207048b13e242e6a61a0399945a4d5f1fd64147d194f6fce06640f4529b5c3dfe00029",
 "deployedBytecode": "0x6080604052600436106101b35763ffffffff60e060020a6000350416631101a0fd81146101b8578063128b7a47146102bf57806312a203c3146102da578063144fa6d71461031f5780632417395c146103405780632518904c1461035857806326d6c97b1461038c57806328828b1e146103a45780632f998a6f146105165780633ccfd60b146105375780634dc266b41461054c5780634df6ca2a1461056d5780634e60f8831461058557806351577ea91461059d578063590158a7146105b55780636fa42742146105f557806370a0823114610616578063762c38fd146106375780637f8d429e146106ba57806382ffa9f7146106e6578063839df945146106fe57806383bf46091461073b5780638d552d4614610794578063924532fb146107ac57806395addb90146107c45780639e63fa6a146108405780639f1025c614610871578063a1130d0414610889578063a462fb7b14610945578063ac7b2a5f1461095d578063acae8f4e1461098a578063bc525652146109a2578063d09cc57e14610945578063d4876b9f146109ba578063f6a94ecb14610a43578063fc0c546a14610a6a578063fe92049d14610a7f575b600080fd5b3480156101c457600080fd5b506040805160206004602480358281013584810280870186019097528086526102bd96843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610aa69650505050505050565b005b3480156102cb57600080fd5b506102bd600435602435610ddb565b3480156102e657600080fd5b5061030d600435602435600160a060020a036044351663ffffffff60643516608435611042565b60408051918252519081900360200190f35b34801561032b57600080fd5b506102bd600160a060020a036004351661127b565b34801561034c57600080fd5b5061030d600435611331565b34801561036457600080fd5b50610370600435611346565b60408051600160a060020a039092168252519081900360200190f35b34801561039857600080fd5b5061030d600435611364565b3480156103b057600080fd5b50604080516020600480358082013583810280860185019096528085526102bd95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506113799650505050505050565b34801561052257600080fd5b506102bd60043560243560443560643561158d565b34801561054357600080fd5b506102bd61192d565b34801561055857600080fd5b506102bd600435602435604435606435611a21565b34801561057957600080fd5b506102bd600435611ec2565b34801561059157600080fd5b5061030d600435611f11565b3480156105a957600080fd5b5061030d600435611f23565b3480156105c157600080fd5b506105cd600435611f35565b60408051600160a060020a039094168452602084019290925282820152519081900360600190f35b34801561060157600080fd5b5061030d600160a060020a0360043516611f60565b34801561062257600080fd5b5061030d600160a060020a0360043516611f72565b34801561064357600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261030d95833595369560449491939091019190819084018382808284375094975050508335600160a060020a03169450505050602081013563ffffffff9081169160408101359091169060600135611f84565b3480156106c657600080fd5b506106d26004356122aa565b604080519115158252519081900360200190f35b3480156106f257600080fd5b5061030d600435612307565b34801561070a57600080fd5b5061071660043561231d565b6040805163ffffffff9094168452911515602084015282820152519081900360600190f35b34801561074757600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261030d94369492936024939284019190819084018382808284375094975061234a9650505050505050565b3480156107a057600080fd5b5061030d6004356124e4565b3480156107b857600080fd5b506106d26004356124f9565b3480156107d057600080fd5b506107dc600435612511565b604080519a8b52600160a060020a0390991660208b015263ffffffff9788168a8a015295871660608a015293909516608088015290151560a087015260c086015260e085019290925261010084019190915261012083015251908190036101400190f35b34801561084c57600080fd5b5061085860043561257d565b6040805163ffffffff9092168252519081900360200190f35b34801561087d57600080fd5b5061085860043561259f565b34801561089557600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261030d94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375094975050508335600160a060020a03169450505050602081013563ffffffff90811691604081013590911690606001356125c1565b34801561095157600080fd5b5061030d6004356125e9565b34801561096957600080fd5b506102bd600435602435604435600160a060020a0360643516608435612662565b34801561099657600080fd5b50610858600435612a9c565b3480156109ae57600080fd5b5061030d600435612abe565b3480156109c657600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261030d95833595369560449491939091019190819084018382808284375094975050600160a060020a0385351695505063ffffffff60208501358116946040810135909116935060608101359250608001359050612ad0565b348015610a4f57600080fd5b506102bd600435600160a060020a0360243516604435612e45565b348015610a7657600080fd5b5061037061321b565b348015610a8b57600080fd5b506102bd600435602435600160a060020a036044351661322a565b60008060008060008060008b610abb816122aa565b1515610b11576040805160e560020a62461bcd02815260206004820152601a60248201527f7175657374696f6e206d7573742062652066696e616c697a6564000000000000604482015290519081900360640190fd5b8b51600010610b90576040805160e560020a62461bcd02815260206004820152603060248201527f6174206c65617374206f6e6520686973746f7279206861736820656e7472792060448201527f6d7573742062652070726f766964656400000000000000000000000000000000606482015290519081900360840190fd5b60008d81526006602090815260408083208054600182015460029092015460059485905292852093840154600490940154600160a060020a039091169c50909a50909850909650945092505b8b51831015610cfc57610c4e858d85815181101515610bf757fe5b906020019060200201518b86815181101515610c0f57fe5b906020019060200201518d87815181101515610c2757fe5b906020019060200201518f88815181101515610c3f57fe5b906020019060200201516133f8565b9150610c60868863ffffffff61360e16565b9550610cb78d85888b8f88815181101515610c7757fe5b906020019060200201518f89815181101515610c8f57fe5b906020019060200201518f8a815181101515610ca757fe5b9060200190602002015189613628565b8b519099509096508a9084908110610ccb57fe5b9060200190602002015196508b83815181101515610ce557fe5b602090810290910101519450600190920191610bdc565b8415610d6757600160a060020a03881615610d2157610d1c8d8988613758565b600095505b60008d8152600660205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038a1617815560018101889055600201869055610db6565b610d818d89610d7c898b63ffffffff61360e16565b613758565b60008d8152600660205260408120805473ffffffffffffffffffffffffffffffffffffffff1916815560018101829055600201555b5050506000998a52506005602081905260409099209098019790975550505050505050565b600082815260056020526040812060010154839190819060c060020a900463ffffffff168110610e43576040805160e560020a62461bcd028152602060048201526013602482015260008051602061400c833981519152604482015290519081900360640190fd5b60008381526005602052604090206002015460ff1615610eaf576040805160e560020a62461bcd028152602060048201526028602482015260008051602061404c833981519152604482015260008051602061402c833981519152606482015290519081900360840190fd5b60008381526005602052604090206001015460e060020a900463ffffffff169150811580610ee857504263ffffffff168263ffffffff16115b1515610f40576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061406c83398151915260448201526000805160206140ac833981519152606482015290519081900360840190fd5b5060008281526005602052604090206001015460a060020a900463ffffffff16801580610f7957504263ffffffff168163ffffffff1611155b1515610fbd576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061408c833981519152604482015290519081900360640190fd5b610fc6846137db565b600085815260056020526040902060030154610fe8908563ffffffff61360e16565b6000868152600560209081526040918290206003018390558151878152908101929092528051339288927f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab6692918290030190a35050505050565b60008561104e816122aa565b15156110a4576040805160e560020a62461bcd02815260206004820152601a60248201527f7175657374696f6e206d7573742062652066696e616c697a6564000000000000604482015290519081900360640190fd5b6000878152600560205260409020548614611109576040805160e560020a62461bcd02815260206004820152601760248201527f636f6e74656e742068617368206d757374206d61746368000000000000000000604482015290519081900360640190fd5b600087815260056020526040902060010154600160a060020a0386811691161461117d576040805160e560020a62461bcd02815260206004820152601560248201527f61726269747261746f72206d757374206d617463680000000000000000000000604482015290519081900360640190fd5b60008781526005602052604090206001015463ffffffff60c060020a909104811690851611156111f7576040805160e560020a62461bcd02815260206004820152601b60248201527f74696d656f7574206d757374206265206c6f6e6720656e6f7567680000000000604482015290519081900360640190fd5b600087815260056020526040902060060154831115611260576040805160e560020a62461bcd02815260206004820152601860248201527f626f6e64206d757374206265206869676820656e6f7567680000000000000000604482015290519081900360640190fd5b50505060009384525050600560205250604090206004015490565b600054600160a060020a031615611302576040805160e560020a62461bcd02815260206004820152602260248201527f546f6b656e2063616e206f6e6c7920626520696e697469616c697a6564206f6e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60009081526005602052604090206003015490565b600090815260056020526040902060010154600160a060020a031690565b60009081526005602052604090206006015490565b60008080806060808080845b8e51891015611574578e8981518110151561139c57fe5b9060200190602002015196508d898151811015156113b657fe5b906020019060200201519550856040519080825280602002602001820160405280156113ec578160200160208202803883390190505b50945085604051908082528060200260200182016040528015611419578160200160208202803883390190505b50935085604051908082528060200260200182016040528015611446578160200160208202803883390190505b50925085604051908082528060200260200182016040528015611473578160200160208202803883390190505b509150600090505b8581101561155c578c8881518110151561149157fe5b9060200190602002015185828151811015156114a957fe5b602090810290910101528b518c90899081106114c157fe5b9060200190602002015184828151811015156114d957fe5b600160a060020a039092166020928302909101909101528a518b90899081106114fe57fe5b90602001906020020151838281518110151561151657fe5b6020908102909101015289518a908990811061152e57fe5b90602001906020020151828281518110151561154657fe5b602090810290910101526001978801970161147b565b6115698786868686610aa6565b600190980197611385565b61157c61192d565b505050505050505050505050505050565b600084815260056020526040812060010154859190819060c060020a900463ffffffff1681106115f5576040805160e560020a62461bcd028152602060048201526013602482015260008051602061400c833981519152604482015290519081900360640190fd5b60008381526005602052604090206002015460ff1615611661576040805160e560020a62461bcd028152602060048201526028602482015260008051602061404c833981519152604482015260008051602061402c833981519152606482015290519081900360840190fd5b60008381526005602052604090206001015460e060020a900463ffffffff16915081158061169a57504263ffffffff168263ffffffff16115b15156116f2576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061406c83398151915260448201526000805160206140ac833981519152606482015290519081900360840190fd5b5060008281526005602052604090206001015460a060020a900463ffffffff1680158061172b57504263ffffffff168163ffffffff1611155b151561176f576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061408c833981519152604482015290519081900360640190fd5b8684600081116117c9576040805160e560020a62461bcd02815260206004820152601560248201527f626f6e64206d75737420626520706f7369746976650000000000000000000000604482015290519081900360640190fd5b6000828152600560205260409020600601546117ec90600263ffffffff61397116565b811015611869576040805160e560020a62461bcd02815260206004820152602a60248201527f626f6e64206d75737420626520646f75626c65206174206c656173742070726560448201527f76696f757320626f6e6400000000000000000000000000000000000000000000606482015290519081900360840190fd5b888760008111156118dd576000828152600560205260409020600601548110156118dd576040805160e560020a62461bcd02815260206004820152601d60248201527f626f6e64206d75737420657863656564206d61785f70726576696f7573000000604482015290519081900360640190fd5b6118e6886137db565b6118f48b8b338b600061399c565b60008b815260056020526040902060010154611920908c908c9060c060020a900463ffffffff16613b15565b5050505050505050505050565b336000818152600160209081526040808320805490849055835482517fa9059cbb00000000000000000000000000000000000000000000000000000000815260048101969096526024860182905291519094600160a060020a039092169363a9059cbb93604480850194919392918390030190829087803b1580156119b157600080fd5b505af11580156119c5573d6000803e3d6000fd5b505050506040513d60208110156119db57600080fd5b505115156119e857600080fd5b60408051828152905133917f4ce7033d118120e254016dccf195288400b28fc8936425acd5f17ce2df3ab708919081900360200190a250565b600084815260056020526040812060010154819086908290819060c060020a900463ffffffff168110611a8c576040805160e560020a62461bcd028152602060048201526013602482015260008051602061400c833981519152604482015290519081900360640190fd5b60008381526005602052604090206001015460e060020a900463ffffffff169150811580611ac557504263ffffffff168263ffffffff16115b1515611b41576040805160e560020a62461bcd02815260206004820152602960248201527f66696e616c697a6174696f6e206465616c696e65206d757374206e6f7420686160448201527f7665207061737365640000000000000000000000000000000000000000000000606482015290519081900360840190fd5b5060008281526005602052604090206001015460a060020a900463ffffffff16801580611b7a57504263ffffffff168163ffffffff1611155b1515611bbe576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061408c833981519152604482015290519081900360640190fd5b6040805160208082018b90528183018a9052825180830384018152606090920192839052815191929182918401908083835b60208310611c0f5780518252601f199092019160209182019101611bf0565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209450888587604051602001808460001916600019168152602001836000191660001916815260200182815260200193505050506040516020818303038152906040526040518082805190602001908083835b60208310611cad5780518252601f199092019160209182019101611c8e565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120600081815260079092529290205491975050640100000000900460ff16159150611d719050576040805160e560020a62461bcd02815260206004820152602a60248201527f636f6d6d69746d656e74206d757374206e6f742068617665206265656e20726560448201527f7665616c65642079657400000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008481526007602052604090205463ffffffff428116911611611e04576040805160e560020a62461bcd028152602060048201526024808201527f72657665616c20646561646c696e65206d757374206e6f74206861766520706160448201527f7373656400000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000848152600760209081526040808320600181018c9055805464ff0000000019166401000000001790558b83526005909152902060060154861415611e7057600089815260056020526040902060010154611e70908a908a9060c060020a900463ffffffff16613b15565b60408051898152602081018990528082018890529051869133918c917fa7b2d313bc7a062e30b2c3b811aa4c9faf09755a6b4ea3bf42deff920944332f919081900360600190a4505050505050505050565b336000818152600860209081526040918290208490558151928352820183905280517fdca703d022171824d3d639b33c1525fd2338120b4cfb89507c0b59596893acda9281900390910190a150565b60046020526000908152604090205481565b60009081526005602052604090205490565b600660205260009081526040902080546001820154600290920154600160a060020a03909116919083565b60086020526000908152604090205481565b60016020526000908152604090205481565b600086815260036020526040812054819081908110611fed576040805160e560020a62461bcd02815260206004820152601360248201527f74656d706c617465206d75737420657869737400000000000000000000000000604482015290519081900360640190fd5b888589604051602001808481526020018363ffffffff1663ffffffff1660e060020a02815260040182805190602001908083835b602083106120405780518252601f199092019160209182019101612021565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b602083106120a55780518252601f199092019160209182019101612086565b51815160209384036101000a600019018019909216911617905260408051929094018290038220828201819052600160a060020a038e166c010000000000000000000000009081028487015263ffffffff8e1660e060020a02605485015233026058840152606c8084018c905285518085039091018152608c9093019485905282519098509195509293508392850191508083835b602083106121595780518252601f19909201916020918201910161213a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905061219781838989896000613b8b565b816000191633600160a060020a031682600019167ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8c8c8c8c8c8c42604051808881526020018060200187600160a060020a0316600160a060020a031681526020018663ffffffff1663ffffffff1681526020018563ffffffff1663ffffffff168152602001848152602001838152602001828103825288818151815260200191508051906020019080838360005b8381101561225e578181015183820152602001612246565b50505050905090810190601f16801561228b5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390a498975050505050505050565b6000818152600560205260408120600181015460029091015460e060020a90910463ffffffff169060ff161580156122e85750600063ffffffff8216115b801561230057504263ffffffff168163ffffffff1611155b9392505050565b6000908152600560208190526040909120015490565b6007602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b60025460008181526003602090815260408083204390555184519293928592918201918291908401908083835b602083106123965780518252601f199092019160209182019101612377565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b602083106123f95780518252601f1990920191602091820191016123da565b51815160209384036101000a6000190180199092169116179052604080519290940182900382206000888152600483528581209190915581835289518383015289513397508896507fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e4958b955084939084019290860191908190849084905b83811015612490578181015183820152602001612478565b50505050905090810190601f1680156124bd5780820380516001836020036101000a031916815260200191505b509250505060405180910390a36124db81600163ffffffff61360e16565b60025592915050565b60009081526005602052604090206004015490565b60009081526005602052604090206002015460ff1690565b600560208190526000918252604090912080546001820154600283015460038401546004850154958501546006909501549395600160a060020a0384169563ffffffff60a060020a860481169660c060020a870482169660e060020a90049091169460ff16939291908a565b60009081526005602052604090206001015460a060020a900463ffffffff1690565b60009081526005602052604090206001015460c060020a900463ffffffff1690565b6000806125cd8861234a565b90506125dd818888888888611f84565b98975050505050505050565b6000816125f5816122aa565b151561264b576040805160e560020a62461bcd02815260206004820152601a60248201527f7175657374696f6e206d7573742062652066696e616c697a6564000000000000604482015290519081900360640190fd5b505060009081526005602052604090206004015490565b600085815260056020526040812060010154819087908290819060c060020a900463ffffffff1681106126cd576040805160e560020a62461bcd028152602060048201526013602482015260008051602061400c833981519152604482015290519081900360640190fd5b60008381526005602052604090206002015460ff1615612739576040805160e560020a62461bcd028152602060048201526028602482015260008051602061404c833981519152604482015260008051602061402c833981519152606482015290519081900360840190fd5b60008381526005602052604090206001015460e060020a900463ffffffff16915081158061277257504263ffffffff168263ffffffff16115b15156127ca576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061406c83398151915260448201526000805160206140ac833981519152606482015290519081900360840190fd5b5060008281526005602052604090206001015460a060020a900463ffffffff1680158061280357504263ffffffff168163ffffffff1611155b1515612847576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061408c833981519152604482015290519081900360640190fd5b8986600081116128a1576040805160e560020a62461bcd02815260206004820152601560248201527f626f6e64206d75737420626520706f7369746976650000000000000000000000604482015290519081900360640190fd5b6000828152600560205260409020600601546128c490600263ffffffff61397116565b811015612941576040805160e560020a62461bcd02815260206004820152602a60248201527f626f6e64206d75737420626520646f75626c65206174206c656173742070726560448201527f76696f757320626f6e6400000000000000000000000000000000000000000000606482015290519081900360840190fd5b8b8a60008111156129b5576000828152600560205260409020600601548110156129b5576040805160e560020a62461bcd02815260206004820152601d60248201527f626f6e64206d75737420657863656564206d61785f70726576696f7573000000604482015290519081900360640190fd5b6129be8a6137db565b8d8d8b604051602001808460001916600019168152602001836000191660001916815260200182815260200193505050506040516020818303038152906040526040518082805190602001908083835b60208310612a2d5780518252601f199092019160209182019101612a0e565b5181516020939093036101000a600019018019909116921691909117905260405192018290039091209b50505050600160a060020a038b1615612a70578a612a72565b335b9750612a7e8e8a613eed565b612a8c8e8a8a8d600161399c565b5050505050505050505050505050565b60009081526005602052604090206001015460e060020a900463ffffffff1690565b60036020526000908152604090205481565b6000806000612ade846137db565b60008a81526003602052604081205411612b42576040805160e560020a62461bcd02815260206004820152601360248201527f74656d706c617465206d75737420657869737400000000000000000000000000604482015290519081900360640190fd5b89868a604051602001808481526020018363ffffffff1663ffffffff1660e060020a02815260040182805190602001908083835b60208310612b955780518252601f199092019160209182019101612b76565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b60208310612bfa5780518252601f199092019160209182019101612bdb565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150818888338860405160200180866000191660001916815260200185600160a060020a0316600160a060020a03166c010000000000000000000000000281526014018463ffffffff1663ffffffff1660e060020a02815260040183600160a060020a0316600160a060020a03166c01000000000000000000000000028152601401828152602001955050505050506040516020818303038152906040526040518082805190602001908083835b60208310612cf45780518252601f199092019160209182019101612cd5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050612d3181838a8a8a89613b8b565b816000191633600160a060020a031682600019167ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8d8d8d8d8d8d42604051808881526020018060200187600160a060020a0316600160a060020a031681526020018663ffffffff1663ffffffff1681526020018563ffffffff1663ffffffff168152602001848152602001838152602001828103825288818151815260200191508051906020019080838360005b83811015612df8578181015183820152602001612de0565b50505050905090810190601f168015612e255780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390a49998505050505050505050565b6000838152600560205260409020600101548390600160a060020a03163314612eb8576040805160e560020a62461bcd02815260206004820152601d60248201527f6d73672e73656e646572206d7573742062652061726269747261746f72000000604482015290519081900360640190fd5b600084815260056020526040812060010154859190819060c060020a900463ffffffff168110612f20576040805160e560020a62461bcd028152602060048201526013602482015260008051602061400c833981519152604482015290519081900360640190fd5b60008381526005602052604090206002015460ff1615612f8c576040805160e560020a62461bcd028152602060048201526028602482015260008051602061404c833981519152604482015260008051602061402c833981519152606482015290519081900360840190fd5b60008381526005602052604090206001015460e060020a900463ffffffff169150811580612fc557504263ffffffff168263ffffffff16115b151561301d576040805160e560020a62461bcd02815260206004820152602a602482015260008051602061406c83398151915260448201526000805160206140ac833981519152606482015290519081900360840190fd5b5060008281526005602052604090206001015460a060020a900463ffffffff1680158061305657504263ffffffff168163ffffffff1611155b151561309a576040805160e560020a62461bcd02815260206004820152601d602482015260008051602061408c833981519152604482015290519081900360640190fd5b8685600081111561310e5760008281526005602052604090206006015481101561310e576040805160e560020a62461bcd02815260206004820152601d60248201527f626f6e64206d75737420657863656564206d61785f70726576696f7573000000604482015290519081900360640190fd5b600089815260056020526040812060060154116131c1576040805160e560020a62461bcd02815260206004820152604260248201527f5175657374696f6e206d75737420616c7265616479206861766520616e20616e60448201527f73776572207768656e206172626974726174696f6e206973207265717565737460648201527f6564000000000000000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b600089815260056020526040808220600201805460ff1916600117905551600160a060020a038a16918b917f75d7939999bc902187c4aed400872883e445145f1983539166f783fa040b47629190a3505050505050505050565b600054600160a060020a031681565b6000838152600560205260409020600101548390600160a060020a0316331461329d576040805160e560020a62461bcd02815260206004820152601d60248201527f6d73672e73656e646572206d7573742062652061726269747261746f72000000604482015290519081900360640190fd5b600084815260056020526040902060020154849060ff16151561332f576040805160e560020a62461bcd028152602060048201526024808201527f7175657374696f6e206d7573742062652070656e64696e67206172626974726160448201527f74696f6e00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038316151561338f576040805160e560020a62461bcd02815260206004820152601960248201527f616e737765726572206d7573742062652070726f766964656400000000000000604482015290519081900360640190fd5b604051849086907f18d760beffe3717270cd90d9d920ec1a48c194e9ad7bba23eb1c92d3eb974f9790600090a36000858152600560205260408120600201805460ff191690556133e5908690869086908061399c565b6133f185856000613b15565b5050505050565b604080516020808201879052818301869052606082018590526c01000000000000000000000000600160a060020a0385160260808301527f01000000000000000000000000000000000000000000000000000000000000006094830152825160758184030181526095909201928390528151600093918291908401908083835b602083106134975780518252601f199092019160209182019101613478565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912089141592506134d491505057506001613605565b604080516020808201889052818301879052606082018690526c01000000000000000000000000600160a060020a0386160260808301526000609483015282516075818403018152609590920192839052815191929182918401908083835b602083106135525780518252601f199092019160209182019101613533565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120891415925061358f91505057506000613605565b6040805160e560020a62461bcd02815260206004820152603660248201527f486973746f727920696e7075742070726f766964656420646964206e6f74206d60448201527f6174636820746865206578706563746564206861736800000000000000000000606482015290519081900360840190fd5b95945050505050565b60008282018381101561361d57fe5b8091505b5092915050565b60008060008084156136a857600086815260076020526040902054869250640100000000900460ff161515613680576000828152600760205260408120805464ffffffffff1916815560010155899350889250613749565b6000828152600760205260408120600181018054825464ffffffffff19169092559190915595505b858b141561374257600160a060020a03891615156137015760008c81526005602052604090206003015497985088976136e8908b9063ffffffff61360e16565b60008d8152600560205260408120600301559950613742565b600160a060020a03888116908a161461374257868a10156137225789613724565b865b905061373b8c8a610d7c8d8563ffffffff613fe116565b8798508099505b8989935093505b50509850989650505050505050565b600160a060020a038216600090815260016020526040902054613781908263ffffffff61360e16565b600160a060020a0383166000818152600160209081526040918290209390935580518481529051919286927f9c121aff33b50c1a53fef034ebec5f83da2d5a5187048f9c76c397ba27c1a1a69281900390910190a3505050565b60008115156137e95761396d565b5033600090815260016020526040812054908111156138515781811061382e57613819818363ffffffff613fe116565b3360009081526001602052604090205561396d565b61383e828263ffffffff613fe116565b3360009081526001602052604081205591505b60008054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690529051600160a060020a03909216926323b872dd926064808401936020939083900390910190829087803b1580156138c557600080fd5b505af11580156138d9573d6000803e3d6000fd5b505050506040513d60208110156138ef57600080fd5b5051151561396d576040805160e560020a62461bcd02815260206004820152603960248201527f5472616e73666572206f6620746f6b656e73206661696c65642c20696e73756660448201527f66696369656e7420617070726f7665642062616c616e63653f00000000000000606482015290519081900360840190fd5b5050565b6000808315156139845760009150613621565b5082820282848281151561399457fe5b041461361d57fe5b600085815260056020818152604080842090920154825180830191909152808301889052606081018690526c01000000000000000000000000600160a060020a0388160260808201527f01000000000000000000000000000000000000000000000000000000000000008515150260948201528251607581830301815260959091019283905280519092918291908401908083835b60208310613a505780518252601f199092019160209182019101613a31565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090506000831115613a9d5760008681526005602052604090206006018390555b600086815260056020818152604092839020909101839055815187815290810183905280820185905242606082015283151560808201529051600160a060020a0386169188917fe47ca4ebbbc2990134d1168821f38c5e177f3d5ee564bffeadeaa351905e62219181900360a00190a3505050505050565b6000838152600560205260409020600401829055613b3d63ffffffff428116908390613ff316565b600093845260056020526040909320600101805463ffffffff9490941660e060020a027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff909416939093179092555050565b6000868152600560205260408120600101548190889060c060020a900463ffffffff1615613c03576040805160e560020a62461bcd02815260206004820152601760248201527f7175657374696f6e206d757374206e6f74206578697374000000000000000000604482015290519081900360640190fd5b839250600063ffffffff871611613c64576040805160e560020a62461bcd02815260206004820152601860248201527f74696d656f7574206d75737420626520706f7369746976650000000000000000604482015290519081900360640190fd5b6301e1338063ffffffff871610613ceb576040805160e560020a62461bcd02815260206004820152602260248201527f74696d656f7574206d757374206265206c657373207468616e2033363520646160448201527f7973000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0387161515613d4b576040805160e560020a62461bcd02815260206004820152601660248201527f61726269747261746f72206d7573742062652073657400000000000000000000604482015290519081900360640190fd5b33600160a060020a03881614613e4957600160a060020a038716600090815260086020526040902054915081831015613df3576040805160e560020a62461bcd028152602060048201526024808201527f4554482070726f7669646564206d75737420636f766572207175657374696f6e60448201527f2066656500000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b613e03838363ffffffff613fe116565b600160a060020a038816600090815260016020526040902054909350613e2f908363ffffffff61360e16565b600160a060020a0388166000908152600160205260409020555b50506000968752600560205260409096209485555060018401805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03949094169390931777ffffffff0000000000000000000000000000000000000000191660a060020a63ffffffff92831602177fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff1660c060020a929091169190910217905560030155565b60008181526007602052604081205463ffffffff1615613f7d576040805160e560020a62461bcd02815260206004820152602160248201527f636f6d6d69746d656e74206d757374206e6f7420616c7265616479206578697360448201527f7400000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008381526005602052604090206001015460089060c060020a900463ffffffff16049050613fb663ffffffff428116908390613ff316565b600092835260076020526040909220805463ffffffff191663ffffffff909316929092179091555050565b600082821115613fed57fe5b50900390565b600082820163ffffffff808516908216101561361d57fe007175657374696f6e206d757374206578697374000000000000000000000000006974726174696f6e0000000000000000000000000000000000000000000000007175657374696f6e206d757374206e6f742062652070656e64696e672061726266696e616c697a6174696f6e20646561646c696e65206d757374206e6f7420686f70656e696e672064617465206d7573742068617665207061737365640000006176652070617373656400000000000000000000000000000000000000000000a165627a7a723058207048b13e242e6a61a0399945a4d5f1fd64147d194f6fce06640f4529b5c3dfe00029",
 "sourceMap": "133:38232:2:-;;;3067:1;3042:26;;6081:564;8:9:-1;5:2;;;30:1;27;20:12;5:2;6081:564:2;6117:81;;;;;;;;;;;;;;;;;;;;;;;;:14;;;:81;;;:::i;:::-;;6208:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;:97;;;:::i;:::-;;6315:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;:108;;;:::i;:::-;;6433:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;:110;;;:::i;:::-;;6553:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;:85;;;:::i;:::-;;133:38232;;7478:348;7590:14;;7558:7;7614:13;;;:9;:13;;;;;;;;7630:12;7614:28;;7684:25;;;7558:7;;7590:14;7701:7;;7684: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;;;7684:25:2;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7684:25:2;;;7674: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;;7674:36:2;;;;;;;;;;;;-1:-1:-1;7652:19:2;;;:15;:19;;;;;:58;;;;7725:39;;;;;;;;;;;7744:10;;-1:-1:-1;7652:19:2;;-1:-1:-1;7725:39:2;;;;-1:-1:-1;7674:36:2;;7725: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;7725:39:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7791:9;:2;7798:1;7791:6;;;;;;:9;:::i;:::-;7774:14;:26;7817:2;7478:348;-1:-1:-1;;7478:348:2:o;719:129:3:-;777:7;804:5;;;822:6;;;;815:14;;;;842:1;719:129;-1:-1:-1;;;719:129:3:o;133:38232:2:-;;;;;;;",
 "deployedSourceMap": "133:38232:2:-;;;;;;;;;-1:-1:-1;;;133:38232:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27729:2779;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;27729:2779:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;27729:2779:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27729:2779:2;;;;-1:-1:-1;27729:2779:2;-1:-1:-1;27729:2779:2;;-1:-1:-1;27729:2779:2;;;;;;;;;-1:-1:-1;;27729:2779:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27729:2779:2;;;;-1:-1:-1;27729:2779:2;-1:-1:-1;27729:2779:2;;-1:-1:-1;27729:2779:2;;;;;;;;;-1:-1:-1;;27729:2779:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27729:2779:2;;;;-1:-1:-1;27729:2779:2;-1:-1:-1;27729:2779:2;;-1:-1:-1;27729:2779:2;;;;;;;;;-1:-1:-1;27729:2779:2;;-1:-1:-1;27729:2779:2;;-1:-1:-1;;;;;;;27729:2779:2;;;15324:340;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15324:340:2;;;;;;;25754:657;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;25754:657:2;;;;;-1:-1:-1;;;;;25754:657:2;;;;;;;;;;;;;;;;;;;;;;;;;;;5693:157;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5693:157:2;-1:-1:-1;;;;;5693:157:2;;;;;37422:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;37422:127:2;;;;;36035:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;36035:135:2;;;;;;;;;-1:-1:-1;;;;;36035:135:2;;;;;;;;;;;;;;38239:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;38239:123:2;;;;;34629:1003;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;34629:1003:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;34629:1003:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34629:1003:2;;;;-1:-1:-1;34629:1003:2;-1:-1:-1;34629:1003:2;;-1:-1:-1;34629:1003:2;;;;;;;;;-1:-1:-1;;34629:1003:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34629:1003:2;;;;-1:-1:-1;34629:1003:2;-1:-1:-1;34629:1003:2;;-1:-1:-1;34629:1003:2;;;;;;;;;-1:-1:-1;;34629:1003:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34629:1003:2;;;;-1:-1:-1;34629:1003:2;-1:-1:-1;34629:1003:2;;-1:-1:-1;34629:1003:2;;;;;;;;;-1:-1:-1;;34629:1003:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34629:1003:2;;;;-1:-1:-1;34629:1003:2;-1:-1:-1;34629:1003:2;;-1:-1:-1;34629:1003:2;;;;;;;;;-1:-1:-1;;34629:1003:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34629:1003:2;;;;-1:-1:-1;34629:1003:2;-1:-1:-1;34629:1003:2;;-1:-1:-1;34629:1003:2;;;;;;;;;-1:-1:-1;34629:1003:2;;-1:-1:-1;34629:1003:2;;-1:-1:-1;;;;;;;34629:1003:2;16208:467;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16208:467:2;;;;;;;;;;;241:212:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;241:212:0;;;;19874:905:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19874:905:2;;;;;;;;;;;6919:179;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6919:179:2;;;;;3124:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3124:50:2;;;;;35776:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;35776:138:2;;;;;3231:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3231:48:2;;;;;;;;;-1:-1:-1;;;;;3231:48:2;;;;;;;;;;;;;;;;;;;;;;;;;3340:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3340:59:2;-1:-1:-1;;;;;3340:59:2;;;;;106:44:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;106:44:0;-1:-1:-1;;;;;106:44:0;;;;;10241:763:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10241:763:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10241:763:2;;-1:-1:-1;;;10241:763:2;;-1:-1:-1;;;;;10241:763:2;;-1:-1:-1;;;;10241:763:2;;;;;;;;;;;;;;;;;;;;;;23967:275;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23967:275:2;;;;;;;;;;;;;;;;;;;;;;;37974:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;37974:138:2;;;;;3285:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3285:49:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7478:348;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7478:348:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7478:348:2;;-1:-1:-1;7478:348:2;;-1:-1:-1;;;;;;;7478:348:2;37654:136;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;37654:136:2;;;;;37092:151;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;37092:151:2;;;;;3180:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3180:45:2;;;;;;;;;;;;-1:-1:-1;;;;;3180:45:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36305:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;36305:133:2;;;;;;;;;;;;;;;;;;;;;;;;36565:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;36565:128:2;;;;;8700:416;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8700:416:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8700:416:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8700:416:2;;;;-1:-1:-1;8700:416:2;-1:-1:-1;8700:416:2;;-1:-1:-1;8700:416:2;;;;;;;;-1:-1:-1;8700:416:2;;-1:-1:-1;;;8700:416:2;;-1:-1:-1;;;;;8700:416:2;;-1:-1:-1;;;;8700:416:2;;;;;;;;;;;;;;;;;;;;;;24457:176;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;24457:176:2;;;;;18243:656;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18243:656:2;;;;;;;-1:-1:-1;;;;;18243:656:2;;;;;;;36832:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;36832:135:2;;;;;3074:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3074:44:2;;;;;11976:829;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11976:829:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11976:829:2;;-1:-1:-1;;;;;;;11976:829:2;;;;-1:-1:-1;;11976:829:2;;;;;;;;;;;;;;;;-1:-1:-1;11976:829:2;;;;;-1:-1:-1;11976:829:2;;;;-1:-1:-1;11976:829:2;;22187:506;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22187:506:2;;;-1:-1:-1;;;;;22187:506:2;;;;;;;80:19:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;80:19:0;;;;23289:500:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23289:500:2;;;;;-1:-1:-1;;;;;23289:500:2;;;;;27729:2779;28111:13;28172:17;28241:20;28526:25;28600:19;28667:9;28864:18;27899:11;5111:24;5123:11;5111;:24::i;:::-;5103:63;;;;;;;-1:-1:-1;;;;;5103:63:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;27942:21;;27966:1;-1:-1:-1;27934:86:2;;;;;-1:-1:-1;;;;;27934:86:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28127:28;;;;:15;:28;;;;;;;;:34;;;28192:38;;;28264:41;;;;;28554:9;:22;;;;;;;:35;;;;28622:34;;;;;-1:-1:-1;;;;;28127:34:2;;;;-1:-1:-1;28192:38:2;;-1:-1:-1;28264:41:2;;-1:-1:-1;28554:35:2;;-1:-1:-1;28622:34:2;-1:-1:-1;28127:28:2;-1:-1:-1;28686:746:2;28702:14;:21;28698:1;:25;28686:746;;;28885:97;28913:17;28932:14;28947:1;28932:17;;;;;;;;;;;;;;;;;;28951:7;28959:1;28951:10;;;;;;;;;;;;;;;;;;28963:5;28969:1;28963:8;;;;;;;;;;;;;;;;;;28973:5;28979:1;28973:8;;;;;;;;;;;;;;;;;;28885:27;:97::i;:::-;28864:118;-1:-1:-1;29024:27:2;:12;29041:9;29024:27;:16;:27;:::i;:::-;29009:42;;29090:147;29127:11;29140;29153:12;29167:5;29191;29197:1;29191:8;;;;;;;;;;;;;;;;;;29201:5;29207:1;29201:8;;;;;;;;;;;;;;;;;;29211:7;29219:1;29211:10;;;;;;;;;;;;;;;;;;29223:13;29090:19;:147::i;:::-;29361:8;;29066:171;;-1:-1:-1;29066:171:2;;-1:-1:-1;29361:5:2;;29367:1;;29361:8;;;;;;;;;;;;;;29349:20;;29403:14;29418:1;29403:17;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28725:3:2;;;;;28686:746;;;29447:30;;29443:992;;-1:-1:-1;;;;;29882:21:2;;;29878:137;;29923:43;29933:11;29946:5;29953:12;29923:9;:43::i;:::-;29999:1;29984:16;;29878:137;30029:28;;;;:15;:28;;;;;:42;;-1:-1:-1;;30029:42:2;-1:-1:-1;;;;;30029:42:2;;;;;-1:-1:-1;30085:38:2;;:50;;;30149:41;;:56;;;29443:992;;;30317:58;30327:11;30340:5;30347:27;:12;30364:9;30347:27;:16;:27;:::i;:::-;30317:9;:58::i;:::-;30396:28;;;;:15;:28;;;;;30389:35;;-1:-1:-1;;30389:35:2;;;;;;;;;;;;29443:992;-1:-1:-1;;;30445:22:2;;;;-1:-1:-1;30445:9:2;:22;;;;;;;;:35;;;:55;;;;-1:-1:-1;;;;;;;27729:2779:2:o;15324:340::-;4005:18;3828:22;;;:9;:22;;;;;:30;;;:22;;4005:18;;;-1:-1:-1;;;3828:30:2;;;;-1:-1:-1;;3820:66:2;;;;;-1:-1:-1;;;;;3820:66:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3820:66:2;;;;;;;;;;;;;;;3905:22;;;;:9;:22;;;;;:45;;;;;3904:46;3896:99;;;;;-1:-1:-1;;;;;3896:99:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3896:99:2;;;;-1:-1:-1;;;;;;;;;;;3896:99:2;;;;;;;;;;;;;;;4026:22;;;;:9;:22;;;;;:34;;;-1:-1:-1;;;4026:34:2;;;;;-1:-1:-1;4078:25:2;;;:54;;;4128:3;4107:25;;:11;:25;;;4078:54;4070:109;;;;;;;-1:-1:-1;;;;;4070:109:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4070:109:2;;;;-1:-1:-1;;;;;;;;;;;4070:109:2;;;;;;;;;;;;;;;-1:-1:-1;4209:22:2;;;;:9;:22;;;;;:33;;;-1:-1:-1;;;4209:33:2;;;;4260:15;;;:44;;;4300:3;4279:25;;:10;:25;;;;4260:44;4252:86;;;;;;;-1:-1:-1;;;;;4252:86:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4252:86:2;;;;;;;;;;;;;;;15447:29;15469:6;15447:21;:29::i;:::-;15518:22;;;;:9;:22;;;;;:29;;;:41;;15552:6;15518:41;:33;:41;:::i;:::-;15486:22;;;;:9;:22;;;;;;;;;:29;;:73;;;15574:83;;;;;;;;;;;;;;15646:10;;15496:11;;15574:83;;;;;;;;;15324:340;;;;;:::o;25754:657::-;25975:7;25935:11;5111:24;5123:11;5111;:24::i;:::-;5103:63;;;;;;;-1:-1:-1;;;;;5103:63:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;26018:22;;;;:9;:22;;;;;:35;26002:51;;25994:87;;;;;-1:-1:-1;;;;;25994:87:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;26113:22;;;;:9;:22;;;;;:33;;;-1:-1:-1;;;;;26099:47:2;;;26113:33;;26099:47;26091:81;;;;;-1:-1:-1;;;;;26091:81:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;26205:22;;;;:9;:22;;;;;:30;;;;-1:-1:-1;;;26205:30:2;;;;;26190:45;;;;;26182:85;;;;;-1:-1:-1;;;;;26182:85:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;26297:22;;;;:9;:22;;;;;:27;;;26285:39;;;26277:76;;;;;-1:-1:-1;;;;;26277:76:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;26370:22:2;;;;-1:-1:-1;;26370:9:2;:22;;-1:-1:-1;26370:22:2;;;:34;;;;25754:657::o;5693:157::-;5776:3;5760:5;-1:-1:-1;;;;;5760:5:2;:20;5752:67;;;;;-1:-1:-1;;;;;5752:67:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5829:5;:14;;-1:-1:-1;;5829:14:2;-1:-1:-1;;;;;5829:14:2;;;;;;;;;;5693:157::o;37422:127::-;37487:7;37513:22;;;:9;:22;;;;;:29;;;;37422:127::o;36035:135::-;36104:7;36130:22;;;:9;:22;;;;;:33;;;-1:-1:-1;;;;;36130:33:2;;36035:135::o;38239:123::-;38302:7;38328:22;;;:9;:22;;;;;:27;;;;38239:123::o;34629:1003::-;34928:10;;;;35108:19;;;;34928:10;34967:639;34985:12;:19;34980:2;:24;34967:639;;;35040:12;35053:2;35040:16;;;;;;;;;;;;;;;;;;35026:30;;35083:7;35091:2;35083:11;;;;;;;;;;;;;;;;;;35070:24;;35144:2;35130:17;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;35130:17:2;;35108:39;;35197:2;35183:17;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;35183:17:2;;35161:39;;35250:2;35236:17;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;35236:17:2;;35214:39;;35303:2;35289:17;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;35289:17:2;;35267:39;;35352:1;35348:5;;35343:205;35359:2;35355:1;:6;35343:205;;;35394:11;35406:1;35394:14;;;;;;;;;;;;;;;;;;35386:2;35389:1;35386:5;;;;;;;;;;;;;;;;;;:22;35434:8;;:5;;35440:1;;35434:8;;;;;;;;;;;;;;35426:2;35429:1;35426:5;;;;;;;;;;-1:-1:-1;;;;;35426:16:2;;;:5;;;;;;;;;;:16;35468:8;;:5;;35474:1;;35468:8;;;;;;;;;;;;;;35460:2;35463:1;35460:5;;;;;;;;;;;;;;;;;;:16;35502:10;;:7;;35510:1;;35502:10;;;;;;;;;;;;;;35494:2;35497:1;35494:5;;;;;;;;;;;;;;;;;;:18;35530:3;;;;;35363;35343:205;;;35561:34;35575:3;35580:2;35584;35588;35592;35561:13;:34::i;:::-;35006:4;;;;;34967:639;;;35615:10;:8;:10::i;:::-;34629:1003;;;;;;;;;;;;;;;:::o;16208:467::-;4005:18;3828:22;;;:9;:22;;;;;:30;;;:22;;4005:18;;;-1:-1:-1;;;3828:30:2;;;;-1:-1:-1;;3820:66:2;;;;;-1:-1:-1;;;;;3820:66:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3820:66:2;;;;;;;;;;;;;;;3905:22;;;;:9;:22;;;;;:45;;;;;3904:46;3896:99;;;;;-1:-1:-1;;;;;3896:99:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3896:99:2;;;;-1:-1:-1;;;;;;;;;;;3896:99:2;;;;;;;;;;;;;;;4026:22;;;;:9;:22;;;;;:34;;;-1:-1:-1;;;4026:34:2;;;;;-1:-1:-1;4078:25:2;;;:54;;;4128:3;4107:25;;:11;:25;;;4078:54;4070:109;;;;;;;-1:-1:-1;;;;;4070:109:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4070:109:2;;;;-1:-1:-1;;;;;;;;;;;4070:109:2;;;;;;;;;;;;;;;-1:-1:-1;4209:22:2;;;;:9;:22;;;;;:33;;;-1:-1:-1;;;4209:33:2;;;;4260:15;;;:44;;;4300:3;4279:25;;:10;:25;;;;4260:44;4252:86;;;;;;;-1:-1:-1;;;;;4252:86:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4252:86:2;;;;;;;;;;;;;;;16365:11;16378:6;5278:1;5269:10;;5261:44;;;;;-1:-1:-1;;;;;5261:44:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;5335:22;;;;:9;:22;;;;;:27;;;:34;;5367:1;5335:34;:31;:34;:::i;:::-;5324:46;;;5316:101;;;;;-1:-1:-1;;;;;5316:101:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16429:11;16442:12;5557:1;5542:12;:16;5538:132;;;5582:22;;;;:9;:22;;;;;:27;;;:43;-1:-1:-1;5582:43:2;5574:85;;;;;-1:-1:-1;;;;;5574:85:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;16479:29;16501:6;16479:21;:29::i;:::-;16518:67;16538:11;16551:6;16559:10;16571:6;16579:5;16518:19;:67::i;:::-;16637:22;;;;:9;:22;;;;;:30;;;16595:73;;16637:22;;16629:6;;-1:-1:-1;;;16637:30:2;;;;16595:20;:73::i;:::-;5427:1;;4349;;16208:467;;;;;;;:::o;241:212:0:-;307:10;283:11;297:21;;;:9;:21;;;;;;;;;;328:25;;;;371:5;;:31;;;;;;;;;;;;;;;;;;;;297:21;;-1:-1:-1;;;;;371:5:0;;;;:14;;:31;;;;;297:21;;371:31;;;;;;;;;:5;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;371:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;371:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;371:31:0;363:40;;;;;;;;418:28;;;;;;;;430:10;;418:28;;;;;;;;;;241:212;:::o;19874:905:2:-;20044:19;4623:22;;;:9;:22;;;;;:30;;;20044:19;;4623:22;;20044:19;;;;-1:-1:-1;;;4623:30:2;;;;-1:-1:-1;;4615:66:2;;;;;-1:-1:-1;;;;;4615:66:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4615:66:2;;;;;;;;;;;;;;;4712:22;;;;:9;:22;;;;;:34;;;-1:-1:-1;;;4712:34:2;;;;;-1:-1:-1;4764:25:2;;;:54;;;4814:3;4793:25;;:11;:25;;;4764:54;4756:108;;;;;;;-1:-1:-1;;;;;4756:108:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4894:22:2;;;;:9;:22;;;;;:33;;;-1:-1:-1;;;4894:33:2;;;;4945:15;;;:44;;;4985:3;4964:25;;:10;:25;;;;4945:44;4937:86;;;;;;;-1:-1:-1;;;;;4937:86:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4937:86:2;;;;;;;;;;;;;;;20076:31;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;20076:31:2;;;;;;;;20066:42;;20076:31;;;;;20066:42;;;;20076:31;20066: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;;;20066:42:2;;;;;;;;;;;;;;;;20044:64;;20169:11;20182;20195:4;20152:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;20152:48:2;;;20142: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;;20142:59:2;;;;;;;;;;;;;-1:-1:-1;20221:26:2;;;:11;:26;;;;;;:38;20142:59;;-1:-1:-1;;20221:38:2;;;;;20220:39;;-1:-1:-1;20212:94:2;;-1:-1:-1;20212:94:2;;;;-1:-1:-1;;;;;20212:94:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20324:26;;;;:11;:26;;;;;:36;:50;20370:3;20324:50;;:36;;:50;20316:99;;;;;-1:-1:-1;;;;;20316:99:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20426:26;;;;:11;:26;;;;;;;;:42;;;:51;;;20487:45;;-1:-1:-1;;20487:45:2;;;;;20555:22;;;:9;:22;;;;;:27;;;20547:35;;20543:139;;;20640:22;;;;:9;:22;;;;;:30;;;20598:73;;20640:22;;20632:6;;-1:-1:-1;;;20640:30:2;;;;20598:20;:73::i;:::-;20697:74;;;;;;;;;;;;;;;;;;;;20738:11;;20726:10;;20713:11;;20697:74;;;;;;;;;;19874:905;;;;;;;;;:::o;6919:179::-;7025:10;7000:36;;;;:24;:36;;;;;;;;;:42;;;7057:34;;;;;;;;;;;;;;;;;;;;;;6919:179;:::o;3124:50::-;;;;;;;;;;;;;:::o;35776:138::-;35846:7;35872:22;;;:9;:22;;;;;:35;;35776:138::o;3231:48::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3231:48:2;;;;;;:::o;3340:59::-;;;;;;;;;;;;;:::o;106:44:0:-;;;;;;;;;;;;;:::o;10241:763:2:-;10459:7;10487:22;;;:9;:22;;;;;;10459:7;;;;10487:26;-1:-1:-1;10479:58:2;;;;;-1:-1:-1;;;;;10479:58:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;10598:11;10611:10;10623:8;10581:51;;;;;;;;;;;;;;;-1:-1:-1;;;10581:51:2;;;;;;;;;;;;;;;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;;;10581:51:2;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;10581:51:2;;;10571: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;;10571:62:2;;;;;;;;;;;;10675:70;;;;;;-1:-1:-1;;;;;10675:70:2;;;;;;;;;;;;;-1:-1:-1;;;10675:70:2;;;;;10727:10;10675:70;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;10675:70:2;;;;;;;;10665:81;;10571:62;;-1:-1:-1;10675:70:2;;-1:-1:-1;10675:70:2;;-1:-1:-1;10675:70:2;;10665:81;;;-1:-1:-1;10665:81:2;10675:70;10665: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;;;10665:81:2;;;;;;;;;;;;;;;;10643:103;;10757:75;10770:11;10783:12;10797:10;10809:7;10818:10;10830:1;10757:12;:75::i;:::-;10910:12;10847:121;;;10875:10;-1:-1:-1;;;;;10847:121:2;10862:11;10847:121;;;;10887:11;10900:8;10924:10;10936:7;10945:10;10957:5;10964:3;10847:121;;;;;;;;;;;;-1:-1:-1;;;;;10847:121:2;-1:-1:-1;;;;;10847:121:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;10847:121:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10986:11;10241:763;-1:-1:-1;;;;;;;;10241:763:2:o;23967:275::-;24035:4;24072:22;;;:9;:22;;;;;:34;;;;24126:45;;;;;-1:-1:-1;;;24072:34:2;;;;;;24126:45;;24125:46;:76;;;;-1:-1:-1;553:1:2;24176:24;;;;24125:76;:108;;;;;24228:3;24206:26;;:11;:26;;;;24125:108;24116:119;23967:275;-1:-1:-1;;;23967:275:2:o;37974:138::-;38044:7;38070:22;;;:9;:22;;;;;;;;:35;;;37974:138::o;3285:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7478:348::-;7590:14;;7558:7;7614:13;;;:9;:13;;;;;;;;7630:12;7614:28;;7684:25;;;7558:7;;7590:14;7701:7;;7684: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;;;7684:25:2;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7684:25:2;;;7674: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;;7674:36:2;;;;;;;;;;;;-1:-1:-1;7652:19:2;;;:15;:19;;;;;:58;;;;7725:39;;;;;;;;;;;7744:10;;-1:-1:-1;7652:19:2;;-1:-1:-1;7725:39:2;;;;-1:-1:-1;7674:36:2;;7725: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;7725:39:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7791:9;:2;7798:1;7791:9;:6;:9;:::i;:::-;7774:14;:26;7817:2;7478:348;-1:-1:-1;;7478:348:2:o;37654:136::-;37723:7;37749:22;;;:9;:22;;;;;:34;;;;37654:136::o;37092:151::-;37168:4;37191:22;;;:9;:22;;;;;:45;;;;;;37092:151::o;3180:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3180:45:2;;;;-1:-1:-1;;;3180:45:2;;;;;-1:-1:-1;;;3180:45:2;;;;;-1:-1:-1;;;3180:45:2;;;;;;;;;;;;;:::o;36305:133::-;36373:6;36398:22;;;:9;:22;;;;;:33;;;-1:-1:-1;;;36398:33:2;;;;;36305:133::o;36565:128::-;36631:6;36656:22;;;:9;:22;;;;;:30;;;-1:-1:-1;;;36656:30:2;;;;;36565:128::o;8700:416::-;8954:7;8973:19;8995:23;9010:7;8995:14;:23::i;:::-;8973:45;;9035:74;9047:11;9060:8;9070:10;9082:7;9091:10;9103:5;9035:11;:74::i;:::-;9028:81;8700:416;-1:-1:-1;;;;;;;;8700:416:2:o;24457:176::-;24566:7;24526:11;5111:24;5123:11;5111;:24::i;:::-;5103:63;;;;;;;-1:-1:-1;;;;;5103:63:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;24592:22:2;;;;:9;:22;;;;;:34;;;;24457:176::o;18243:656::-;18589:21;3828:22;;;:9;:22;;;;;:30;;;18589:21;;3828:22;;18589:21;;;;-1:-1:-1;;;3828:30:2;;;;-1:-1:-1;;3820:66:2;;;;;-1:-1:-1;;;;;3820:66:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3820:66:2;;;;;;;;;;;;;;;3905:22;;;;:9;:22;;;;;:45;;;;;3904:46;3896:99;;;;;-1:-1:-1;;;;;3896:99:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3896:99:2;;;;-1:-1:-1;;;;;;;;;;;3896:99:2;;;;;;;;;;;;;;;4026:22;;;;:9;:22;;;;;:34;;;-1:-1:-1;;;4026:34:2;;;;;-1:-1:-1;4078:25:2;;;:54;;;4128:3;4107:25;;:11;:25;;;4078:54;4070:109;;;;;;;-1:-1:-1;;;;;4070:109:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4070:109:2;;;;-1:-1:-1;;;;;;;;;;;4070:109:2;;;;;;;;;;;;;;;-1:-1:-1;4209:22:2;;;;:9;:22;;;;;:33;;;-1:-1:-1;;;4209:33:2;;;;4260:15;;;:44;;;4300:3;4279:25;;:10;:25;;;;4260:44;4252:86;;;;;;;-1:-1:-1;;;;;4252:86:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4252:86:2;;;;;;;;;;;;;;;18434:11;18447:6;5278:1;5269:10;;5261:44;;;;;-1:-1:-1;;;;;5261:44:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;5335:22;;;;:9;:22;;;;;:27;;;:34;;5367:1;5335:34;:31;:34;:::i;:::-;5324:46;;;5316:101;;;;;-1:-1:-1;;;;;5316:101:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18498:11;18511:12;5557:1;5542:12;:16;5538:132;;;5582:22;;;;:9;:22;;;;;:27;;;:43;-1:-1:-1;5582:43:2;5574:85;;;;;-1:-1:-1;;;;;5574:85:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;18549:29;18571:6;18549:21;:29::i;:::-;18640:11;18653;18666:6;18623:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;18623:50:2;;;18613:61;;;;;;;;;;;;;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;;18613:61:2;;;;;;;;;;;-1:-1:-1;;;;;;;;;18704:25:2;;;18703:52;;18746:9;18703:52;;;18733:10;18703:52;18684:71;;18766:44;18783:11;18796:13;18766:16;:44::i;:::-;18820:71;18840:11;18853:13;18868:8;18878:6;18886:4;18820:19;:71::i;:::-;5427:1;;4349;;18243:656;;;;;;;;;;:::o;36832:135::-;36901:6;36926:22;;;:9;:22;;;;;:34;;;-1:-1:-1;;;36926:34:2;;;;;36832:135::o;3074:44::-;;;;;;;;;;;;;:::o;11976:829::-;12215:7;12344:20;12439:19;12235:29;12257:6;12235:21;:29::i;:::-;12308:1;12283:22;;;:9;:22;;;;;;:26;12275:58;;;;;-1:-1:-1;;;;;12275:58:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;12394:11;12407:10;12419:8;12377:51;;;;;;;;;;;;;;;-1:-1:-1;;;12377:51:2;;;;;;;;;;;;;;;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;;;12377:51:2;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12377:51:2;;;12367: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;;;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;;;12367:62:2;;;;;;;;;;;;;;;;12344:85;;12488:12;12502:10;12514:7;12523:10;12535:5;12471:70;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12471:70:2;-1:-1:-1;;;;;12471:70:2;;;;;;;;;;;;-1:-1:-1;;;12471:70:2;;;;;;-1:-1:-1;;;;;12471:70:2;-1:-1:-1;;;;;12471:70:2;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12471:70:2;;;12461: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;;;12461:81:2;;;;;;;;;;;;;;;;12439:103;;12553:80;12566:11;12579:12;12593:10;12605:7;12614:10;12626:6;12553:12;:80::i;:::-;12711:12;12648:121;;;12676:10;-1:-1:-1;;;;;12648:121:2;12663:11;12648:121;;;;12688:11;12701:8;12725:10;12737:7;12746:10;12758:5;12765:3;12648:121;;;;;;;;;;;;-1:-1:-1;;;;;12648:121:2;-1:-1:-1;;;;;12648:121:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;12648:121:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12787:11;11976:829;-1:-1:-1;;;;;;;;;11976:829:2:o;22187:506::-;3484:22;;;;:9;:22;;;;;:33;;;:22;;-1:-1:-1;;;;;3484:33:2;3470:10;:47;3462:89;;;;;-1:-1:-1;;;;;3462:89:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;4005:18;3828:22;;;:9;:22;;;;;:30;;;:22;;4005:18;;;-1:-1:-1;;;3828:30:2;;;;-1:-1:-1;;3820:66:2;;;;;-1:-1:-1;;;;;3820:66:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3820:66:2;;;;;;;;;;;;;;;3905:22;;;;:9;:22;;;;;:45;;;;;3904:46;3896:99;;;;;-1:-1:-1;;;;;3896:99:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3896:99:2;;;;-1:-1:-1;;;;;;;;;;;3896:99:2;;;;;;;;;;;;;;;4026:22;;;;:9;:22;;;;;:34;;;-1:-1:-1;;;4026:34:2;;;;;-1:-1:-1;4078:25:2;;;:54;;;4128:3;4107:25;;:11;:25;;;4078:54;4070:109;;;;;;;-1:-1:-1;;;;;4070:109:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4070:109:2;;;;-1:-1:-1;;;;;;;;;;;4070:109:2;;;;;;;;;;;;;;;-1:-1:-1;4209:22:2;;;;:9;:22;;;;;:33;;;-1:-1:-1;;;4209:33:2;;;;4260:15;;;:44;;;4300:3;4279:25;;:10;:25;;;;4260:44;4252:86;;;;;;;-1:-1:-1;;;;;4252:86:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4252:86:2;;;;;;;;;;;;;;;22396:11;22409:12;5557:1;5542:12;:16;5538:132;;;5582:22;;;;:9;:22;;;;;:27;;;:43;-1:-1:-1;5582:43:2;5574:85;;;;;-1:-1:-1;;;;;5574:85:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;22484:1;22454:22;;;:9;:22;;;;;:27;;;:31;22446:110;;;;;-1:-1:-1;;;;;22446:110:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22566:22;;;;:9;:22;;;;;;:45;;:52;;-1:-1:-1;;22566:52:2;22614:4;22566:52;;;22633:53;-1:-1:-1;;;;;22633:53:2;;;22576:11;;22633:53;;22566:22;22633:53;4349:1;;3561;;;22187:506;;;;:::o;80:19:0:-;;;-1:-1:-1;;;;;80:19:0;;:::o;23289:500:2:-;3484:22;;;;:9;:22;;;;;:33;;;:22;;-1:-1:-1;;;;;3484:33:2;3470:10;:47;3462:89;;;;;-1:-1:-1;;;;;3462:89:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;4435:22;;;;:9;:22;;;;;:45;;;23447:11;;4435:45;;4427:94;;;;;;;-1:-1:-1;;;;;4427:94:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23492:24:2;;;;23484:62;;;;;-1:-1:-1;;;;;23484:62:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;23561:32;;23586:6;;23573:11;;23561:32;;;;;23652:5;23604:22;;;:9;:22;;;;;:45;;:53;;-1:-1:-1;;23604:53:2;;;23667:60;;23614:11;;23700:6;;23708:8;;23652:5;23667:19;:60::i;:::-;23737:44;23758:11;23771:6;23779:1;23737:20;:44::i;:::-;3561:1;23289:500;;;;:::o;30717:549::-;30947:56;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;30947:56:2;;;;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;30947:56:2;;;;;;;;30937:67;;30896:4;;30947:56;;;30937:67;;;;;30947:56;30937: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;;30937:67:2;;;;;;;;;;30916:88;;30912:131;;-1:-1:-1;30912:131:2;;-1:-1:-1;;30912:131:2;-1:-1:-1;31028:4:2;31021:11;;30912:131;31087:57;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;31087:57:2;;;;;;;31138:5;31087:57;;;;;;22:32:-1;26:21;;;22:32;6:49;;31087:57:2;;;;;;;;31077:68;;31087:57;;;;;31077:68;;;;31087:57;31077: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;;31077:68:2;;;;;;;;;;31056:89;;31052:133;;-1:-1:-1;31052:133:2;;-1:-1:-1;;31052:133:2;-1:-1:-1;31169:5:2;31162:12;;31052:133;31195:64;;;-1:-1:-1;;;;;31195:64:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30717:549;;;;;;;;:::o;719:129:3:-;777:7;804:5;;;822:6;;;;815:14;;;;842:1;835:8;;719:129;;;;;;:::o;31272:2412:2:-;31498:7;31507;31744:21;33222:27;31715:13;31711:482;;;31890:26;;;;:11;:26;;;;;:38;:26;;-1:-1:-1;31890:38:2;;;;;31889:39;31885:298;;;31955:26;;;;:11;:26;;;;;31948:33;;-1:-1:-1;;31948:33:2;;;;;;32007:12;;-1:-1:-1;32021:5:2;;-1:-1:-1;31999:28:2;;31885:298;32075:26;;;;:11;:26;;;;;:42;;;;;32135:33;;-1:-1:-1;;32135:33:2;;;;;;;;32075:42;-1:-1:-1;31885:298:2;32207:21;;;32203:1435;;;-1:-1:-1;;;;;32249:21:2;;;32245:1382;;;32481:22;;;;:9;:22;;;;;:29;;;32427:4;;-1:-1:-1;32427:4:2;;32464:47;;:12;;:47;:16;:47;:::i;:::-;32561:1;32529:22;;;:9;:22;;;;;:29;;:33;32449:62;-1:-1:-1;32245:1382:2;;;-1:-1:-1;;;;;32588:13:2;;;;;;;32584:1043;;33269:4;33253:12;:20;;33252:44;;33284:12;33252:44;;;33277:4;33252:44;33222:74;-1:-1:-1;33379:68:2;33389:11;33402:5;33409:37;:12;33222:74;33409:37;:16;:37;:::i;33379:68::-;33555:4;33547:12;;33592:19;33577:34;;32584:1043;33656:12;33670:5;33648:28;;;;31272:2412;;;;;;;;;;;;;;:::o;30514:197::-;-1:-1:-1;;;;;30627:16:2;;;;;;:9;:16;;;;;;:27;;30648:5;30627:27;:20;:27;:::i;:::-;-1:-1:-1;;;;;30608:16:2;;;;;;:9;:16;;;;;;;;;:46;;;;30669:35;;;;;;;30608:16;;30678:11;;30669:35;;;;;;;;;;30514:197;;;:::o;12811:707::-;12941:11;12887;;12883:48;;;12914:7;;12883:48;-1:-1:-1;12965:10:2;12955:21;;;;:9;:21;;;;;;;13060:7;;13056:258;;;13087:13;;;13083:221;;13144:15;:3;13152:6;13144:15;:7;:15;:::i;:::-;13130:10;13120:21;;;;:9;:21;;;;;:39;13177:7;;13083:221;13231:15;:6;13242:3;13231:15;:10;:15;:::i;:::-;13274:10;13288:1;13264:21;;;:9;:21;;;;;:25;13222:24;-1:-1:-1;13083:221:2;13379:5;;;:53;;;;;;13398:10;13379:53;;;;13418:4;13379:53;;;;;;;;;;;;-1:-1:-1;;;;;13379:5:2;;;;:18;;:53;;;;;;;;;;;;;;;;;:5;:53;;;5:2:-1;;;;30:1;27;20:12;5:2;13379:53:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13379:53:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13379:53:2;13371:123;;;;;;;-1:-1:-1;;;;;13371:123:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12811:707;;:::o;159:173:3:-;217:7;;236:6;;232:35;;;259:1;252:8;;;;232:35;-1:-1:-1;284:5:3;;;288:1;284;:5;302;;;;;;;;:10;295:18;;;20785:678:2;20949:24;21003:22;;;:9;:22;;;;;;;;:35;;;;20986:109;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20986:109:2;;;;;;;;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;20986:109:2;;;;;;;;20976:120;;20986:109;;;;;20976:120;;;;;20986:109;20976: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;;;20976:120:2;;;;;;;;;;;;;;;;20949:147;;21211:1;21204:4;:8;21200:73;;;21228:22;;;;:9;:22;;;;;:27;;:34;;;21200:73;21282:22;;;;:9;:22;;;;;;;;;:35;;;:54;;;21352:104;;;;;;;;;;;;;;;;;21437:3;21352:104;;;;;;;;;;;;;-1:-1:-1;;;;;21352:104:2;;;21292:11;;21352:104;;;;;;;;;20785:678;;;;;;:::o;21469:237::-;21580:22;;;;:9;:22;;;;;:34;;:43;;;21670:29;:15;21677:3;21670:15;;;21686:12;;21670:15;:29;:::i;:::-;21633:22;;;;:9;:22;;;;;;:34;;:66;;;;;;;-1:-1:-1;;;21633:66:2;;;;;;;;;;;;-1:-1:-1;;21469:237:2:o;13524:1500::-;13722:14;3683:22;;;:9;:22;;;;;:30;;;13722:14;;3683:22;;-1:-1:-1;;;3683:30:2;;;;:35;3675:71;;;;;-1:-1:-1;;;;;3675:71:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;13739:6;;-1:-1:-1;13856:1:2;13846:11;;;;13838:48;;;;;-1:-1:-1;;;;;13838:48:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;13915:8;13905:18;;;;13897:65;;;;;-1:-1:-1;;;;;13897:65:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13981:26:2;;;;13973:61;;;;;-1:-1:-1;;;;;13973:61:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;14426:10;-1:-1:-1;;;;;14426:24:2;;;14422:324;;-1:-1:-1;;;;;14489:36:2;;;;;;:24;:36;;;;;;;-1:-1:-1;14547:22:2;;;;14539:71;;;;;-1:-1:-1;;;;;14539:71:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14634:24;:6;14645:12;14634:24;:10;:24;:::i;:::-;-1:-1:-1;;;;;14696:21:2;;;;;;:9;:21;;;;;;14625:33;;-1:-1:-1;14696:39:2;;14722:12;14696:39;:25;:39;:::i;:::-;-1:-1:-1;;;;;14672:21:2;;;;;;:9;:21;;;;;:63;14422:324;-1:-1:-1;;14756:22:2;;;;:9;:22;;;;;;:50;;;-1:-1:-1;14816:33:2;;;:46;;-1:-1:-1;;14816:46:2;-1:-1:-1;;;;;14816:46:2;;;;;;;;-1:-1:-1;;14872:46:2;-1:-1:-1;;;14872:46:2;;;;;;14928:40;;-1:-1:-1;;;14928:40:2;;;;;;;;;;;14978:29;;:38;13524:1500::o;16868:394::-;17086:25;16974:26;;;:11;:26;;;;;:36;;;:63;16966:109;;;;;-1:-1:-1;;;;;16966:109:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17114:22;;;;:9;:22;;;;;:30;;;818:1;;-1:-1:-1;;;17114:30:2;;:57;:30;:57;;-1:-1:-1;17220:35:2;:15;17227:3;17220:15;;;17114:57;;17220:15;:35;:::i;:::-;17181:26;;;;:11;:26;;;;;;:74;;-1:-1:-1;;17181:74:2;;;;;;;;;;;;-1:-1:-1;;16868:394:2:o;605:110:3:-;663:7;685:6;;;;678:14;;;;-1:-1:-1;705:5:3;;;605:110::o;255:125:4:-;311:6;336:5;;;354:6;;;;;;;;;347:14;;",
 "source": "pragma solidity ^0.4.24;\n\nimport './RealitioSafeMath256.sol';\nimport './RealitioSafeMath32.sol';\nimport './BalanceHolderERC20.sol';\n\ncontract RealitioERC20 is BalanceHolder {\n\n    using RealitioSafeMath256 for uint256;\n    using RealitioSafeMath32 for uint32;\n\n    address constant NULL_ADDRESS = address(0);\n\n    // History hash when no history is created, or history has been cleared\n    bytes32 constant NULL_HASH = bytes32(0);\n\n    // An unitinalized finalize_ts for a question will indicate an unanswered question.\n    uint32 constant UNANSWERED = 0;\n\n    // An unanswered reveal_ts for a commitment will indicate that it does not exist.\n    uint256 constant COMMITMENT_NON_EXISTENT = 0;\n\n    // Commit->reveal timeout is 1/8 of the question timeout (rounded down).\n    uint32 constant COMMITMENT_TIMEOUT_RATIO = 8;\n\n    event LogSetQuestionFee(\n        address arbitrator,\n        uint256 amount\n    );\n\n    event LogNewTemplate(\n        uint256 indexed template_id,\n        address indexed user, \n        string question_text\n    );\n\n    event LogNewQuestion(\n        bytes32 indexed question_id,\n        address indexed user, \n        uint256 template_id,\n        string question,\n        bytes32 indexed content_hash,\n        address arbitrator, \n        uint32 timeout,\n        uint32 opening_ts,\n        uint256 nonce,\n        uint256 created\n    );\n\n    event LogFundAnswerBounty(\n        bytes32 indexed question_id,\n        uint256 bounty_added,\n        uint256 bounty,\n        address indexed user \n    );\n\n    event LogNewAnswer(\n        bytes32 answer,\n        bytes32 indexed question_id,\n        bytes32 history_hash,\n        address indexed user,\n        uint256 bond,\n        uint256 ts,\n        bool is_commitment\n    );\n\n    event LogAnswerReveal(\n        bytes32 indexed question_id, \n        address indexed user, \n        bytes32 indexed answer_hash, \n        bytes32 answer, \n        uint256 nonce, \n        uint256 bond\n    );\n\n    event LogNotifyOfArbitrationRequest(\n        bytes32 indexed question_id,\n        address indexed user \n    );\n\n    event LogFinalize(\n        bytes32 indexed question_id,\n        bytes32 indexed answer\n    );\n\n    event LogClaim(\n        bytes32 indexed question_id,\n        address indexed user,\n        uint256 amount\n    );\n\n    struct Question {\n        bytes32 content_hash;\n        address arbitrator;\n        uint32 opening_ts;\n        uint32 timeout;\n        uint32 finalize_ts;\n        bool is_pending_arbitration;\n        uint256 bounty;\n        bytes32 best_answer;\n        bytes32 history_hash;\n        uint256 bond;\n    }\n\n    // Stored in a mapping indexed by commitment_id, a hash of commitment hash, question, bond. \n    struct Commitment {\n        uint32 reveal_ts;\n        bool is_revealed;\n        bytes32 revealed_answer;\n    }\n\n    // Only used when claiming more bonds than fits into a transaction\n    // Stored in a mapping indexed by question_id.\n    struct Claim {\n        address payee;\n        uint256 last_bond;\n        uint256 queued_funds;\n    }\n\n    uint256 nextTemplateID = 0;\n    mapping(uint256 => uint256) public templates;\n    mapping(uint256 => bytes32) public template_hashes;\n    mapping(bytes32 => Question) public questions;\n    mapping(bytes32 => Claim) public question_claims;\n    mapping(bytes32 => Commitment) public commitments;\n    mapping(address => uint256) public arbitrator_question_fees; \n\n    modifier onlyArbitrator(bytes32 question_id) {\n        require(msg.sender == questions[question_id].arbitrator, \"msg.sender must be arbitrator\");\n        _;\n    }\n\n    modifier stateAny() {\n        _;\n    }\n\n    modifier stateNotCreated(bytes32 question_id) {\n        require(questions[question_id].timeout == 0, \"question must not exist\");\n        _;\n    }\n\n    modifier stateOpen(bytes32 question_id) {\n        require(questions[question_id].timeout > 0, \"question must exist\");\n        require(!questions[question_id].is_pending_arbitration, \"question must not be pending arbitration\");\n        uint32 finalize_ts = questions[question_id].finalize_ts;\n        require(finalize_ts == UNANSWERED || finalize_ts > uint32(now), \"finalization deadline must not have passed\");\n        uint32 opening_ts = questions[question_id].opening_ts;\n        require(opening_ts == 0 || opening_ts <= uint32(now), \"opening date must have passed\"); \n        _;\n    }\n\n    modifier statePendingArbitration(bytes32 question_id) {\n        require(questions[question_id].is_pending_arbitration, \"question must be pending arbitration\");\n        _;\n    }\n\n    modifier stateOpenOrPendingArbitration(bytes32 question_id) {\n        require(questions[question_id].timeout > 0, \"question must exist\");\n        uint32 finalize_ts = questions[question_id].finalize_ts;\n        require(finalize_ts == UNANSWERED || finalize_ts > uint32(now), \"finalization dealine must not have passed\");\n        uint32 opening_ts = questions[question_id].opening_ts;\n        require(opening_ts == 0 || opening_ts <= uint32(now), \"opening date must have passed\"); \n        _;\n    }\n\n    modifier stateFinalized(bytes32 question_id) {\n        require(isFinalized(question_id), \"question must be finalized\");\n        _;\n    }\n\n    modifier bondMustDouble(bytes32 question_id, uint256 tokens) {\n        require(tokens > 0, \"bond must be positive\"); \n        require(tokens >= (questions[question_id].bond.mul(2)), \"bond must be double at least previous bond\");\n        _;\n    }\n\n    modifier previousBondMustNotBeatMaxPrevious(bytes32 question_id, uint256 max_previous) {\n        if (max_previous > 0) {\n            require(questions[question_id].bond <= max_previous, \"bond must exceed max_previous\");\n        }\n        _;\n    }\n\n    function setToken(IERC20 _token) \n    public\n    {\n        require(token == IERC20(0x0), \"Token can only be initialized once\");\n        token = _token;\n    }\n\n    /// @notice Constructor, sets up some initial templates\n    /// @dev Creates some generalized templates for different question types used in the DApp.\n    /// param _token The token used for everything except arbitration\n    constructor() \n    public {\n        createTemplate('{\"title\": \"%s\", \"type\": \"bool\", \"category\": \"%s\", \"lang\": \"%s\"}');\n        createTemplate('{\"title\": \"%s\", \"type\": \"uint\", \"decimals\": 18, \"category\": \"%s\", \"lang\": \"%s\"}');\n        createTemplate('{\"title\": \"%s\", \"type\": \"single-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}');\n        createTemplate('{\"title\": \"%s\", \"type\": \"multiple-select\", \"outcomes\": [%s], \"category\": \"%s\", \"lang\": \"%s\"}');\n        createTemplate('{\"title\": \"%s\", \"type\": \"datetime\", \"category\": \"%s\", \"lang\": \"%s\"}');\n    }\n\n    /// @notice Function for arbitrator to set an optional per-question fee. \n    /// @dev The per-question fee, charged when a question is asked, is intended as an anti-spam measure.\n    /// @param fee The fee to be charged by the arbitrator when a question is asked\n    function setQuestionFee(uint256 fee) \n        stateAny() \n    external {\n        arbitrator_question_fees[msg.sender] = fee;\n        emit LogSetQuestionFee(msg.sender, fee);\n    }\n\n    /// @notice Create a reusable template, which should be a JSON document.\n    /// Placeholders should use gettext() syntax, eg %s.\n    /// @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n    /// @param content The template content\n    /// @return The ID of the newly-created template, which is created sequentially.\n    function createTemplate(string content) \n        stateAny()\n    public returns (uint256) {\n        uint256 id = nextTemplateID;\n        templates[id] = block.number;\n        template_hashes[id] = keccak256(abi.encodePacked(content));\n        emit LogNewTemplate(id, msg.sender, content);\n        nextTemplateID = id.add(1);\n        return id;\n    }\n\n    /// @notice Create a new reusable template and use it to ask a question\n    /// @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n    /// @param content The template content\n    /// @param question A string containing the parameters that will be passed into the template to make the question\n    /// @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n    /// @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n    /// @param opening_ts If set, the earliest time it should be possible to answer the question.\n    /// @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n    /// @return The ID of the newly-created template, which is created sequentially.\n    function createTemplateAndAskQuestion(\n        string content, \n        string question, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce \n    ) \n        // stateNotCreated is enforced by the internal _askQuestion\n    public returns (bytes32) {\n        uint256 template_id = createTemplate(content);\n        return askQuestion(template_id, question, arbitrator, timeout, opening_ts, nonce);\n    }\n\n    /// @notice Ask a new question without a bounty and return the ID\n    /// @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n    /// @dev Calling without the token param will only work if there is no arbitrator-set question fee.\n    /// @dev This has the same function signature as askQuestion() in the non-ERC20 version, which is optionally payable.\n    /// @param template_id The ID number of the template the question will use\n    /// @param question A string containing the parameters that will be passed into the template to make the question\n    /// @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n    /// @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n    /// @param opening_ts If set, the earliest time it should be possible to answer the question.\n    /// @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n    /// @return The ID of the newly-created question, created deterministically.\n    function askQuestion(uint256 template_id, string question, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce) \n        // stateNotCreated is enforced by the internal _askQuestion\n    public returns (bytes32) {\n\n        require(templates[template_id] > 0, \"template must exist\");\n\n        bytes32 content_hash = keccak256(abi.encodePacked(template_id, opening_ts, question));\n        bytes32 question_id = keccak256(abi.encodePacked(content_hash, arbitrator, timeout, msg.sender, nonce));\n\n        _askQuestion(question_id, content_hash, arbitrator, timeout, opening_ts, 0);\n        emit LogNewQuestion(question_id, msg.sender, template_id, question, content_hash, arbitrator, timeout, opening_ts, nonce, now);\n\n        return question_id;\n    }\n\n    /// @notice Ask a new question with a bounty and return the ID\n    /// @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n    /// @param template_id The ID number of the template the question will use\n    /// @param question A string containing the parameters that will be passed into the template to make the question\n    /// @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n    /// @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n    /// @param opening_ts If set, the earliest time it should be possible to answer the question.\n    /// @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n    /// @param tokens The combined initial question bounty and question fee\n    /// @return The ID of the newly-created question, created deterministically.\n    function askQuestionERC20(uint256 template_id, string question, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce, uint256 tokens) \n        // stateNotCreated is enforced by the internal _askQuestion\n    public returns (bytes32) {\n\n        _deductTokensOrRevert(tokens);\n\n        require(templates[template_id] > 0, \"template must exist\");\n\n        bytes32 content_hash = keccak256(abi.encodePacked(template_id, opening_ts, question));\n        bytes32 question_id = keccak256(abi.encodePacked(content_hash, arbitrator, timeout, msg.sender, nonce));\n\n        _askQuestion(question_id, content_hash, arbitrator, timeout, opening_ts, tokens);\n        emit LogNewQuestion(question_id, msg.sender, template_id, question, content_hash, arbitrator, timeout, opening_ts, nonce, now);\n\n        return question_id;\n    }\n\n    function _deductTokensOrRevert(uint256 tokens) \n    internal {\n\n        if (tokens == 0) {\n            return;\n        }\n\n        uint256 bal = balanceOf[msg.sender];\n\n        // Deduct any tokens you have in your internal balance first\n        if (bal > 0) {\n            if (bal >= tokens) {\n                balanceOf[msg.sender] = bal.sub(tokens);\n                return;\n            } else {\n                tokens = tokens.sub(bal);\n                balanceOf[msg.sender] = 0;\n            }\n        }\n        // Now we need to charge the rest from \n        require(token.transferFrom(msg.sender, address(this), tokens), \"Transfer of tokens failed, insufficient approved balance?\");\n        return;\n\n    }\n\n    function _askQuestion(bytes32 question_id, bytes32 content_hash, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 tokens) \n        stateNotCreated(question_id)\n    internal {\n\n        uint256 bounty = tokens;\n\n        // A timeout of 0 makes no sense, and we will use this to check existence\n        require(timeout > 0, \"timeout must be positive\"); \n        require(timeout < 365 days, \"timeout must be less than 365 days\"); \n        require(arbitrator != NULL_ADDRESS, \"arbitrator must be set\");\n\n        // The arbitrator can set a fee for asking a question. \n        // This is intended as an anti-spam defence.\n        // The fee is waived if the arbitrator is asking the question.\n        // This allows them to set an impossibly high fee and make users proxy the question through them.\n        // This would allow more sophisticated pricing, question whitelisting etc.\n        if (msg.sender != arbitrator) {\n            uint256 question_fee = arbitrator_question_fees[arbitrator];\n            require(bounty >= question_fee, \"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    /// @param tokens The number of tokens to fund\n    function fundAnswerBountyERC20(bytes32 question_id, uint256 tokens) \n        stateOpen(question_id)\n    external {\n        _deductTokensOrRevert(tokens);\n        questions[question_id].bounty = questions[question_id].bounty.add(tokens);\n        emit LogFundAnswerBounty(question_id, tokens, questions[question_id].bounty, msg.sender);\n    }\n\n    /// @notice Submit an answer for a question.\n    /// @dev Adds the answer to the history and updates the current \"best\" answer.\n    /// May be subject to front-running attacks; Substitute submitAnswerCommitment()->submitAnswerReveal() to prevent them.\n    /// @param question_id The ID of the question\n    /// @param answer The answer, encoded into bytes32\n    /// @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.\n    /// @param tokens The amount of tokens to submit\n    function submitAnswerERC20(bytes32 question_id, bytes32 answer, uint256 max_previous, uint256 tokens) \n        stateOpen(question_id)\n        bondMustDouble(question_id, tokens)\n        previousBondMustNotBeatMaxPrevious(question_id, max_previous)\n    external {\n        _deductTokensOrRevert(tokens);\n        _addAnswerToHistory(question_id, answer, msg.sender, tokens, false);\n        _updateCurrentAnswer(question_id, answer, questions[question_id].timeout);\n    }\n\n    // @notice Verify and store a commitment, including an appropriate timeout\n    // @param question_id The ID of the question to store\n    // @param commitment The ID of the commitment\n    function _storeCommitment(bytes32 question_id, bytes32 commitment_id) \n    internal\n    {\n        require(commitments[commitment_id].reveal_ts == COMMITMENT_NON_EXISTENT, \"commitment must not already exist\");\n\n        uint32 commitment_timeout = questions[question_id].timeout / COMMITMENT_TIMEOUT_RATIO;\n        commitments[commitment_id].reveal_ts = uint32(now).add(commitment_timeout);\n    }\n\n    /// @notice Submit the hash of an answer, laying your claim to that answer if you reveal it in a subsequent transaction.\n    /// @dev Creates a hash, commitment_id, uniquely identifying this answer, to this question, with this bond.\n    /// The commitment_id is stored in the answer history where the answer would normally go.\n    /// Does not update the current best answer - this is left to the later submitAnswerReveal() transaction.\n    /// @param question_id The ID of the question\n    /// @param answer_hash The hash of your answer, plus a nonce that you will later reveal\n    /// @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.\n    /// @param _answerer If specified, the address to be given as the question answerer. Defaults to the sender.\n    /// @param tokens Number of tokens sent\n    /// @dev Specifying the answerer is useful if you want to delegate the commit-and-reveal to a third-party.\n    function submitAnswerCommitmentERC20(bytes32 question_id, bytes32 answer_hash, uint256 max_previous, address _answerer, uint256 tokens) \n        stateOpen(question_id)\n        bondMustDouble(question_id, tokens)\n        previousBondMustNotBeatMaxPrevious(question_id, max_previous)\n    external {\n\n        _deductTokensOrRevert(tokens);\n\n        bytes32 commitment_id = keccak256(abi.encodePacked(question_id, answer_hash, tokens));\n        address answerer = (_answerer == NULL_ADDRESS) ? msg.sender : _answerer;\n\n        _storeCommitment(question_id, commitment_id);\n        _addAnswerToHistory(question_id, commitment_id, answerer, tokens, true);\n\n    }\n\n    /// @notice Submit the answer whose hash you sent in a previous submitAnswerCommitment() transaction\n    /// @dev Checks the parameters supplied recreate an existing commitment, and stores the revealed answer\n    /// Updates the current answer unless someone has since supplied a new answer with a higher bond\n    /// msg.sender is intentionally not restricted to the user who originally sent the commitment; \n    /// For example, the user may want to provide the answer+nonce to a third-party service and let them send the tx\n    /// NB If we are pending arbitration, it will be up to the arbitrator to wait and see any outstanding reveal is sent\n    /// @param question_id The ID of the question\n    /// @param answer The answer, encoded as bytes32\n    /// @param nonce The nonce that, combined with the answer, recreates the answer_hash you gave in submitAnswerCommitment()\n    /// @param bond The bond that you paid in your submitAnswerCommitment() transaction\n    function submitAnswerReveal(bytes32 question_id, bytes32 answer, uint256 nonce, uint256 bond) \n        stateOpenOrPendingArbitration(question_id)\n    external {\n\n        bytes32 answer_hash = keccak256(abi.encodePacked(answer, nonce));\n        bytes32 commitment_id = keccak256(abi.encodePacked(question_id, answer_hash, bond));\n\n        require(!commitments[commitment_id].is_revealed, \"commitment must not have been revealed yet\");\n        require(commitments[commitment_id].reveal_ts > uint32(now), \"reveal deadline must not have passed\");\n\n        commitments[commitment_id].revealed_answer = answer;\n        commitments[commitment_id].is_revealed = true;\n\n        if (bond == questions[question_id].bond) {\n            _updateCurrentAnswer(question_id, answer, questions[question_id].timeout);\n        }\n\n        emit LogAnswerReveal(question_id, msg.sender, answer_hash, answer, nonce, bond);\n\n    }\n\n    function _addAnswerToHistory(bytes32 question_id, bytes32 answer_or_commitment_id, address answerer, uint256 bond, bool is_commitment) \n    internal \n    {\n        bytes32 new_history_hash = keccak256(abi.encodePacked(questions[question_id].history_hash, answer_or_commitment_id, bond, answerer, is_commitment));\n\n        // Update the current bond level, if there's a bond (ie anything except arbitration)\n        if (bond > 0) {\n            questions[question_id].bond = bond;\n        }\n        questions[question_id].history_hash = new_history_hash;\n\n        emit LogNewAnswer(answer_or_commitment_id, question_id, new_history_hash, answerer, bond, now, is_commitment);\n    }\n\n    function _updateCurrentAnswer(bytes32 question_id, bytes32 answer, uint32 timeout_secs)\n    internal {\n        questions[question_id].best_answer = answer;\n        questions[question_id].finalize_ts = uint32(now).add(timeout_secs);\n    }\n\n    /// @notice Notify the contract that the arbitrator has been paid for a question, freezing it pending their decision.\n    /// @dev The arbitrator contract is trusted to only call this if they've been paid, and tell us who paid them.\n    /// @param question_id The ID of the question\n    /// @param requester The account that requested arbitration\n    /// @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.\n    function notifyOfArbitrationRequest(bytes32 question_id, address requester, uint256 max_previous) \n        onlyArbitrator(question_id)\n        stateOpen(question_id)\n        previousBondMustNotBeatMaxPrevious(question_id, max_previous)\n    external {\n        require(questions[question_id].bond > 0, \"Question must already have an answer when arbitration is requested\");\n        questions[question_id].is_pending_arbitration = true;\n        emit LogNotifyOfArbitrationRequest(question_id, requester);\n    }\n\n    /// @notice Submit the answer for a question, for use by the arbitrator.\n    /// @dev Doesn't require (or allow) a bond.\n    /// If the current final answer is correct, the account should be whoever submitted it.\n    /// If the current final answer is wrong, the account should be whoever paid for arbitration.\n    /// However, the answerer stipulations are not enforced by the contract.\n    /// @param question_id The ID of the question\n    /// @param answer The answer, encoded into bytes32\n    /// @param answerer The account credited with this answer for the purpose of bond claims\n    function submitAnswerByArbitrator(bytes32 question_id, bytes32 answer, address answerer) \n        onlyArbitrator(question_id)\n        statePendingArbitration(question_id)\n    external {\n\n        require(answerer != NULL_ADDRESS, \"answerer must be provided\");\n        emit LogFinalize(question_id, answer);\n\n        questions[question_id].is_pending_arbitration = false;\n        _addAnswerToHistory(question_id, answer, answerer, 0, false);\n        _updateCurrentAnswer(question_id, answer, 0);\n\n    }\n\n    /// @notice Report whether the answer to the specified question is finalized\n    /// @param question_id The ID of the question\n    /// @return Return true if finalized\n    function isFinalized(bytes32 question_id) \n    view public returns (bool) {\n        uint32 finalize_ts = questions[question_id].finalize_ts;\n        return ( !questions[question_id].is_pending_arbitration && (finalize_ts > UNANSWERED) && (finalize_ts <= uint32(now)) );\n    }\n\n    /// @notice (Deprecated) Return the final answer to the specified question, or revert if there isn't one\n    /// @param question_id The ID of the question\n    /// @return The answer formatted as a bytes32\n    function getFinalAnswer(bytes32 question_id) \n        stateFinalized(question_id)\n    external view returns (bytes32) {\n        return questions[question_id].best_answer;\n    }\n\n    /// @notice Return the final answer to the specified question, or revert if there isn't one\n    /// @param question_id The ID of the question\n    /// @return The answer formatted as a bytes32\n    function resultFor(bytes32 question_id) \n        stateFinalized(question_id)\n    external view returns (bytes32) {\n        return questions[question_id].best_answer;\n    }\n\n\n    /// @notice Return the final answer to the specified question, provided it matches the specified criteria.\n    /// @dev Reverts if the question is not finalized, or if it does not match the specified criteria.\n    /// @param question_id The ID of the question\n    /// @param content_hash The hash of the question content (template ID + opening time + question parameter string)\n    /// @param arbitrator The arbitrator chosen for the question (regardless of whether they are asked to arbitrate)\n    /// @param min_timeout The timeout set in the initial question settings must be this high or higher\n    /// @param min_bond The bond sent with the final answer must be this high or higher\n    /// @return The answer formatted as a bytes32\n    function getFinalAnswerIfMatches(\n        bytes32 question_id, \n        bytes32 content_hash, address arbitrator, uint32 min_timeout, uint256 min_bond\n    ) \n        stateFinalized(question_id)\n    external view returns (bytes32) {\n        require(content_hash == questions[question_id].content_hash, \"content hash must match\");\n        require(arbitrator == questions[question_id].arbitrator, \"arbitrator must match\");\n        require(min_timeout <= questions[question_id].timeout, \"timeout must be long enough\");\n        require(min_bond <= questions[question_id].bond, \"bond must be high enough\");\n        return questions[question_id].best_answer;\n    }\n\n    /// @notice Assigns the winnings (bounty and bonds) to everyone who gave the accepted answer\n    /// Caller must provide the answer history, in reverse order\n    /// @dev Works up the chain and assign bonds to the person who gave the right answer\n    /// If someone gave the winning answer earlier, they must get paid from the higher bond\n    /// That means we can't pay out the bond added at n until we have looked at n-1\n    /// The first answer is authenticated by checking against the stored history_hash.\n    /// One of the inputs to history_hash is the history_hash before it, so we use that to authenticate the next entry, etc\n    /// Once we get to a null hash we'll know we're done and there are no more answers.\n    /// Usually you would call the whole thing in a single transaction, but if not then the data is persisted to pick up later.\n    /// @param question_id The ID of the question\n    /// @param history_hashes Second-last-to-first, the hash of each history entry. (Final one should be empty).\n    /// @param addrs Last-to-first, the address of each answerer or commitment sender\n    /// @param bonds Last-to-first, the bond supplied with each answer or commitment\n    /// @param answers Last-to-first, each answer supplied, or commitment ID if the answer was supplied with commit->reveal\n    function claimWinnings(\n        bytes32 question_id, \n        bytes32[] history_hashes, address[] addrs, uint256[] bonds, bytes32[] answers\n    ) \n        stateFinalized(question_id)\n    public {\n\n        require(history_hashes.length > 0, \"at least one history hash entry must be provided\");\n\n        // These are only set if we split our claim over multiple transactions.\n        address payee = question_claims[question_id].payee; \n        uint256 last_bond = question_claims[question_id].last_bond; \n        uint256 queued_funds = question_claims[question_id].queued_funds; \n\n        // Starts as the hash of the final answer submitted. It'll be cleared when we're done.\n        // If we're splitting the claim over multiple transactions, it'll be the hash where we left off last time\n        bytes32 last_history_hash = questions[question_id].history_hash;\n\n        bytes32 best_answer = questions[question_id].best_answer;\n\n        uint256 i;\n        for (i = 0; i < history_hashes.length; i++) {\n        \n            // Check input against the history hash, and see which of 2 possible values of is_commitment fits.\n            bool is_commitment = _verifyHistoryInputOrRevert(last_history_hash, history_hashes[i], answers[i], bonds[i], addrs[i]);\n            \n            queued_funds = queued_funds.add(last_bond); \n            (queued_funds, payee) = _processHistoryItem(\n                question_id, best_answer, queued_funds, payee, \n                addrs[i], bonds[i], answers[i], is_commitment);\n \n            // Line the bond up for next time, when it will be added to somebody's queued_funds\n            last_bond = bonds[i];\n            last_history_hash = history_hashes[i];\n\n        }\n \n        if (last_history_hash != NULL_HASH) {\n            // We haven't yet got to the null hash (1st answer), ie the caller didn't supply the full answer chain.\n            // Persist the details so we can pick up later where we left off later.\n\n            // If we know who to pay we can go ahead and pay them out, only keeping back last_bond\n            // (We always know who to pay unless all we saw were unrevealed commits)\n            if (payee != NULL_ADDRESS) {\n                _payPayee(question_id, payee, queued_funds);\n                queued_funds = 0;\n            }\n\n            question_claims[question_id].payee = payee;\n            question_claims[question_id].last_bond = last_bond;\n            question_claims[question_id].queued_funds = queued_funds;\n        } else {\n            // There is nothing left below us so the payee can keep what remains\n            _payPayee(question_id, payee, queued_funds.add(last_bond));\n            delete question_claims[question_id];\n        }\n\n        questions[question_id].history_hash = last_history_hash;\n\n    }\n\n    function _payPayee(bytes32 question_id, address payee, uint256 value) \n    internal {\n        balanceOf[payee] = balanceOf[payee].add(value);\n        emit LogClaim(question_id, payee, value);\n    }\n\n    function _verifyHistoryInputOrRevert(\n        bytes32 last_history_hash,\n        bytes32 history_hash, bytes32 answer, uint256 bond, address addr\n    )\n    internal pure returns (bool) {\n        if (last_history_hash == keccak256(abi.encodePacked(history_hash, answer, bond, addr, true)) ) {\n            return true;\n        }\n        if (last_history_hash == keccak256(abi.encodePacked(history_hash, answer, bond, addr, false)) ) {\n            return false;\n        } \n        revert(\"History input provided did not match the expected hash\");\n    }\n\n    function _processHistoryItem(\n        bytes32 question_id, bytes32 best_answer, \n        uint256 queued_funds, address payee, \n        address addr, uint256 bond, bytes32 answer, bool is_commitment\n    )\n    internal returns (uint256, address) {\n\n        // For commit-and-reveal, the answer history holds the commitment ID instead of the answer.\n        // We look at the referenced commitment ID and switch in the actual answer.\n        if (is_commitment) {\n            bytes32 commitment_id = answer;\n            // If it's a commit but it hasn't been revealed, it will always be considered wrong.\n            if (!commitments[commitment_id].is_revealed) {\n                delete commitments[commitment_id];\n                return (queued_funds, payee);\n            } else {\n                answer = commitments[commitment_id].revealed_answer;\n                delete commitments[commitment_id];\n            }\n        }\n\n        if (answer == best_answer) {\n\n            if (payee == NULL_ADDRESS) {\n\n                // The entry is for the first payee we come to, ie the winner.\n                // They get the question bounty.\n                payee = addr;\n                queued_funds = queued_funds.add(questions[question_id].bounty);\n                questions[question_id].bounty = 0;\n\n            } else if (addr != payee) {\n\n                // Answerer has changed, ie we found someone lower down who needs to be paid\n\n                // The lower answerer will take over receiving bonds from higher answerer.\n                // They should also be paid the takeover fee, which is set at a rate equivalent to their bond. \n                // (This is our arbitrary rule, to give consistent right-answerers a defence against high-rollers.)\n\n                // There should be enough for the fee, but if not, take what we have.\n                // There's an edge case involving weird arbitrator behaviour where we may be short.\n                uint256 answer_takeover_fee = (queued_funds >= bond) ? bond : queued_funds;\n\n                // Settle up with the old (higher-bonded) payee\n                _payPayee(question_id, payee, queued_funds.sub(answer_takeover_fee));\n\n                // Now start queued_funds again for the new (lower-bonded) payee\n                payee = addr;\n                queued_funds = answer_takeover_fee;\n\n            }\n\n        }\n\n        return (queued_funds, payee);\n\n    }\n\n    /// @notice Convenience function to assign bounties/bonds for multiple questions in one go, then withdraw all your funds.\n    /// Caller must provide the answer history for each question, in reverse order\n    /// @dev Can be called by anyone to assign bonds/bounties, but funds are only withdrawn for the user making the call.\n    /// @param question_ids The IDs of the questions you want to claim for\n    /// @param lengths The number of history entries you will supply for each question ID\n    /// @param hist_hashes In a single list for all supplied questions, the hash of each history entry.\n    /// @param addrs In a single list for all supplied questions, the address of each answerer or commitment sender\n    /// @param bonds In a single list for all supplied questions, the bond supplied with each answer or commitment\n    /// @param answers In a single list for all supplied questions, each answer supplied, or commitment ID \n    function claimMultipleAndWithdrawBalance(\n        bytes32[] question_ids, uint256[] lengths, \n        bytes32[] hist_hashes, address[] addrs, uint256[] bonds, bytes32[] answers\n    ) \n        stateAny() // The finalization checks are done in the claimWinnings function\n    public {\n        \n        uint256 qi;\n        uint256 i;\n        for (qi = 0; qi < question_ids.length; qi++) {\n            bytes32 qid = question_ids[qi];\n            uint256 ln = lengths[qi];\n            bytes32[] memory hh = new bytes32[](ln);\n            address[] memory ad = new address[](ln);\n            uint256[] memory bo = new uint256[](ln);\n            bytes32[] memory an = new bytes32[](ln);\n            uint256 j;\n            for (j = 0; j < ln; j++) {\n                hh[j] = hist_hashes[i];\n                ad[j] = addrs[i];\n                bo[j] = bonds[i];\n                an[j] = answers[i];\n                i++;\n            }\n            claimWinnings(qid, hh, ad, bo, an);\n        }\n        withdraw();\n    }\n\n    /// @notice Returns the questions's content hash, identifying the question content\n    /// @param question_id The ID of the question \n    function getContentHash(bytes32 question_id) \n    public view returns(bytes32) {\n        return questions[question_id].content_hash;\n    }\n\n    /// @notice Returns the arbitrator address for the question\n    /// @param question_id The ID of the question \n    function getArbitrator(bytes32 question_id) \n    public view returns(address) {\n        return questions[question_id].arbitrator;\n    }\n\n    /// @notice Returns the timestamp when the question can first be answered\n    /// @param question_id The ID of the question \n    function getOpeningTS(bytes32 question_id) \n    public view returns(uint32) {\n        return questions[question_id].opening_ts;\n    }\n\n    /// @notice Returns the timeout in seconds used after each answer\n    /// @param question_id The ID of the question \n    function getTimeout(bytes32 question_id) \n    public view returns(uint32) {\n        return questions[question_id].timeout;\n    }\n\n    /// @notice Returns the timestamp at which the question will be/was finalized\n    /// @param question_id The ID of the question \n    function getFinalizeTS(bytes32 question_id) \n    public view returns(uint32) {\n        return questions[question_id].finalize_ts;\n    }\n\n    /// @notice Returns whether the question is pending arbitration\n    /// @param question_id The ID of the question \n    function isPendingArbitration(bytes32 question_id) \n    public view returns(bool) {\n        return questions[question_id].is_pending_arbitration;\n    }\n\n    /// @notice Returns the current total unclaimed bounty\n    /// @dev Set back to zero once the bounty has been claimed\n    /// @param question_id The ID of the question \n    function getBounty(bytes32 question_id) \n    public view returns(uint256) {\n        return questions[question_id].bounty;\n    }\n\n    /// @notice Returns the current best answer\n    /// @param question_id The ID of the question \n    function getBestAnswer(bytes32 question_id) \n    public view returns(bytes32) {\n        return questions[question_id].best_answer;\n    }\n\n    /// @notice Returns the history hash of the question \n    /// @param question_id The ID of the question \n    /// @dev Updated on each answer, then rewound as each is claimed\n    function getHistoryHash(bytes32 question_id) \n    public view returns(bytes32) {\n        return questions[question_id].history_hash;\n    }\n\n    /// @notice Returns the highest bond posted so far for a question\n    /// @param question_id The ID of the question \n    function getBond(bytes32 question_id) \n    public view returns(uint256) {\n        return questions[question_id].bond;\n    }\n\n}\n",
 "sourcePath": "/home/ed/working/realitio-contracts-newtest/truffle/contracts/RealitioERC20.sol",
 "ast": {
  "absolutePath": "/home/ed/working/realitio-contracts-newtest/truffle/contracts/RealitioERC20.sol",
  "exportedSymbols": {
   "RealitioERC20": [
    2322
   ]
  },
  "id": 2323,
  "nodeType": "SourceUnit",
  "nodes": [
   {
    "id": 119,
    "literals": [
     "solidity",
     "^",
     "0.4",
     ".24"
    ],
    "nodeType": "PragmaDirective",
    "src": "0:24:2"
   },
   {
    "absolutePath": "/home/ed/working/realitio-contracts-newtest/truffle/contracts/RealitioSafeMath256.sol",
    "file": "./RealitioSafeMath256.sol",
    "id": 120,
    "nodeType": "ImportDirective",
    "scope": 2323,
    "sourceUnit": 2421,
    "src": "26:35:2",
    "symbolAliases": [],
    "unitAlias": ""
   },
   {
    "absolutePath": "/home/ed/working/realitio-contracts-newtest/truffle/contracts/RealitioSafeMath32.sol",
    "file": "./RealitioSafeMath32.sol",
    "id": 121,
    "nodeType": "ImportDirective",
    "scope": 2323,
    "sourceUnit": 2448,
    "src": "62:34:2",
    "symbolAliases": [],
    "unitAlias": ""
   },
   {
    "absolutePath": "/home/ed/working/realitio-contracts-newtest/truffle/contracts/BalanceHolderERC20.sol",
    "file": "./BalanceHolderERC20.sol",
    "id": 122,
    "nodeType": "ImportDirective",
    "scope": 2323,
    "sourceUnit": 49,
    "src": "97:34:2",
    "symbolAliases": [],
    "unitAlias": ""
   },
   {
    "baseContracts": [
     {
      "arguments": null,
      "baseName": {
       "contractScope": null,
       "id": 123,
       "name": "BalanceHolder",
       "nodeType": "UserDefinedTypeName",
       "referencedDeclaration": 48,
       "src": "159:13:2",
       "typeDescriptions": {
        "typeIdentifier": "t_contract$_BalanceHolder_$48",
        "typeString": "contract BalanceHolder"
       }
      },
      "id": 124,
      "nodeType": "InheritanceSpecifier",
      "src": "159:13:2"
     }
    ],
    "contractDependencies": [
     48
    ],
    "contractKind": "contract",
    "documentation": null,
    "fullyImplemented": true,
    "id": 2322,
    "linearizedBaseContracts": [
     2322,
     48
    ],
    "name": "RealitioERC20",
    "nodeType": "ContractDefinition",
    "nodes": [
     {
      "id": 127,
      "libraryName": {
       "contractScope": null,
       "id": 125,
       "name": "RealitioSafeMath256",
       "nodeType": "UserDefinedTypeName",
       "referencedDeclaration": 2420,
       "src": "186:19:2",
       "typeDescriptions": {
        "typeIdentifier": "t_contract$_RealitioSafeMath256_$2420",
        "typeString": "library RealitioSafeMath256"
       }
      },
      "nodeType": "UsingForDirective",
      "src": "180:38:2",
      "typeName": {
       "id": 126,
       "name": "uint256",
       "nodeType": "ElementaryTypeName",
       "src": "210:7:2",
       "typeDescriptions": {
        "typeIdentifier": "t_uint256",
        "typeString": "uint256"
       }
      }
     },
     {
      "id": 130,
      "libraryName": {
       "contractScope": null,
       "id": 128,
       "name": "RealitioSafeMath32",
       "nodeType": "UserDefinedTypeName",
       "referencedDeclaration": 2447,
       "src": "229:18:2",
       "typeDescriptions": {
        "typeIdentifier": "t_contract$_RealitioSafeMath32_$2447",
        "typeString": "library RealitioSafeMath32"
       }
      },
      "nodeType": "UsingForDirective",
      "src": "223:36:2",
      "typeName": {
       "id": 129,
       "name": "uint32",
       "nodeType": "ElementaryTypeName",
       "src": "252:6:2",
       "typeDescriptions": {
        "typeIdentifier": "t_uint32",
        "typeString": "uint32"
       }
      }
     },
     {
      "constant": true,
      "id": 135,
      "name": "NULL_ADDRESS",
      "nodeType": "VariableDeclaration",
      "scope": 2322,
      "src": "265:42:2",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_address",
       "typeString": "address"
      },
      "typeName": {
       "id": 131,
       "name": "address",
       "nodeType": "ElementaryTypeName",
       "src": "265:7:2",
       "typeDescriptions": {
        "typeIdentifier": "t_address",
        "typeString": "address"
       }
      },
      "value": {
       "argumentTypes": null,
       "arguments": [
        {
         "argumentTypes": null,
         "hexValue": "30",
         "id": 133,
         "isConstant": false,
         "isLValue": false,
         "isPure": true,
         "kind": "number",
         "lValueRequested": false,
         "nodeType": "Literal",
         "src": "305:1:2",
         "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": 132,
        "isConstant": false,
        "isLValue": false,
        "isPure": true,
        "lValueRequested": false,
        "nodeType": "ElementaryTypeNameExpression",
        "src": "297:7:2",
        "typeDescriptions": {
         "typeIdentifier": "t_type$_t_address_$",
         "typeString": "type(address)"
        },
        "typeName": "address"
       },
       "id": 134,
       "isConstant": false,
       "isLValue": false,
       "isPure": true,
       "kind": "typeConversion",
       "lValueRequested": false,
       "names": [],
       "nodeType": "FunctionCall",
       "src": "297:10:2",
       "typeDescriptions": {
        "typeIdentifier": "t_address",
        "typeString": "address"
       }
      },
      "visibility": "internal"
     },
     {
      "constant": true,
      "id": 140,
      "name": "NULL_HASH",
      "nodeType": "VariableDeclaration",
      "scope": 2322,
      "src": "390:39:2",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_bytes32",
       "typeString": "bytes32"
      },
      "typeName": {
       "id": 136,
       "name": "bytes32",
       "nodeType": "ElementaryTypeName",
       "src": "390:7:2",
       "typeDescriptions": {
        "typeIdentifier": "t_bytes32",
        "typeString": "bytes32"
       }
      },
      "value": {
       "argumentTypes": null,
       "arguments": [
        {
         "argumentTypes": null,
         "hexValue": "30",
         "id": 138,
         "isConstant": false,
         "isLValue": false,
         "isPure": true,
         "kind": "number",
         "lValueRequested": false,
         "nodeType": "Literal",
         "src": "427:1:2",
         "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": 137,
        "isConstant": false,
        "isLValue": false,
        "isPure": true,
        "lValueRequested": false,
        "nodeType": "ElementaryTypeNameExpression",
        "src": "419:7:2",
        "typeDescriptions": {
         "typeIdentifier": "t_type$_t_bytes32_$",
         "typeString": "type(bytes32)"
        },
        "typeName": "bytes32"
       },
       "id": 139,
       "isConstant": false,
       "isLValue": false,
       "isPure": true,
       "kind": "typeConversion",
       "lValueRequested": false,
       "names": [],
       "nodeType": "FunctionCall",
       "src": "419:10:2",
       "typeDescriptions": {
        "typeIdentifier": "t_bytes32",
        "typeString": "bytes32"
       }
      },
      "visibility": "internal"
     },
     {
      "constant": true,
      "id": 143,
      "name": "UNANSWERED",
      "nodeType": "VariableDeclaration",
      "scope": 2322,
      "src": "524:30:2",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_uint32",
       "typeString": "uint32"
      },
      "typeName": {
       "id": 141,
       "name": "uint32",
       "nodeType": "ElementaryTypeName",
       "src": "524:6:2",
       "typeDescriptions": {
        "typeIdentifier": "t_uint32",
        "typeString": "uint32"
       }
      },
      "value": {
       "argumentTypes": null,
       "hexValue": "30",
       "id": 142,
       "isConstant": false,
       "isLValue": false,
       "isPure": true,
       "kind": "number",
       "lValueRequested": false,
       "nodeType": "Literal",
       "src": "553:1:2",
       "subdenomination": null,
       "typeDescriptions": {
        "typeIdentifier": "t_rational_0_by_1",
        "typeString": "int_const 0"
       },
       "value": "0"
      },
      "visibility": "internal"
     },
     {
      "constant": true,
      "id": 146,
      "name": "COMMITMENT_NON_EXISTENT",
      "nodeType": "VariableDeclaration",
      "scope": 2322,
      "src": "647:44:2",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_uint256",
       "typeString": "uint256"
      },
      "typeName": {
       "id": 144,
       "name": "uint256",
       "nodeType": "ElementaryTypeName",
       "src": "647:7:2",
       "typeDescriptions": {
        "typeIdentifier": "t_uint256",
        "typeString": "uint256"
       }
      },
      "value": {
       "argumentTypes": null,
       "hexValue": "30",
       "id": 145,
       "isConstant": false,
       "isLValue": false,
       "isPure": true,
       "kind": "number",
       "lValueRequested": false,
       "nodeType": "Literal",
       "src": "690:1:2",
       "subdenomination": null,
       "typeDescriptions": {
        "typeIdentifier": "t_rational_0_by_1",
        "typeString": "int_const 0"
       },
       "value": "0"
      },
      "visibility": "internal"
     },
     {
      "constant": true,
      "id": 149,
      "name": "COMMITMENT_TIMEOUT_RATIO",
      "nodeType": "VariableDeclaration",
      "scope": 2322,
      "src": "775:44:2",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_uint32",
       "typeString": "uint32"
      },
      "typeName": {
       "id": 147,
       "name": "uint32",
       "nodeType": "ElementaryTypeName",
       "src": "775:6:2",
       "typeDescriptions": {
        "typeIdentifier": "t_uint32",
        "typeString": "uint32"
       }
      },
      "value": {
       "argumentTypes": null,
       "hexValue": "38",
       "id": 148,
       "isConstant": false,
       "isLValue": false,
       "isPure": true,
       "kind": "number",
       "lValueRequested": false,
       "nodeType": "Literal",
       "src": "818:1:2",
       "subdenomination": null,
       "typeDescriptions": {
        "typeIdentifier": "t_rational_8_by_1",
        "typeString": "int_const 8"
       },
       "value": "8"
      },
      "visibility": "internal"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 155,
      "name": "LogSetQuestionFee",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 154,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 151,
         "indexed": false,
         "name": "arbitrator",
         "nodeType": "VariableDeclaration",
         "scope": 155,
         "src": "859:18:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 150,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "859:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 153,
         "indexed": false,
         "name": "amount",
         "nodeType": "VariableDeclaration",
         "scope": 155,
         "src": "887:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 152,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "887:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "849:58:2"
      },
      "src": "826:82:2"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 163,
      "name": "LogNewTemplate",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 162,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 157,
         "indexed": true,
         "name": "template_id",
         "nodeType": "VariableDeclaration",
         "scope": 163,
         "src": "944:27:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 156,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "944:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 159,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 163,
         "src": "981:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 158,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "981:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 161,
         "indexed": false,
         "name": "question_text",
         "nodeType": "VariableDeclaration",
         "scope": 163,
         "src": "1012:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_string_memory_ptr",
          "typeString": "string"
         },
         "typeName": {
          "id": 160,
          "name": "string",
          "nodeType": "ElementaryTypeName",
          "src": "1012:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_string_storage_ptr",
           "typeString": "string"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "934:104:2"
      },
      "src": "914:125:2"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 185,
      "name": "LogNewQuestion",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 184,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 165,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 185,
         "src": "1075:27:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 164,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1075:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 167,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 185,
         "src": "1112:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 166,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "1112:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 169,
         "indexed": false,
         "name": "template_id",
         "nodeType": "VariableDeclaration",
         "scope": 185,
         "src": "1143:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 168,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1143:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 171,
         "indexed": false,
         "name": "question",
         "nodeType": "VariableDeclaration",
         "scope": 185,
         "src": "1172:15:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_string_memory_ptr",
          "typeString": "string"
         },
         "typeName": {
          "id": 170,
          "name": "string",
          "nodeType": "ElementaryTypeName",
          "src": "1172:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_string_storage_ptr",
           "typeString": "string"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 173,
         "indexed": true,
         "name": "content_hash",
         "nodeType": "VariableDeclaration",
         "scope": 185,
         "src": "1197:28:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 172,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1197:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 175,
         "indexed": false,
         "name": "arbitrator",
         "nodeType": "VariableDeclaration",
         "scope": 185,
         "src": "1235:18:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 174,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "1235:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 177,
         "indexed": false,
         "name": "timeout",
         "nodeType": "VariableDeclaration",
         "scope": 185,
         "src": "1264:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 176,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "1264:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 179,
         "indexed": false,
         "name": "opening_ts",
         "nodeType": "VariableDeclaration",
         "scope": 185,
         "src": "1288:17:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 178,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "1288:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 181,
         "indexed": false,
         "name": "nonce",
         "nodeType": "VariableDeclaration",
         "scope": 185,
         "src": "1315:13:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 180,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1315:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 183,
         "indexed": false,
         "name": "created",
         "nodeType": "VariableDeclaration",
         "scope": 185,
         "src": "1338:15:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 182,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1338:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "1065:294:2"
      },
      "src": "1045:315:2"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 195,
      "name": "LogFundAnswerBounty",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 194,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 187,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 195,
         "src": "1401:27:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 186,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1401:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 189,
         "indexed": false,
         "name": "bounty_added",
         "nodeType": "VariableDeclaration",
         "scope": 195,
         "src": "1438:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 188,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1438:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 191,
         "indexed": false,
         "name": "bounty",
         "nodeType": "VariableDeclaration",
         "scope": 195,
         "src": "1468:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 190,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1468:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 193,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 195,
         "src": "1492:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 192,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "1492:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "1391:128:2"
      },
      "src": "1366:154:2"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 211,
      "name": "LogNewAnswer",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 210,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 197,
         "indexed": false,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 211,
         "src": "1554:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 196,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1554:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 199,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 211,
         "src": "1578:27:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 198,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1578:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 201,
         "indexed": false,
         "name": "history_hash",
         "nodeType": "VariableDeclaration",
         "scope": 211,
         "src": "1615:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 200,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1615:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 203,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 211,
         "src": "1645:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 202,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "1645:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 205,
         "indexed": false,
         "name": "bond",
         "nodeType": "VariableDeclaration",
         "scope": 211,
         "src": "1675:12:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 204,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1675:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 207,
         "indexed": false,
         "name": "ts",
         "nodeType": "VariableDeclaration",
         "scope": 211,
         "src": "1697:10:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 206,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1697:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 209,
         "indexed": false,
         "name": "is_commitment",
         "nodeType": "VariableDeclaration",
         "scope": 211,
         "src": "1717:18:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         },
         "typeName": {
          "id": 208,
          "name": "bool",
          "nodeType": "ElementaryTypeName",
          "src": "1717:4:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "1544:197:2"
      },
      "src": "1526:216:2"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 225,
      "name": "LogAnswerReveal",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 224,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 213,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 225,
         "src": "1779:27:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 212,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1779:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 215,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 225,
         "src": "1817:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 214,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "1817:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 217,
         "indexed": true,
         "name": "answer_hash",
         "nodeType": "VariableDeclaration",
         "scope": 225,
         "src": "1848:27:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 216,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1848:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 219,
         "indexed": false,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 225,
         "src": "1886:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 218,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1886:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 221,
         "indexed": false,
         "name": "nonce",
         "nodeType": "VariableDeclaration",
         "scope": 225,
         "src": "1911:13:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 220,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1911:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 223,
         "indexed": false,
         "name": "bond",
         "nodeType": "VariableDeclaration",
         "scope": 225,
         "src": "1935:12:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 222,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1935:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "1769:184:2"
      },
      "src": "1748:206:2"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 231,
      "name": "LogNotifyOfArbitrationRequest",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 230,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 227,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 231,
         "src": "2005:27:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 226,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "2005:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 229,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 231,
         "src": "2042:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 228,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "2042:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "1995:74:2"
      },
      "src": "1960:110:2"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 237,
      "name": "LogFinalize",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 236,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 233,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 237,
         "src": "2103:27:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 232,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "2103:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 235,
         "indexed": true,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 237,
         "src": "2140:22:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 234,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "2140:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "2093:75:2"
      },
      "src": "2076:93:2"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 245,
      "name": "LogClaim",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 244,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 239,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 245,
         "src": "2199:27:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 238,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "2199:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 241,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 245,
         "src": "2236:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 240,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "2236:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 243,
         "indexed": false,
         "name": "amount",
         "nodeType": "VariableDeclaration",
         "scope": 245,
         "src": "2266:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 242,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "2266:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "2189:97:2"
      },
      "src": "2175:112:2"
     },
     {
      "canonicalName": "RealitioERC20.Question",
      "id": 266,
      "members": [
       {
        "constant": false,
        "id": 247,
        "name": "content_hash",
        "nodeType": "VariableDeclaration",
        "scope": 266,
        "src": "2319:20:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        },
        "typeName": {
         "id": 246,
         "name": "bytes32",
         "nodeType": "ElementaryTypeName",
         "src": "2319:7:2",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 249,
        "name": "arbitrator",
        "nodeType": "VariableDeclaration",
        "scope": 266,
        "src": "2349:18:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_address",
         "typeString": "address"
        },
        "typeName": {
         "id": 248,
         "name": "address",
         "nodeType": "ElementaryTypeName",
         "src": "2349:7:2",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 251,
        "name": "opening_ts",
        "nodeType": "VariableDeclaration",
        "scope": 266,
        "src": "2377:17:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint32",
         "typeString": "uint32"
        },
        "typeName": {
         "id": 250,
         "name": "uint32",
         "nodeType": "ElementaryTypeName",
         "src": "2377:6:2",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 253,
        "name": "timeout",
        "nodeType": "VariableDeclaration",
        "scope": 266,
        "src": "2404:14:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint32",
         "typeString": "uint32"
        },
        "typeName": {
         "id": 252,
         "name": "uint32",
         "nodeType": "ElementaryTypeName",
         "src": "2404:6:2",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 255,
        "name": "finalize_ts",
        "nodeType": "VariableDeclaration",
        "scope": 266,
        "src": "2428:18:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint32",
         "typeString": "uint32"
        },
        "typeName": {
         "id": 254,
         "name": "uint32",
         "nodeType": "ElementaryTypeName",
         "src": "2428:6:2",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 257,
        "name": "is_pending_arbitration",
        "nodeType": "VariableDeclaration",
        "scope": 266,
        "src": "2456:27:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_bool",
         "typeString": "bool"
        },
        "typeName": {
         "id": 256,
         "name": "bool",
         "nodeType": "ElementaryTypeName",
         "src": "2456:4:2",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 259,
        "name": "bounty",
        "nodeType": "VariableDeclaration",
        "scope": 266,
        "src": "2493:14:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        },
        "typeName": {
         "id": 258,
         "name": "uint256",
         "nodeType": "ElementaryTypeName",
         "src": "2493:7:2",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 261,
        "name": "best_answer",
        "nodeType": "VariableDeclaration",
        "scope": 266,
        "src": "2517:19:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        },
        "typeName": {
         "id": 260,
         "name": "bytes32",
         "nodeType": "ElementaryTypeName",
         "src": "2517:7:2",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 263,
        "name": "history_hash",
        "nodeType": "VariableDeclaration",
        "scope": 266,
        "src": "2546:20:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        },
        "typeName": {
         "id": 262,
         "name": "bytes32",
         "nodeType": "ElementaryTypeName",
         "src": "2546:7:2",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 265,
        "name": "bond",
        "nodeType": "VariableDeclaration",
        "scope": 266,
        "src": "2576:12:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        },
        "typeName": {
         "id": 264,
         "name": "uint256",
         "nodeType": "ElementaryTypeName",
         "src": "2576:7:2",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         }
        },
        "value": null,
        "visibility": "internal"
       }
      ],
      "name": "Question",
      "nodeType": "StructDefinition",
      "scope": 2322,
      "src": "2293:302:2",
      "visibility": "public"
     },
     {
      "canonicalName": "RealitioERC20.Commitment",
      "id": 273,
      "members": [
       {
        "constant": false,
        "id": 268,
        "name": "reveal_ts",
        "nodeType": "VariableDeclaration",
        "scope": 273,
        "src": "2726:16:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint32",
         "typeString": "uint32"
        },
        "typeName": {
         "id": 267,
         "name": "uint32",
         "nodeType": "ElementaryTypeName",
         "src": "2726:6:2",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 270,
        "name": "is_revealed",
        "nodeType": "VariableDeclaration",
        "scope": 273,
        "src": "2752:16:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_bool",
         "typeString": "bool"
        },
        "typeName": {
         "id": 269,
         "name": "bool",
         "nodeType": "ElementaryTypeName",
         "src": "2752:4:2",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 272,
        "name": "revealed_answer",
        "nodeType": "VariableDeclaration",
        "scope": 273,
        "src": "2778:23:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        },
        "typeName": {
         "id": 271,
         "name": "bytes32",
         "nodeType": "ElementaryTypeName",
         "src": "2778:7:2",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         }
        },
        "value": null,
        "visibility": "internal"
       }
      ],
      "name": "Commitment",
      "nodeType": "StructDefinition",
      "scope": 2322,
      "src": "2698:110:2",
      "visibility": "public"
     },
     {
      "canonicalName": "RealitioERC20.Claim",
      "id": 280,
      "members": [
       {
        "constant": false,
        "id": 275,
        "name": "payee",
        "nodeType": "VariableDeclaration",
        "scope": 280,
        "src": "2959:13:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_address",
         "typeString": "address"
        },
        "typeName": {
         "id": 274,
         "name": "address",
         "nodeType": "ElementaryTypeName",
         "src": "2959:7:2",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 277,
        "name": "last_bond",
        "nodeType": "VariableDeclaration",
        "scope": 280,
        "src": "2982:17:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        },
        "typeName": {
         "id": 276,
         "name": "uint256",
         "nodeType": "ElementaryTypeName",
         "src": "2982:7:2",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 279,
        "name": "queued_funds",
        "nodeType": "VariableDeclaration",
        "scope": 280,
        "src": "3009:20:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        },
        "typeName": {
         "id": 278,
         "name": "uint256",
         "nodeType": "ElementaryTypeName",
         "src": "3009:7:2",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         }
        },
        "value": null,
        "visibility": "internal"
       }
      ],
      "name": "Claim",
      "nodeType": "StructDefinition",
      "scope": 2322,
      "src": "2936:100:2",
      "visibility": "public"
     },
     {
      "constant": false,
      "id": 283,
      "name": "nextTemplateID",
      "nodeType": "VariableDeclaration",
      "scope": 2322,
      "src": "3042:26:2",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_uint256",
       "typeString": "uint256"
      },
      "typeName": {
       "id": 281,
       "name": "uint256",
       "nodeType": "ElementaryTypeName",
       "src": "3042:7:2",
       "typeDescriptions": {
        "typeIdentifier": "t_uint256",
        "typeString": "uint256"
       }
      },
      "value": {
       "argumentTypes": null,
       "hexValue": "30",
       "id": 282,
       "isConstant": false,
       "isLValue": false,
       "isPure": true,
       "kind": "number",
       "lValueRequested": false,
       "nodeType": "Literal",
       "src": "3067:1:2",
       "subdenomination": null,
       "typeDescriptions": {
        "typeIdentifier": "t_rational_0_by_1",
        "typeString": "int_const 0"
       },
       "value": "0"
      },
      "visibility": "internal"
     },
     {
      "constant": false,
      "id": 287,
      "name": "templates",
      "nodeType": "VariableDeclaration",
      "scope": 2322,
      "src": "3074:44:2",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
       "typeString": "mapping(uint256 => uint256)"
      },
      "typeName": {
       "id": 286,
       "keyType": {
        "id": 284,
        "name": "uint256",
        "nodeType": "ElementaryTypeName",
        "src": "3082:7:2",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        }
       },
       "nodeType": "Mapping",
       "src": "3074:27:2",
       "typeDescriptions": {
        "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
        "typeString": "mapping(uint256 => uint256)"
       },
       "valueType": {
        "id": 285,
        "name": "uint256",
        "nodeType": "ElementaryTypeName",
        "src": "3093:7:2",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        }
       }
      },
      "value": null,
      "visibility": "public"
     },
     {
      "constant": false,
      "id": 291,
      "name": "template_hashes",
      "nodeType": "VariableDeclaration",
      "scope": 2322,
      "src": "3124:50:2",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
       "typeString": "mapping(uint256 => bytes32)"
      },
      "typeName": {
       "id": 290,
       "keyType": {
        "id": 288,
        "name": "uint256",
        "nodeType": "ElementaryTypeName",
        "src": "3132:7:2",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        }
       },
       "nodeType": "Mapping",
       "src": "3124:27:2",
       "typeDescriptions": {
        "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
        "typeString": "mapping(uint256 => bytes32)"
       },
       "valueType": {
        "id": 289,
        "name": "bytes32",
        "nodeType": "ElementaryTypeName",
        "src": "3143:7:2",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        }
       }
      },
      "value": null,
      "visibility": "public"
     },
     {
      "constant": false,
      "id": 295,
      "name": "questions",
      "nodeType": "VariableDeclaration",
      "scope": 2322,
      "src": "3180:45:2",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
       "typeString": "mapping(bytes32 => struct RealitioERC20.Question)"
      },
      "typeName": {
       "id": 294,
       "keyType": {
        "id": 292,
        "name": "bytes32",
        "nodeType": "ElementaryTypeName",
        "src": "3188:7:2",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        }
       },
       "nodeType": "Mapping",
       "src": "3180:28:2",
       "typeDescriptions": {
        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
        "typeString": "mapping(bytes32 => struct RealitioERC20.Question)"
       },
       "valueType": {
        "contractScope": null,
        "id": 293,
        "name": "Question",
        "nodeType": "UserDefinedTypeName",
        "referencedDeclaration": 266,
        "src": "3199:8:2",
        "typeDescriptions": {
         "typeIdentifier": "t_struct$_Question_$266_storage_ptr",
         "typeString": "struct RealitioERC20.Question"
        }
       }
      },
      "value": null,
      "visibility": "public"
     },
     {
      "constant": false,
      "id": 299,
      "name": "question_claims",
      "nodeType": "VariableDeclaration",
      "scope": 2322,
      "src": "3231:48:2",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$280_storage_$",
       "typeString": "mapping(bytes32 => struct RealitioERC20.Claim)"
      },
      "typeName": {
       "id": 298,
       "keyType": {
        "id": 296,
        "name": "bytes32",
        "nodeType": "ElementaryTypeName",
        "src": "3239:7:2",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        }
       },
       "nodeType": "Mapping",
       "src": "3231:25:2",
       "typeDescriptions": {
        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$280_storage_$",
        "typeString": "mapping(bytes32 => struct RealitioERC20.Claim)"
       },
       "valueType": {
        "contractScope": null,
        "id": 297,
        "name": "Claim",
        "nodeType": "UserDefinedTypeName",
        "referencedDeclaration": 280,
        "src": "3250:5:2",
        "typeDescriptions": {
         "typeIdentifier": "t_struct$_Claim_$280_storage_ptr",
         "typeString": "struct RealitioERC20.Claim"
        }
       }
      },
      "value": null,
      "visibility": "public"
     },
     {
      "constant": false,
      "id": 303,
      "name": "commitments",
      "nodeType": "VariableDeclaration",
      "scope": 2322,
      "src": "3285:49:2",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$273_storage_$",
       "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment)"
      },
      "typeName": {
       "id": 302,
       "keyType": {
        "id": 300,
        "name": "bytes32",
        "nodeType": "ElementaryTypeName",
        "src": "3293:7:2",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        }
       },
       "nodeType": "Mapping",
       "src": "3285:30:2",
       "typeDescriptions": {
        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$273_storage_$",
        "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment)"
       },
       "valueType": {
        "contractScope": null,
        "id": 301,
        "name": "Commitment",
        "nodeType": "UserDefinedTypeName",
        "referencedDeclaration": 273,
        "src": "3304:10:2",
        "typeDescriptions": {
         "typeIdentifier": "t_struct$_Commitment_$273_storage_ptr",
         "typeString": "struct RealitioERC20.Commitment"
        }
       }
      },
      "value": null,
      "visibility": "public"
     },
     {
      "constant": false,
      "id": 307,
      "name": "arbitrator_question_fees",
      "nodeType": "VariableDeclaration",
      "scope": 2322,
      "src": "3340:59:2",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
       "typeString": "mapping(address => uint256)"
      },
      "typeName": {
       "id": 306,
       "keyType": {
        "id": 304,
        "name": "address",
        "nodeType": "ElementaryTypeName",
        "src": "3348:7:2",
        "typeDescriptions": {
         "typeIdentifier": "t_address",
         "typeString": "address"
        }
       },
       "nodeType": "Mapping",
       "src": "3340:27:2",
       "typeDescriptions": {
        "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
        "typeString": "mapping(address => uint256)"
       },
       "valueType": {
        "id": 305,
        "name": "uint256",
        "nodeType": "ElementaryTypeName",
        "src": "3359:7:2",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        }
       }
      },
      "value": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 323,
       "nodeType": "Block",
       "src": "3452:117:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            "id": 318,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "id": 312,
              "name": "msg",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2462,
              "src": "3470:3:2",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_message",
               "typeString": "msg"
              }
             },
             "id": 313,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "sender",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "3470:10:2",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "==",
            "rightExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 314,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 295,
               "src": "3484:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
               }
              },
              "id": 316,
              "indexExpression": {
               "argumentTypes": null,
               "id": 315,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 309,
               "src": "3494:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "3484:22:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$266_storage",
               "typeString": "struct RealitioERC20.Question storage ref"
              }
             },
             "id": 317,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "arbitrator",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 249,
             "src": "3484:33:2",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "src": "3470:47:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "6d73672e73656e646572206d7573742062652061726269747261746f72",
            "id": 319,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "3519:31:2",
            "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": 311,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "3462:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 320,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "3462:89:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 321,
         "nodeType": "ExpressionStatement",
         "src": "3462:89:2"
        },
        {
         "id": 322,
         "nodeType": "PlaceholderStatement",
         "src": "3561:1:2"
        }
       ]
      },
      "documentation": null,
      "id": 324,
      "name": "onlyArbitrator",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 310,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 309,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 324,
         "src": "3431:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 308,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "3431:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "3430:21:2"
      },
      "src": "3407:162:2",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 327,
       "nodeType": "Block",
       "src": "3595:18:2",
       "statements": [
        {
         "id": 326,
         "nodeType": "PlaceholderStatement",
         "src": "3605:1:2"
        }
       ]
      },
      "documentation": null,
      "id": 328,
      "name": "stateAny",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 325,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "3592:2:2"
      },
      "src": "3575:38:2",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 343,
       "nodeType": "Block",
       "src": "3665:99:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 338,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 333,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 295,
               "src": "3683:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
               }
              },
              "id": 335,
              "indexExpression": {
               "argumentTypes": null,
               "id": 334,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 330,
               "src": "3693:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "3683:22:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$266_storage",
               "typeString": "struct RealitioERC20.Question storage ref"
              }
             },
             "id": 336,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "timeout",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 253,
             "src": "3683:30:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "==",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 337,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "3717:1:2",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "3683:35:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "7175657374696f6e206d757374206e6f74206578697374",
            "id": 339,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "3720:25:2",
            "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": 332,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "3675:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 340,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "3675:71:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 341,
         "nodeType": "ExpressionStatement",
         "src": "3675:71:2"
        },
        {
         "id": 342,
         "nodeType": "PlaceholderStatement",
         "src": "3756:1:2"
        }
       ]
      },
      "documentation": null,
      "id": 344,
      "name": "stateNotCreated",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 331,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 330,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 344,
         "src": "3644:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 329,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "3644:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "3643:21:2"
      },
      "src": "3619:145:2",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 408,
       "nodeType": "Block",
       "src": "3810:547:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 354,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 349,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 295,
               "src": "3828:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
               }
              },
              "id": 351,
              "indexExpression": {
               "argumentTypes": null,
               "id": 350,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 346,
               "src": "3838:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "3828:22:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$266_storage",
               "typeString": "struct RealitioERC20.Question storage ref"
              }
             },
             "id": 352,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "timeout",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 253,
             "src": "3828:30:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 353,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "3861:1:2",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "3828:34:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "7175657374696f6e206d757374206578697374",
            "id": 355,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "3864:21:2",
            "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": 348,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "3820:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 356,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "3820:66:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 357,
         "nodeType": "ExpressionStatement",
         "src": "3820:66:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 363,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "UnaryOperation",
            "operator": "!",
            "prefix": true,
            "src": "3904:46:2",
            "subExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 359,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 295,
               "src": "3905:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
               }
              },
              "id": 361,
              "indexExpression": {
               "argumentTypes": null,
               "id": 360,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 346,
               "src": "3915:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "3905:22:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$266_storage",
               "typeString": "struct RealitioERC20.Question storage ref"
              }
             },
             "id": 362,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "is_pending_arbitration",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 257,
             "src": "3905:45:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "7175657374696f6e206d757374206e6f742062652070656e64696e67206172626974726174696f6e",
            "id": 364,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "3952:42:2",
            "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": 358,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "3896:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 365,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "3896:99:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 366,
         "nodeType": "ExpressionStatement",
         "src": "3896:99:2"
        },
        {
         "assignments": [
          368
         ],
         "declarations": [
          {
           "constant": false,
           "id": 368,
           "name": "finalize_ts",
           "nodeType": "VariableDeclaration",
           "scope": 409,
           "src": "4005:18:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           },
           "typeName": {
            "id": 367,
            "name": "uint32",
            "nodeType": "ElementaryTypeName",
            "src": "4005:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 373,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 369,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "4026:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 371,
           "indexExpression": {
            "argumentTypes": null,
            "id": 370,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 346,
            "src": "4036:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "4026:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 372,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "finalize_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 255,
          "src": "4026:34:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "4005:55:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            },
            "id": 383,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 377,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 375,
              "name": "finalize_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 368,
              "src": "4078:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "==",
             "rightExpression": {
              "argumentTypes": null,
              "id": 376,
              "name": "UNANSWERED",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 143,
              "src": "4093:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "src": "4078:25:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "||",
            "rightExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 382,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 378,
              "name": "finalize_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 368,
              "src": "4107:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": ">",
             "rightExpression": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 380,
                "name": "now",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 2464,
                "src": "4128:3:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "id": 379,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "lValueRequested": false,
               "nodeType": "ElementaryTypeNameExpression",
               "src": "4121:6:2",
               "typeDescriptions": {
                "typeIdentifier": "t_type$_t_uint32_$",
                "typeString": "type(uint32)"
               },
               "typeName": "uint32"
              },
              "id": 381,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "4121:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "src": "4107:25:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "src": "4078:54:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "66696e616c697a6174696f6e20646561646c696e65206d757374206e6f74206861766520706173736564",
            "id": 384,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "4134:44:2",
            "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": 374,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "4070:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 385,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "4070:109:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 386,
         "nodeType": "ExpressionStatement",
         "src": "4070:109:2"
        },
        {
         "assignments": [
          388
         ],
         "declarations": [
          {
           "constant": false,
           "id": 388,
           "name": "opening_ts",
           "nodeType": "VariableDeclaration",
           "scope": 409,
           "src": "4189:17:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           },
           "typeName": {
            "id": 387,
            "name": "uint32",
            "nodeType": "ElementaryTypeName",
            "src": "4189:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 393,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 389,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "4209:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 391,
           "indexExpression": {
            "argumentTypes": null,
            "id": 390,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 346,
            "src": "4219:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "4209:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 392,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "opening_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 251,
          "src": "4209:33:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "4189:53:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            },
            "id": 403,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 397,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 395,
              "name": "opening_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 388,
              "src": "4260:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "==",
             "rightExpression": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 396,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "4274:1:2",
              "subdenomination": null,
              "typeDescriptions": {
               "typeIdentifier": "t_rational_0_by_1",
               "typeString": "int_const 0"
              },
              "value": "0"
             },
             "src": "4260:15:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "||",
            "rightExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 402,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 398,
              "name": "opening_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 388,
              "src": "4279:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "<=",
             "rightExpression": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 400,
                "name": "now",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 2464,
                "src": "4300:3:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "id": 399,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "lValueRequested": false,
               "nodeType": "ElementaryTypeNameExpression",
               "src": "4293:6:2",
               "typeDescriptions": {
                "typeIdentifier": "t_type$_t_uint32_$",
                "typeString": "type(uint32)"
               },
               "typeName": "uint32"
              },
              "id": 401,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "4293:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "src": "4279:25:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "src": "4260:44:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "6f70656e696e672064617465206d757374206861766520706173736564",
            "id": 404,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "4306:31:2",
            "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": 394,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "4252:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 405,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "4252:86:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 406,
         "nodeType": "ExpressionStatement",
         "src": "4252:86:2"
        },
        {
         "id": 407,
         "nodeType": "PlaceholderStatement",
         "src": "4349:1:2"
        }
       ]
      },
      "documentation": null,
      "id": 409,
      "name": "stateOpen",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 347,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 346,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 409,
         "src": "3789:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 345,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "3789:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "3788:21:2"
      },
      "src": "3770:587:2",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 422,
       "nodeType": "Block",
       "src": "4417:122:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 414,
              "name": "questions",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 295,
              "src": "4435:9:2",
              "typeDescriptions": {
               "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
               "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
              }
             },
             "id": 416,
             "indexExpression": {
              "argumentTypes": null,
              "id": 415,
              "name": "question_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 411,
              "src": "4445:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "4435:22:2",
             "typeDescriptions": {
              "typeIdentifier": "t_struct$_Question_$266_storage",
              "typeString": "struct RealitioERC20.Question storage ref"
             }
            },
            "id": 417,
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "is_pending_arbitration",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 257,
            "src": "4435:45:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "7175657374696f6e206d7573742062652070656e64696e67206172626974726174696f6e",
            "id": 418,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "4482:38:2",
            "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": 413,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "4427:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 419,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "4427:94:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 420,
         "nodeType": "ExpressionStatement",
         "src": "4427:94:2"
        },
        {
         "id": 421,
         "nodeType": "PlaceholderStatement",
         "src": "4531:1:2"
        }
       ]
      },
      "documentation": null,
      "id": 423,
      "name": "statePendingArbitration",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 412,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 411,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 423,
         "src": "4396:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 410,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "4396:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "4395:21:2"
      },
      "src": "4363:176:2",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 478,
       "nodeType": "Block",
       "src": "4605:437:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 433,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 428,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 295,
               "src": "4623:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
               }
              },
              "id": 430,
              "indexExpression": {
               "argumentTypes": null,
               "id": 429,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 425,
               "src": "4633:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "4623:22:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$266_storage",
               "typeString": "struct RealitioERC20.Question storage ref"
              }
             },
             "id": 431,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "timeout",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 253,
             "src": "4623:30:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 432,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "4656:1:2",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "4623:34:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "7175657374696f6e206d757374206578697374",
            "id": 434,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "4659:21:2",
            "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": 427,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "4615:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 435,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "4615:66:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 436,
         "nodeType": "ExpressionStatement",
         "src": "4615:66:2"
        },
        {
         "assignments": [
          438
         ],
         "declarations": [
          {
           "constant": false,
           "id": 438,
           "name": "finalize_ts",
           "nodeType": "VariableDeclaration",
           "scope": 479,
           "src": "4691:18:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           },
           "typeName": {
            "id": 437,
            "name": "uint32",
            "nodeType": "ElementaryTypeName",
            "src": "4691:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 443,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 439,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "4712:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 441,
           "indexExpression": {
            "argumentTypes": null,
            "id": 440,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 425,
            "src": "4722:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "4712:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 442,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "finalize_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 255,
          "src": "4712:34:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "4691:55:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            },
            "id": 453,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 447,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 445,
              "name": "finalize_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 438,
              "src": "4764:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "==",
             "rightExpression": {
              "argumentTypes": null,
              "id": 446,
              "name": "UNANSWERED",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 143,
              "src": "4779:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "src": "4764:25:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "||",
            "rightExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 452,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 448,
              "name": "finalize_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 438,
              "src": "4793:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": ">",
             "rightExpression": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 450,
                "name": "now",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 2464,
                "src": "4814:3:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "id": 449,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "lValueRequested": false,
               "nodeType": "ElementaryTypeNameExpression",
               "src": "4807:6:2",
               "typeDescriptions": {
                "typeIdentifier": "t_type$_t_uint32_$",
                "typeString": "type(uint32)"
               },
               "typeName": "uint32"
              },
              "id": 451,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "4807:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "src": "4793:25:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "src": "4764:54:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "66696e616c697a6174696f6e206465616c696e65206d757374206e6f74206861766520706173736564",
            "id": 454,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "4820:43:2",
            "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": 444,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "4756:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 455,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "4756:108:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 456,
         "nodeType": "ExpressionStatement",
         "src": "4756:108:2"
        },
        {
         "assignments": [
          458
         ],
         "declarations": [
          {
           "constant": false,
           "id": 458,
           "name": "opening_ts",
           "nodeType": "VariableDeclaration",
           "scope": 479,
           "src": "4874:17:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           },
           "typeName": {
            "id": 457,
            "name": "uint32",
            "nodeType": "ElementaryTypeName",
            "src": "4874:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 463,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 459,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "4894:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 461,
           "indexExpression": {
            "argumentTypes": null,
            "id": 460,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 425,
            "src": "4904:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "4894:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 462,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "opening_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 251,
          "src": "4894:33:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "4874:53:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            },
            "id": 473,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 467,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 465,
              "name": "opening_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 458,
              "src": "4945:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "==",
             "rightExpression": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 466,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "4959:1:2",
              "subdenomination": null,
              "typeDescriptions": {
               "typeIdentifier": "t_rational_0_by_1",
               "typeString": "int_const 0"
              },
              "value": "0"
             },
             "src": "4945:15:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "||",
            "rightExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 472,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 468,
              "name": "opening_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 458,
              "src": "4964:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "<=",
             "rightExpression": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 470,
                "name": "now",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 2464,
                "src": "4985:3:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "id": 469,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "lValueRequested": false,
               "nodeType": "ElementaryTypeNameExpression",
               "src": "4978:6:2",
               "typeDescriptions": {
                "typeIdentifier": "t_type$_t_uint32_$",
                "typeString": "type(uint32)"
               },
               "typeName": "uint32"
              },
              "id": 471,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "4978:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "src": "4964:25:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "src": "4945:44:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "6f70656e696e672064617465206d757374206861766520706173736564",
            "id": 474,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "4991:31:2",
            "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": 464,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "4937:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 475,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "4937:86:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 476,
         "nodeType": "ExpressionStatement",
         "src": "4937:86:2"
        },
        {
         "id": 477,
         "nodeType": "PlaceholderStatement",
         "src": "5034:1:2"
        }
       ]
      },
      "documentation": null,
      "id": 479,
      "name": "stateOpenOrPendingArbitration",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 426,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 425,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 479,
         "src": "4584:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 424,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "4584:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "4583:21:2"
      },
      "src": "4545:497:2",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 491,
       "nodeType": "Block",
       "src": "5093:91:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 485,
              "name": "question_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 481,
              "src": "5123:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             }
            ],
            "expression": {
             "argumentTypes": [
              {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             ],
             "id": 484,
             "name": "isFinalized",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1532,
             "src": "5111:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
              "typeString": "function (bytes32) view returns (bool)"
             }
            },
            "id": 486,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "5111:24:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "7175657374696f6e206d7573742062652066696e616c697a6564",
            "id": 487,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "5137:28:2",
            "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": 483,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "5103:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 488,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "5103:63:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 489,
         "nodeType": "ExpressionStatement",
         "src": "5103:63:2"
        },
        {
         "id": 490,
         "nodeType": "PlaceholderStatement",
         "src": "5176:1:2"
        }
       ]
      },
      "documentation": null,
      "id": 492,
      "name": "stateFinalized",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 482,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 481,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 492,
         "src": "5072:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 480,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "5072:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "5071:21:2"
      },
      "src": "5048:136:2",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 520,
       "nodeType": "Block",
       "src": "5251:184:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 501,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 499,
             "name": "tokens",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 496,
             "src": "5269:6:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 500,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "5278:1:2",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "5269:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "626f6e64206d75737420626520706f736974697665",
            "id": 502,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "5281:23:2",
            "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": 498,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "5261:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 503,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "5261:44:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 504,
         "nodeType": "ExpressionStatement",
         "src": "5261:44:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 515,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 506,
             "name": "tokens",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 496,
             "src": "5324:6:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">=",
            "rightExpression": {
             "argumentTypes": null,
             "components": [
              {
               "argumentTypes": null,
               "arguments": [
                {
                 "argumentTypes": null,
                 "hexValue": "32",
                 "id": 512,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": true,
                 "kind": "number",
                 "lValueRequested": false,
                 "nodeType": "Literal",
                 "src": "5367:1:2",
                 "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": 507,
                   "name": "questions",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 295,
                   "src": "5335:9:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                    "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                   }
                  },
                  "id": 509,
                  "indexExpression": {
                   "argumentTypes": null,
                   "id": 508,
                   "name": "question_id",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 494,
                   "src": "5345:11:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                   }
                  },
                  "isConstant": false,
                  "isLValue": true,
                  "isPure": false,
                  "lValueRequested": false,
                  "nodeType": "IndexAccess",
                  "src": "5335:22:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_struct$_Question_$266_storage",
                   "typeString": "struct RealitioERC20.Question storage ref"
                  }
                 },
                 "id": 510,
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "memberName": "bond",
                 "nodeType": "MemberAccess",
                 "referencedDeclaration": 265,
                 "src": "5335:27:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "id": 511,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "memberName": "mul",
                "nodeType": "MemberAccess",
                "referencedDeclaration": 2357,
                "src": "5335:31:2",
                "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": 513,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "kind": "functionCall",
               "lValueRequested": false,
               "names": [],
               "nodeType": "FunctionCall",
               "src": "5335:34:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "id": 514,
             "isConstant": false,
             "isInlineArray": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "TupleExpression",
             "src": "5334:36:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "src": "5324:46:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "626f6e64206d75737420626520646f75626c65206174206c656173742070726576696f757320626f6e64",
            "id": 516,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "5372:44:2",
            "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": 505,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "5316:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 517,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "5316:101:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 518,
         "nodeType": "ExpressionStatement",
         "src": "5316:101:2"
        },
        {
         "id": 519,
         "nodeType": "PlaceholderStatement",
         "src": "5427:1:2"
        }
       ]
      },
      "documentation": null,
      "id": 521,
      "name": "bondMustDouble",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 497,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 494,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 521,
         "src": "5214:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 493,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "5214:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 496,
         "name": "tokens",
         "nodeType": "VariableDeclaration",
         "scope": 521,
         "src": "5235:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 495,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "5235:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "5213:37:2"
      },
      "src": "5190:245:2",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 543,
       "nodeType": "Block",
       "src": "5528:159:2",
       "statements": [
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          },
          "id": 529,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 527,
           "name": "max_previous",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 525,
           "src": "5542:12:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": ">",
          "rightExpression": {
           "argumentTypes": null,
           "hexValue": "30",
           "id": 528,
           "isConstant": false,
           "isLValue": false,
           "isPure": true,
           "kind": "number",
           "lValueRequested": false,
           "nodeType": "Literal",
           "src": "5557:1:2",
           "subdenomination": null,
           "typeDescriptions": {
            "typeIdentifier": "t_rational_0_by_1",
            "typeString": "int_const 0"
           },
           "value": "0"
          },
          "src": "5542:16:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 541,
         "nodeType": "IfStatement",
         "src": "5538:132:2",
         "trueBody": {
          "id": 540,
          "nodeType": "Block",
          "src": "5560:110:2",
          "statements": [
           {
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "commonType": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               },
               "id": 536,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "lValueRequested": false,
               "leftExpression": {
                "argumentTypes": null,
                "expression": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 531,
                  "name": "questions",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 295,
                  "src": "5582:9:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                   "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                  }
                 },
                 "id": 533,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 532,
                  "name": "question_id",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 523,
                  "src": "5592:11:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_bytes32",
                   "typeString": "bytes32"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "nodeType": "IndexAccess",
                 "src": "5582:22:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Question_$266_storage",
                  "typeString": "struct RealitioERC20.Question storage ref"
                 }
                },
                "id": 534,
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "memberName": "bond",
                "nodeType": "MemberAccess",
                "referencedDeclaration": 265,
                "src": "5582:27:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "nodeType": "BinaryOperation",
               "operator": "<=",
               "rightExpression": {
                "argumentTypes": null,
                "id": 535,
                "name": "max_previous",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 525,
                "src": "5613:12:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "src": "5582:43:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
               }
              },
              {
               "argumentTypes": null,
               "hexValue": "626f6e64206d75737420657863656564206d61785f70726576696f7573",
               "id": 537,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "kind": "string",
               "lValueRequested": false,
               "nodeType": "Literal",
               "src": "5627:31:2",
               "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": 530,
              "name": "require",
              "nodeType": "Identifier",
              "overloadedDeclarations": [
               2465,
               2466
              ],
              "referencedDeclaration": 2466,
              "src": "5574:7:2",
              "typeDescriptions": {
               "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
               "typeString": "function (bool,string memory) pure"
              }
             },
             "id": 538,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "5574:85:2",
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 539,
            "nodeType": "ExpressionStatement",
            "src": "5574:85:2"
           }
          ]
         }
        },
        {
         "id": 542,
         "nodeType": "PlaceholderStatement",
         "src": "5679:1:2"
        }
       ]
      },
      "documentation": null,
      "id": 544,
      "name": "previousBondMustNotBeatMaxPrevious",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 526,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 523,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 544,
         "src": "5485:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 522,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "5485:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 525,
         "name": "max_previous",
         "nodeType": "VariableDeclaration",
         "scope": 544,
         "src": "5506:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 524,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "5506:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "5484:43:2"
      },
      "src": "5441:246:2",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 562,
       "nodeType": "Block",
       "src": "5742:108:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_contract$_IERC20_$117",
             "typeString": "contract IERC20"
            },
            "id": 554,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 550,
             "name": "token",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 4,
             "src": "5760:5:2",
             "typeDescriptions": {
              "typeIdentifier": "t_contract$_IERC20_$117",
              "typeString": "contract IERC20"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "==",
            "rightExpression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "hexValue": "307830",
               "id": 552,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "kind": "number",
               "lValueRequested": false,
               "nodeType": "Literal",
               "src": "5776:3:2",
               "subdenomination": null,
               "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
               },
               "value": "0x0"
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
               }
              ],
              "id": 551,
              "name": "IERC20",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 117,
              "src": "5769:6:2",
              "typeDescriptions": {
               "typeIdentifier": "t_type$_t_contract$_IERC20_$117_$",
               "typeString": "type(contract IERC20)"
              }
             },
             "id": 553,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "typeConversion",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "5769:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_contract$_IERC20_$117",
              "typeString": "contract IERC20"
             }
            },
            "src": "5760:20:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "546f6b656e2063616e206f6e6c7920626520696e697469616c697a6564206f6e6365",
            "id": 555,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "5782:36:2",
            "subdenomination": null,
            "typeDescriptions": {
             "typeIdentifier": "t_stringliteral_80f2fa6a1f10a3aaa9e08a5fe405bb69eb5d3bdf4c164a77f5a710f6094de6c4",
             "typeString": "literal_string \"Token can only be initialized once\""
            },
            "value": "Token can only be initialized once"
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            },
            {
             "typeIdentifier": "t_stringliteral_80f2fa6a1f10a3aaa9e08a5fe405bb69eb5d3bdf4c164a77f5a710f6094de6c4",
             "typeString": "literal_string \"Token can only be initialized once\""
            }
           ],
           "id": 549,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "5752:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 556,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "5752:67:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 557,
         "nodeType": "ExpressionStatement",
         "src": "5752:67:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 560,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "id": 558,
           "name": "token",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 4,
           "src": "5829:5:2",
           "typeDescriptions": {
            "typeIdentifier": "t_contract$_IERC20_$117",
            "typeString": "contract IERC20"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 559,
           "name": "_token",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 546,
           "src": "5837:6:2",
           "typeDescriptions": {
            "typeIdentifier": "t_contract$_IERC20_$117",
            "typeString": "contract IERC20"
           }
          },
          "src": "5829:14:2",
          "typeDescriptions": {
           "typeIdentifier": "t_contract$_IERC20_$117",
           "typeString": "contract IERC20"
          }
         },
         "id": 561,
         "nodeType": "ExpressionStatement",
         "src": "5829:14:2"
        }
       ]
      },
      "documentation": null,
      "id": 563,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "setToken",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 547,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 546,
         "name": "_token",
         "nodeType": "VariableDeclaration",
         "scope": 563,
         "src": "5711:13:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_contract$_IERC20_$117",
          "typeString": "contract IERC20"
         },
         "typeName": {
          "contractScope": null,
          "id": 545,
          "name": "IERC20",
          "nodeType": "UserDefinedTypeName",
          "referencedDeclaration": 117,
          "src": "5711:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_contract$_IERC20_$117",
           "typeString": "contract IERC20"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "5710:15:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 548,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "5742:0:2"
      },
      "scope": 2322,
      "src": "5693:157:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 586,
       "nodeType": "Block",
       "src": "6107:538:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "hexValue": "7b227469746c65223a20222573222c202274797065223a2022626f6f6c222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
            "id": 567,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "6132:65:2",
            "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": 566,
           "name": "createTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 656,
           "src": "6117:14:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
            "typeString": "function (string memory) returns (uint256)"
           }
          },
          "id": 568,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "6117:81:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 569,
         "nodeType": "ExpressionStatement",
         "src": "6117:81:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "hexValue": "7b227469746c65223a20222573222c202274797065223a202275696e74222c2022646563696d616c73223a2031382c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
            "id": 571,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "6223:81:2",
            "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": 570,
           "name": "createTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 656,
           "src": "6208:14:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
            "typeString": "function (string memory) returns (uint256)"
           }
          },
          "id": 572,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "6208:97:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 573,
         "nodeType": "ExpressionStatement",
         "src": "6208:97:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "hexValue": "7b227469746c65223a20222573222c202274797065223a202273696e676c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
            "id": 575,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "6330:92:2",
            "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": 574,
           "name": "createTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 656,
           "src": "6315:14:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
            "typeString": "function (string memory) returns (uint256)"
           }
          },
          "id": 576,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "6315:108:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 577,
         "nodeType": "ExpressionStatement",
         "src": "6315:108:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "hexValue": "7b227469746c65223a20222573222c202274797065223a20226d756c7469706c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
            "id": 579,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "6448:94:2",
            "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": 578,
           "name": "createTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 656,
           "src": "6433:14:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
            "typeString": "function (string memory) returns (uint256)"
           }
          },
          "id": 580,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "6433:110:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 581,
         "nodeType": "ExpressionStatement",
         "src": "6433:110:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "hexValue": "7b227469746c65223a20222573222c202274797065223a20226461746574696d65222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
            "id": 583,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "6568:69:2",
            "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": 582,
           "name": "createTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 656,
           "src": "6553:14:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
            "typeString": "function (string memory) returns (uint256)"
           }
          },
          "id": 584,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "6553:85:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 585,
         "nodeType": "ExpressionStatement",
         "src": "6553:85:2"
        }
       ]
      },
      "documentation": "@notice Constructor, sets up some initial templates\n @dev Creates some generalized templates for different question types used in the DApp.\n param _token The token used for everything except arbitration",
      "id": 587,
      "implemented": true,
      "isConstructor": true,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 564,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "6092:2:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 565,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "6107:0:2"
      },
      "scope": 2322,
      "src": "6081:564:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 607,
       "nodeType": "Block",
       "src": "6990:108:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "id": 599,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 594,
            "name": "arbitrator_question_fees",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 307,
            "src": "7000:24:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
             "typeString": "mapping(address => uint256)"
            }
           },
           "id": 597,
           "indexExpression": {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 595,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2462,
             "src": "7025:3:2",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 596,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "7025:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "nodeType": "IndexAccess",
           "src": "7000:36:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 598,
           "name": "fee",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 589,
           "src": "7039:3:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "7000:42:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 600,
         "nodeType": "ExpressionStatement",
         "src": "7000:42:2"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 602,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2462,
             "src": "7075:3:2",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 603,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "7075:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 604,
            "name": "fee",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 589,
            "src": "7087:3:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           ],
           "id": 601,
           "name": "LogSetQuestionFee",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 155,
           "src": "7057:17:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
            "typeString": "function (address,uint256)"
           }
          },
          "id": 605,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "7057:34:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 606,
         "nodeType": "EmitStatement",
         "src": "7052:39:2"
        }
       ]
      },
      "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": 608,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [],
        "id": 592,
        "modifierName": {
         "argumentTypes": null,
         "id": 591,
         "name": "stateAny",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 328,
         "src": "6965:8:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$__$",
          "typeString": "modifier ()"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "6965:10:2"
       }
      ],
      "name": "setQuestionFee",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 590,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 589,
         "name": "fee",
         "nodeType": "VariableDeclaration",
         "scope": 608,
         "src": "6943:11:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 588,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "6943:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "6942:13:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 593,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "6990:0:2"
      },
      "scope": 2322,
      "src": "6919:179:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 655,
       "nodeType": "Block",
       "src": "7567:259:2",
       "statements": [
        {
         "assignments": [
          618
         ],
         "declarations": [
          {
           "constant": false,
           "id": 618,
           "name": "id",
           "nodeType": "VariableDeclaration",
           "scope": 656,
           "src": "7577:10:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 617,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "7577:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 620,
         "initialValue": {
          "argumentTypes": null,
          "id": 619,
          "name": "nextTemplateID",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 283,
          "src": "7590:14:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "7577:27:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 626,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 621,
            "name": "templates",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 287,
            "src": "7614:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
             "typeString": "mapping(uint256 => uint256)"
            }
           },
           "id": 623,
           "indexExpression": {
            "argumentTypes": null,
            "id": 622,
            "name": "id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 618,
            "src": "7624:2:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "nodeType": "IndexAccess",
           "src": "7614:13:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "id": 624,
            "name": "block",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2452,
            "src": "7630:5:2",
            "typeDescriptions": {
             "typeIdentifier": "t_magic_block",
             "typeString": "block"
            }
           },
           "id": 625,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "number",
           "nodeType": "MemberAccess",
           "referencedDeclaration": null,
           "src": "7630:12:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "7614:28:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 627,
         "nodeType": "ExpressionStatement",
         "src": "7614:28:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 637,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 628,
            "name": "template_hashes",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 291,
            "src": "7652:15:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
             "typeString": "mapping(uint256 => bytes32)"
            }
           },
           "id": 630,
           "indexExpression": {
            "argumentTypes": null,
            "id": 629,
            "name": "id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 618,
            "src": "7668:2:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "nodeType": "IndexAccess",
           "src": "7652:19:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 634,
               "name": "content",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 610,
               "src": "7701:7:2",
               "typeDescriptions": {
                "typeIdentifier": "t_string_memory_ptr",
                "typeString": "string memory"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_string_memory_ptr",
                "typeString": "string memory"
               }
              ],
              "expression": {
               "argumentTypes": null,
               "id": 632,
               "name": "abi",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2449,
               "src": "7684:3:2",
               "typeDescriptions": {
                "typeIdentifier": "t_magic_abi",
                "typeString": "abi"
               }
              },
              "id": 633,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "memberName": "encodePacked",
              "nodeType": "MemberAccess",
              "referencedDeclaration": null,
              "src": "7684:16:2",
              "typeDescriptions": {
               "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
               "typeString": "function () pure returns (bytes memory)"
              }
             },
             "id": 635,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "7684:25:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes_memory_ptr",
              "typeString": "bytes memory"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_bytes_memory_ptr",
              "typeString": "bytes memory"
             }
            ],
            "id": 631,
            "name": "keccak256",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2456,
            "src": "7674:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
             "typeString": "function () pure returns (bytes32)"
            }
           },
           "id": 636,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "7674:36:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "7652:58:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "id": 638,
         "nodeType": "ExpressionStatement",
         "src": "7652:58:2"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 640,
            "name": "id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 618,
            "src": "7740:2:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 641,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2462,
             "src": "7744:3:2",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 642,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "7744:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 643,
            "name": "content",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 610,
            "src": "7756:7:2",
            "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": 639,
           "name": "LogNewTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 163,
           "src": "7725:14:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (uint256,address,string memory)"
           }
          },
          "id": 644,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "7725:39:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 645,
         "nodeType": "EmitStatement",
         "src": "7720:44:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 651,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "id": 646,
           "name": "nextTemplateID",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 283,
           "src": "7774:14:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "hexValue": "31",
             "id": 649,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "7798:1:2",
             "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": 647,
             "name": "id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 618,
             "src": "7791:2:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 648,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "add",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 2419,
            "src": "7791:6:2",
            "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": 650,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "7791:9:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "7774:26:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 652,
         "nodeType": "ExpressionStatement",
         "src": "7774:26:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 653,
          "name": "id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 618,
          "src": "7817:2:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "functionReturnParameters": 616,
         "id": 654,
         "nodeType": "Return",
         "src": "7810:9:2"
        }
       ]
      },
      "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": 656,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [],
        "id": 613,
        "modifierName": {
         "argumentTypes": null,
         "id": 612,
         "name": "stateAny",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 328,
         "src": "7527:8:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$__$",
          "typeString": "modifier ()"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "7527:10:2"
       }
      ],
      "name": "createTemplate",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 611,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 610,
         "name": "content",
         "nodeType": "VariableDeclaration",
         "scope": 656,
         "src": "7502:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_string_memory_ptr",
          "typeString": "string"
         },
         "typeName": {
          "id": 609,
          "name": "string",
          "nodeType": "ElementaryTypeName",
          "src": "7502:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_string_storage_ptr",
           "typeString": "string"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "7501:16:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 616,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 615,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 656,
         "src": "7558:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 614,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "7558:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "7557:9:2"
      },
      "scope": 2322,
      "src": "7478:348:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 688,
       "nodeType": "Block",
       "src": "8963:153:2",
       "statements": [
        {
         "assignments": [
          674
         ],
         "declarations": [
          {
           "constant": false,
           "id": 674,
           "name": "template_id",
           "nodeType": "VariableDeclaration",
           "scope": 689,
           "src": "8973:19:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 673,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "8973:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 678,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 676,
            "name": "content",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 658,
            "src": "9010:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_string_memory_ptr",
             "typeString": "string memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_string_memory_ptr",
             "typeString": "string memory"
            }
           ],
           "id": 675,
           "name": "createTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 656,
           "src": "8995:14:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
            "typeString": "function (string memory) returns (uint256)"
           }
          },
          "id": 677,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "8995:23:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "8973:45:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 680,
            "name": "template_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 674,
            "src": "9047:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 681,
            "name": "question",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 660,
            "src": "9060:8:2",
            "typeDescriptions": {
             "typeIdentifier": "t_string_memory_ptr",
             "typeString": "string memory"
            }
           },
           {
            "argumentTypes": null,
            "id": 682,
            "name": "arbitrator",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 662,
            "src": "9070:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 683,
            "name": "timeout",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 664,
            "src": "9082:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 684,
            "name": "opening_ts",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 666,
            "src": "9091:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 685,
            "name": "nonce",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 668,
            "src": "9103:5:2",
            "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": 679,
           "name": "askQuestion",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 766,
           "src": "9035:11:2",
           "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": 686,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "9035:74:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 672,
         "id": 687,
         "nodeType": "Return",
         "src": "9028:81:2"
        }
       ]
      },
      "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": 689,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "createTemplateAndAskQuestion",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 669,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 658,
         "name": "content",
         "nodeType": "VariableDeclaration",
         "scope": 689,
         "src": "8747:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_string_memory_ptr",
          "typeString": "string"
         },
         "typeName": {
          "id": 657,
          "name": "string",
          "nodeType": "ElementaryTypeName",
          "src": "8747:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_string_storage_ptr",
           "typeString": "string"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 660,
         "name": "question",
         "nodeType": "VariableDeclaration",
         "scope": 689,
         "src": "8772:15:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_string_memory_ptr",
          "typeString": "string"
         },
         "typeName": {
          "id": 659,
          "name": "string",
          "nodeType": "ElementaryTypeName",
          "src": "8772:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_string_storage_ptr",
           "typeString": "string"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 662,
         "name": "arbitrator",
         "nodeType": "VariableDeclaration",
         "scope": 689,
         "src": "8789:18:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 661,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "8789:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 664,
         "name": "timeout",
         "nodeType": "VariableDeclaration",
         "scope": 689,
         "src": "8809:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 663,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "8809:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 666,
         "name": "opening_ts",
         "nodeType": "VariableDeclaration",
         "scope": 689,
         "src": "8825:17:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 665,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "8825:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 668,
         "name": "nonce",
         "nodeType": "VariableDeclaration",
         "scope": 689,
         "src": "8844:13:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 667,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "8844:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "8737:127:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 672,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 671,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 689,
         "src": "8954:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 670,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "8954:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "8953:9:2"
      },
      "scope": 2322,
      "src": "8700:416:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 765,
       "nodeType": "Block",
       "src": "10468:536:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 711,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 707,
              "name": "templates",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 287,
              "src": "10487:9:2",
              "typeDescriptions": {
               "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
               "typeString": "mapping(uint256 => uint256)"
              }
             },
             "id": 709,
             "indexExpression": {
              "argumentTypes": null,
              "id": 708,
              "name": "template_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 691,
              "src": "10497:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "10487:22:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 710,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "10512:1:2",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "10487:26:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "74656d706c617465206d757374206578697374",
            "id": 712,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "10515:21:2",
            "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": 706,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "10479:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 713,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "10479:58:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 714,
         "nodeType": "ExpressionStatement",
         "src": "10479:58:2"
        },
        {
         "assignments": [
          716
         ],
         "declarations": [
          {
           "constant": false,
           "id": 716,
           "name": "content_hash",
           "nodeType": "VariableDeclaration",
           "scope": 766,
           "src": "10548:20:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 715,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "10548:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 725,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 720,
              "name": "template_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 691,
              "src": "10598:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             {
              "argumentTypes": null,
              "id": 721,
              "name": "opening_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 699,
              "src": "10611:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             {
              "argumentTypes": null,
              "id": 722,
              "name": "question",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 693,
              "src": "10623:8:2",
              "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": 718,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2449,
              "src": "10581:3:2",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 719,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "10581:16:2",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 723,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "10581:51:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 717,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2456,
           "src": "10571:9:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 724,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "10571:62:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "10548:85:2"
        },
        {
         "assignments": [
          727
         ],
         "declarations": [
          {
           "constant": false,
           "id": 727,
           "name": "question_id",
           "nodeType": "VariableDeclaration",
           "scope": 766,
           "src": "10643:19:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 726,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "10643:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 739,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 731,
              "name": "content_hash",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 716,
              "src": "10692:12:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 732,
              "name": "arbitrator",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 695,
              "src": "10706:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             {
              "argumentTypes": null,
              "id": 733,
              "name": "timeout",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 697,
              "src": "10718:7:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "id": 734,
               "name": "msg",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2462,
               "src": "10727:3:2",
               "typeDescriptions": {
                "typeIdentifier": "t_magic_message",
                "typeString": "msg"
               }
              },
              "id": 735,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "memberName": "sender",
              "nodeType": "MemberAccess",
              "referencedDeclaration": null,
              "src": "10727:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             {
              "argumentTypes": null,
              "id": 736,
              "name": "nonce",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 701,
              "src": "10739:5:2",
              "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": 729,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2449,
              "src": "10675:3:2",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 730,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "10675:16:2",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 737,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "10675:70:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 728,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2456,
           "src": "10665:9:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 738,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "10665:81:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "10643:103:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 741,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 727,
            "src": "10770:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 742,
            "name": "content_hash",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 716,
            "src": "10783:12:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 743,
            "name": "arbitrator",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 695,
            "src": "10797:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 744,
            "name": "timeout",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 697,
            "src": "10809:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 745,
            "name": "opening_ts",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 699,
            "src": "10818:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "30",
            "id": 746,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "number",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "10830:1:2",
            "subdenomination": null,
            "typeDescriptions": {
             "typeIdentifier": "t_rational_0_by_1",
             "typeString": "int_const 0"
            },
            "value": "0"
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            {
             "typeIdentifier": "t_rational_0_by_1",
             "typeString": "int_const 0"
            }
           ],
           "id": 740,
           "name": "_askQuestion",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1034,
           "src": "10757:12:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$returns$__$",
            "typeString": "function (bytes32,bytes32,address,uint32,uint32,uint256)"
           }
          },
          "id": 747,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "10757:75:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 748,
         "nodeType": "ExpressionStatement",
         "src": "10757:75:2"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 750,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 727,
            "src": "10862:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 751,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2462,
             "src": "10875:3:2",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 752,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "10875:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 753,
            "name": "template_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 691,
            "src": "10887:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 754,
            "name": "question",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 693,
            "src": "10900:8:2",
            "typeDescriptions": {
             "typeIdentifier": "t_string_memory_ptr",
             "typeString": "string memory"
            }
           },
           {
            "argumentTypes": null,
            "id": 755,
            "name": "content_hash",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 716,
            "src": "10910:12:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 756,
            "name": "arbitrator",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 695,
            "src": "10924:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 757,
            "name": "timeout",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 697,
            "src": "10936:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 758,
            "name": "opening_ts",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 699,
            "src": "10945:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 759,
            "name": "nonce",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 701,
            "src": "10957:5:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 760,
            "name": "now",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2464,
            "src": "10964:3:2",
            "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": 749,
           "name": "LogNewQuestion",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 185,
           "src": "10847:14:2",
           "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": 761,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "10847:121:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 762,
         "nodeType": "EmitStatement",
         "src": "10842:126:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 763,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 727,
          "src": "10986:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 705,
         "id": 764,
         "nodeType": "Return",
         "src": "10979:18:2"
        }
       ]
      },
      "documentation": "@notice Ask a new question without a bounty and return the ID\n @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n @dev Calling without the token param will only work if there is no arbitrator-set question fee.\n @dev This has the same function signature as askQuestion() in the non-ERC20 version, which is optionally payable.\n @param template_id The ID number of the template the question will use\n @param question A string containing the parameters that will be passed into the template to make the question\n @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n @param opening_ts If set, the earliest time it should be possible to answer the question.\n @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n @return The ID of the newly-created question, created deterministically.",
      "id": 766,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "askQuestion",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 702,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 691,
         "name": "template_id",
         "nodeType": "VariableDeclaration",
         "scope": 766,
         "src": "10262:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 690,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "10262:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 693,
         "name": "question",
         "nodeType": "VariableDeclaration",
         "scope": 766,
         "src": "10283:15:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_string_memory_ptr",
          "typeString": "string"
         },
         "typeName": {
          "id": 692,
          "name": "string",
          "nodeType": "ElementaryTypeName",
          "src": "10283:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_string_storage_ptr",
           "typeString": "string"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 695,
         "name": "arbitrator",
         "nodeType": "VariableDeclaration",
         "scope": 766,
         "src": "10300:18:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 694,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "10300:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 697,
         "name": "timeout",
         "nodeType": "VariableDeclaration",
         "scope": 766,
         "src": "10320:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 696,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "10320:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 699,
         "name": "opening_ts",
         "nodeType": "VariableDeclaration",
         "scope": 766,
         "src": "10336:17:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 698,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "10336:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 701,
         "name": "nonce",
         "nodeType": "VariableDeclaration",
         "scope": 766,
         "src": "10355:13:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 700,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "10355:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "10261:108:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 705,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 704,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 766,
         "src": "10459:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 703,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "10459:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "10458:9:2"
      },
      "scope": 2322,
      "src": "10241:763:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 848,
       "nodeType": "Block",
       "src": "12224:581:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 786,
            "name": "tokens",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 780,
            "src": "12257:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           ],
           "id": 785,
           "name": "_deductTokensOrRevert",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 918,
           "src": "12235:21:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
            "typeString": "function (uint256)"
           }
          },
          "id": 787,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "12235:29:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 788,
         "nodeType": "ExpressionStatement",
         "src": "12235:29:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 794,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 790,
              "name": "templates",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 287,
              "src": "12283:9:2",
              "typeDescriptions": {
               "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
               "typeString": "mapping(uint256 => uint256)"
              }
             },
             "id": 792,
             "indexExpression": {
              "argumentTypes": null,
              "id": 791,
              "name": "template_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 768,
              "src": "12293:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "12283:22:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 793,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "12308:1:2",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "12283:26:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "74656d706c617465206d757374206578697374",
            "id": 795,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "12311:21:2",
            "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": 789,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "12275:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 796,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "12275:58:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 797,
         "nodeType": "ExpressionStatement",
         "src": "12275:58:2"
        },
        {
         "assignments": [
          799
         ],
         "declarations": [
          {
           "constant": false,
           "id": 799,
           "name": "content_hash",
           "nodeType": "VariableDeclaration",
           "scope": 849,
           "src": "12344:20:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 798,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "12344:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 808,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 803,
              "name": "template_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 768,
              "src": "12394:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             {
              "argumentTypes": null,
              "id": 804,
              "name": "opening_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 776,
              "src": "12407:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             {
              "argumentTypes": null,
              "id": 805,
              "name": "question",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 770,
              "src": "12419:8:2",
              "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": 801,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2449,
              "src": "12377:3:2",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 802,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "12377:16:2",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 806,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "12377:51:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 800,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2456,
           "src": "12367:9:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 807,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "12367:62:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "12344:85:2"
        },
        {
         "assignments": [
          810
         ],
         "declarations": [
          {
           "constant": false,
           "id": 810,
           "name": "question_id",
           "nodeType": "VariableDeclaration",
           "scope": 849,
           "src": "12439:19:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 809,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "12439:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 822,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 814,
              "name": "content_hash",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 799,
              "src": "12488:12:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 815,
              "name": "arbitrator",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 772,
              "src": "12502:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             {
              "argumentTypes": null,
              "id": 816,
              "name": "timeout",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 774,
              "src": "12514:7:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "id": 817,
               "name": "msg",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2462,
               "src": "12523:3:2",
               "typeDescriptions": {
                "typeIdentifier": "t_magic_message",
                "typeString": "msg"
               }
              },
              "id": 818,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "memberName": "sender",
              "nodeType": "MemberAccess",
              "referencedDeclaration": null,
              "src": "12523:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             {
              "argumentTypes": null,
              "id": 819,
              "name": "nonce",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 778,
              "src": "12535:5:2",
              "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": 812,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2449,
              "src": "12471:3:2",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 813,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "12471:16:2",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 820,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "12471:70:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 811,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2456,
           "src": "12461:9:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 821,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "12461:81:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "12439:103:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 824,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 810,
            "src": "12566:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 825,
            "name": "content_hash",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 799,
            "src": "12579:12:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 826,
            "name": "arbitrator",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 772,
            "src": "12593:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 827,
            "name": "timeout",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 774,
            "src": "12605:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 828,
            "name": "opening_ts",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 776,
            "src": "12614:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 829,
            "name": "tokens",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 780,
            "src": "12626:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           ],
           "id": 823,
           "name": "_askQuestion",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1034,
           "src": "12553:12:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$returns$__$",
            "typeString": "function (bytes32,bytes32,address,uint32,uint32,uint256)"
           }
          },
          "id": 830,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "12553:80:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 831,
         "nodeType": "ExpressionStatement",
         "src": "12553:80:2"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 833,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 810,
            "src": "12663:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 834,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2462,
             "src": "12676:3:2",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 835,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "12676:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 836,
            "name": "template_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 768,
            "src": "12688:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 837,
            "name": "question",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 770,
            "src": "12701:8:2",
            "typeDescriptions": {
             "typeIdentifier": "t_string_memory_ptr",
             "typeString": "string memory"
            }
           },
           {
            "argumentTypes": null,
            "id": 838,
            "name": "content_hash",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 799,
            "src": "12711:12:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 839,
            "name": "arbitrator",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 772,
            "src": "12725:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 840,
            "name": "timeout",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 774,
            "src": "12737:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 841,
            "name": "opening_ts",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 776,
            "src": "12746:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 842,
            "name": "nonce",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 778,
            "src": "12758:5:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 843,
            "name": "now",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2464,
            "src": "12765:3:2",
            "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": 832,
           "name": "LogNewQuestion",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 185,
           "src": "12648:14:2",
           "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": 844,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "12648:121:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 845,
         "nodeType": "EmitStatement",
         "src": "12643:126:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 846,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 810,
          "src": "12787:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 784,
         "id": 847,
         "nodeType": "Return",
         "src": "12780:18:2"
        }
       ]
      },
      "documentation": "@notice Ask a new question with a bounty and return the ID\n @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n @param template_id The ID number of the template the question will use\n @param question A string containing the parameters that will be passed into the template to make the question\n @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n @param opening_ts If set, the earliest time it should be possible to answer the question.\n @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n @param tokens The combined initial question bounty and question fee\n @return The ID of the newly-created question, created deterministically.",
      "id": 849,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "askQuestionERC20",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 781,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 768,
         "name": "template_id",
         "nodeType": "VariableDeclaration",
         "scope": 849,
         "src": "12002:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 767,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "12002:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 770,
         "name": "question",
         "nodeType": "VariableDeclaration",
         "scope": 849,
         "src": "12023:15:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_string_memory_ptr",
          "typeString": "string"
         },
         "typeName": {
          "id": 769,
          "name": "string",
          "nodeType": "ElementaryTypeName",
          "src": "12023:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_string_storage_ptr",
           "typeString": "string"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 772,
         "name": "arbitrator",
         "nodeType": "VariableDeclaration",
         "scope": 849,
         "src": "12040:18:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 771,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "12040:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 774,
         "name": "timeout",
         "nodeType": "VariableDeclaration",
         "scope": 849,
         "src": "12060:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 773,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "12060:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 776,
         "name": "opening_ts",
         "nodeType": "VariableDeclaration",
         "scope": 849,
         "src": "12076:17:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 775,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "12076:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 778,
         "name": "nonce",
         "nodeType": "VariableDeclaration",
         "scope": 849,
         "src": "12095:13:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 777,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "12095:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 780,
         "name": "tokens",
         "nodeType": "VariableDeclaration",
         "scope": 849,
         "src": "12110:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 779,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "12110:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "12001:124:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 784,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 783,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 849,
         "src": "12215:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 782,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "12215:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "12214:9:2"
      },
      "scope": 2322,
      "src": "11976:829:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 917,
       "nodeType": "Block",
       "src": "12872:646:2",
       "statements": [
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          },
          "id": 856,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 854,
           "name": "tokens",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 851,
           "src": "12887:6:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "==",
          "rightExpression": {
           "argumentTypes": null,
           "hexValue": "30",
           "id": 855,
           "isConstant": false,
           "isLValue": false,
           "isPure": true,
           "kind": "number",
           "lValueRequested": false,
           "nodeType": "Literal",
           "src": "12897:1:2",
           "subdenomination": null,
           "typeDescriptions": {
            "typeIdentifier": "t_rational_0_by_1",
            "typeString": "int_const 0"
           },
           "value": "0"
          },
          "src": "12887:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 859,
         "nodeType": "IfStatement",
         "src": "12883:48:2",
         "trueBody": {
          "id": 858,
          "nodeType": "Block",
          "src": "12900:31:2",
          "statements": [
           {
            "expression": null,
            "functionReturnParameters": 853,
            "id": 857,
            "nodeType": "Return",
            "src": "12914:7:2"
           }
          ]
         }
        },
        {
         "assignments": [
          861
         ],
         "declarations": [
          {
           "constant": false,
           "id": 861,
           "name": "bal",
           "nodeType": "VariableDeclaration",
           "scope": 918,
           "src": "12941:11:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 860,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "12941:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 866,
         "initialValue": {
          "argumentTypes": null,
          "baseExpression": {
           "argumentTypes": null,
           "id": 862,
           "name": "balanceOf",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 8,
           "src": "12955:9:2",
           "typeDescriptions": {
            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
            "typeString": "mapping(address => uint256)"
           }
          },
          "id": 865,
          "indexExpression": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "id": 863,
            "name": "msg",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2462,
            "src": "12965:3:2",
            "typeDescriptions": {
             "typeIdentifier": "t_magic_message",
             "typeString": "msg"
            }
           },
           "id": 864,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "sender",
           "nodeType": "MemberAccess",
           "referencedDeclaration": null,
           "src": "12965:10:2",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "nodeType": "IndexAccess",
          "src": "12955:21:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "12941:35:2"
        },
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          },
          "id": 869,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 867,
           "name": "bal",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 861,
           "src": "13060:3:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": ">",
          "rightExpression": {
           "argumentTypes": null,
           "hexValue": "30",
           "id": 868,
           "isConstant": false,
           "isLValue": false,
           "isPure": true,
           "kind": "number",
           "lValueRequested": false,
           "nodeType": "Literal",
           "src": "13066:1:2",
           "subdenomination": null,
           "typeDescriptions": {
            "typeIdentifier": "t_rational_0_by_1",
            "typeString": "int_const 0"
           },
           "value": "0"
          },
          "src": "13060:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 902,
         "nodeType": "IfStatement",
         "src": "13056:258:2",
         "trueBody": {
          "id": 901,
          "nodeType": "Block",
          "src": "13069:245:2",
          "statements": [
           {
            "condition": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             },
             "id": 872,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 870,
              "name": "bal",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 861,
              "src": "13087:3:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": ">=",
             "rightExpression": {
              "argumentTypes": null,
              "id": 871,
              "name": "tokens",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 851,
              "src": "13094:6:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "13087:13:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "falseBody": {
             "id": 899,
             "nodeType": "Block",
             "src": "13204:100:2",
             "statements": [
              {
               "expression": {
                "argumentTypes": null,
                "id": 890,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "id": 885,
                 "name": "tokens",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 851,
                 "src": "13222:6:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "arguments": [
                  {
                   "argumentTypes": null,
                   "id": 888,
                   "name": "bal",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 861,
                   "src": "13242:3:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  }
                 ],
                 "expression": {
                  "argumentTypes": [
                   {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  ],
                  "expression": {
                   "argumentTypes": null,
                   "id": 886,
                   "name": "tokens",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 851,
                   "src": "13231:6:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  },
                  "id": 887,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": false,
                  "lValueRequested": false,
                  "memberName": "sub",
                  "nodeType": "MemberAccess",
                  "referencedDeclaration": 2395,
                  "src": "13231:10:2",
                  "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": 889,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": false,
                 "kind": "functionCall",
                 "lValueRequested": false,
                 "names": [],
                 "nodeType": "FunctionCall",
                 "src": "13231:15:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "src": "13222:24:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 891,
               "nodeType": "ExpressionStatement",
               "src": "13222:24:2"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 897,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 892,
                  "name": "balanceOf",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 8,
                  "src": "13264:9:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                   "typeString": "mapping(address => uint256)"
                  }
                 },
                 "id": 895,
                 "indexExpression": {
                  "argumentTypes": null,
                  "expression": {
                   "argumentTypes": null,
                   "id": 893,
                   "name": "msg",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 2462,
                   "src": "13274:3:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_magic_message",
                    "typeString": "msg"
                   }
                  },
                  "id": 894,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": false,
                  "lValueRequested": false,
                  "memberName": "sender",
                  "nodeType": "MemberAccess",
                  "referencedDeclaration": null,
                  "src": "13274:10:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_address",
                   "typeString": "address"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "13264:21:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "hexValue": "30",
                 "id": 896,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": true,
                 "kind": "number",
                 "lValueRequested": false,
                 "nodeType": "Literal",
                 "src": "13288:1:2",
                 "subdenomination": null,
                 "typeDescriptions": {
                  "typeIdentifier": "t_rational_0_by_1",
                  "typeString": "int_const 0"
                 },
                 "value": "0"
                },
                "src": "13264:25:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 898,
               "nodeType": "ExpressionStatement",
               "src": "13264:25:2"
              }
             ]
            },
            "id": 900,
            "nodeType": "IfStatement",
            "src": "13083:221:2",
            "trueBody": {
             "id": 884,
             "nodeType": "Block",
             "src": "13102:96:2",
             "statements": [
              {
               "expression": {
                "argumentTypes": null,
                "id": 881,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 873,
                  "name": "balanceOf",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 8,
                  "src": "13120:9:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                   "typeString": "mapping(address => uint256)"
                  }
                 },
                 "id": 876,
                 "indexExpression": {
                  "argumentTypes": null,
                  "expression": {
                   "argumentTypes": null,
                   "id": 874,
                   "name": "msg",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 2462,
                   "src": "13130:3:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_magic_message",
                    "typeString": "msg"
                   }
                  },
                  "id": 875,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": false,
                  "lValueRequested": false,
                  "memberName": "sender",
                  "nodeType": "MemberAccess",
                  "referencedDeclaration": null,
                  "src": "13130:10:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_address",
                   "typeString": "address"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "13120:21:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "arguments": [
                  {
                   "argumentTypes": null,
                   "id": 879,
                   "name": "tokens",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 851,
                   "src": "13152:6:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  }
                 ],
                 "expression": {
                  "argumentTypes": [
                   {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  ],
                  "expression": {
                   "argumentTypes": null,
                   "id": 877,
                   "name": "bal",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 861,
                   "src": "13144:3:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  },
                  "id": 878,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": false,
                  "lValueRequested": false,
                  "memberName": "sub",
                  "nodeType": "MemberAccess",
                  "referencedDeclaration": 2395,
                  "src": "13144:7:2",
                  "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": 880,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": false,
                 "kind": "functionCall",
                 "lValueRequested": false,
                 "names": [],
                 "nodeType": "FunctionCall",
                 "src": "13144:15:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "src": "13120:39:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 882,
               "nodeType": "ExpressionStatement",
               "src": "13120:39:2"
              },
              {
               "expression": null,
               "functionReturnParameters": 853,
               "id": 883,
               "nodeType": "Return",
               "src": "13177:7:2"
              }
             ]
            }
           }
          ]
         }
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "id": 906,
               "name": "msg",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2462,
               "src": "13398:3:2",
               "typeDescriptions": {
                "typeIdentifier": "t_magic_message",
                "typeString": "msg"
               }
              },
              "id": 907,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "memberName": "sender",
              "nodeType": "MemberAccess",
              "referencedDeclaration": null,
              "src": "13398:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 909,
                "name": "this",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 2483,
                "src": "13418:4:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_contract$_RealitioERC20_$2322",
                 "typeString": "contract RealitioERC20"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_contract$_RealitioERC20_$2322",
                 "typeString": "contract RealitioERC20"
                }
               ],
               "id": 908,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "lValueRequested": false,
               "nodeType": "ElementaryTypeNameExpression",
               "src": "13410:7:2",
               "typeDescriptions": {
                "typeIdentifier": "t_type$_t_address_$",
                "typeString": "type(address)"
               },
               "typeName": "address"
              },
              "id": 910,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "13410:13:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             {
              "argumentTypes": null,
              "id": 911,
              "name": "tokens",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 851,
              "src": "13425:6:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             }
            ],
            "expression": {
             "argumentTypes": [
              {
               "typeIdentifier": "t_address",
               "typeString": "address"
              },
              {
               "typeIdentifier": "t_address",
               "typeString": "address"
              },
              {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             ],
             "expression": {
              "argumentTypes": null,
              "id": 904,
              "name": "token",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 4,
              "src": "13379:5:2",
              "typeDescriptions": {
               "typeIdentifier": "t_contract$_IERC20_$117",
               "typeString": "contract IERC20"
              }
             },
             "id": 905,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "transferFrom",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 100,
             "src": "13379:18:2",
             "typeDescriptions": {
              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
              "typeString": "function (address,address,uint256) external returns (bool)"
             }
            },
            "id": 912,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "13379:53:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "5472616e73666572206f6620746f6b656e73206661696c65642c20696e73756666696369656e7420617070726f7665642062616c616e63653f",
            "id": 913,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "13434:59:2",
            "subdenomination": null,
            "typeDescriptions": {
             "typeIdentifier": "t_stringliteral_ed8b1ba93cbf7311a4be79adea31c0164535d3a210507ebc1c91c9f24f3a9398",
             "typeString": "literal_string \"Transfer of tokens failed, insufficient approved balance?\""
            },
            "value": "Transfer of tokens failed, insufficient approved balance?"
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            },
            {
             "typeIdentifier": "t_stringliteral_ed8b1ba93cbf7311a4be79adea31c0164535d3a210507ebc1c91c9f24f3a9398",
             "typeString": "literal_string \"Transfer of tokens failed, insufficient approved balance?\""
            }
           ],
           "id": 903,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "13371:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 914,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "13371:123:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 915,
         "nodeType": "ExpressionStatement",
         "src": "13371:123:2"
        },
        {
         "expression": null,
         "functionReturnParameters": 853,
         "id": 916,
         "nodeType": "Return",
         "src": "13504:7:2"
        }
       ]
      },
      "documentation": null,
      "id": 918,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "_deductTokensOrRevert",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 852,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 851,
         "name": "tokens",
         "nodeType": "VariableDeclaration",
         "scope": 918,
         "src": "12842:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 850,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "12842:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "12841:16:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 853,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "12872:0:2"
      },
      "scope": 2322,
      "src": "12811:707:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 1033,
       "nodeType": "Block",
       "src": "13711:1313:2",
       "statements": [
        {
         "assignments": [
          937
         ],
         "declarations": [
          {
           "constant": false,
           "id": 937,
           "name": "bounty",
           "nodeType": "VariableDeclaration",
           "scope": 1034,
           "src": "13722:14:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 936,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "13722:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 939,
         "initialValue": {
          "argumentTypes": null,
          "id": 938,
          "name": "tokens",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 930,
          "src": "13739:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "13722:23:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 943,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 941,
             "name": "timeout",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 926,
             "src": "13846:7:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 942,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "13856:1:2",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "13846:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "74696d656f7574206d75737420626520706f736974697665",
            "id": 944,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "13859:26:2",
            "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": 940,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "13838:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 945,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "13838:48:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 946,
         "nodeType": "ExpressionStatement",
         "src": "13838:48:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 950,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 948,
             "name": "timeout",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 926,
             "src": "13905:7:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "<",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "333635",
             "id": 949,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "13915:8:2",
             "subdenomination": "days",
             "typeDescriptions": {
              "typeIdentifier": "t_rational_31536000_by_1",
              "typeString": "int_const 31536000"
             },
             "value": "365"
            },
            "src": "13905:18:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "74696d656f7574206d757374206265206c657373207468616e203336352064617973",
            "id": 951,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "13925:36:2",
            "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": 947,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "13897:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 952,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "13897:65:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 953,
         "nodeType": "ExpressionStatement",
         "src": "13897:65:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            "id": 957,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 955,
             "name": "arbitrator",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 924,
             "src": "13981:10:2",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "!=",
            "rightExpression": {
             "argumentTypes": null,
             "id": 956,
             "name": "NULL_ADDRESS",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 135,
             "src": "13995:12:2",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "src": "13981:26:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "61726269747261746f72206d75737420626520736574",
            "id": 958,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "14009:24:2",
            "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": 954,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "13973:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 959,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "13973:61:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 960,
         "nodeType": "ExpressionStatement",
         "src": "13973:61:2"
        },
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          },
          "id": 964,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "id": 961,
            "name": "msg",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2462,
            "src": "14426:3:2",
            "typeDescriptions": {
             "typeIdentifier": "t_magic_message",
             "typeString": "msg"
            }
           },
           "id": 962,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "sender",
           "nodeType": "MemberAccess",
           "referencedDeclaration": null,
           "src": "14426:10:2",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "!=",
          "rightExpression": {
           "argumentTypes": null,
           "id": 963,
           "name": "arbitrator",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 924,
           "src": "14440:10:2",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "src": "14426:24:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 997,
         "nodeType": "IfStatement",
         "src": "14422:324:2",
         "trueBody": {
          "id": 996,
          "nodeType": "Block",
          "src": "14452:294:2",
          "statements": [
           {
            "assignments": [
             966
            ],
            "declarations": [
             {
              "constant": false,
              "id": 966,
              "name": "question_fee",
              "nodeType": "VariableDeclaration",
              "scope": 1034,
              "src": "14466:20:2",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              },
              "typeName": {
               "id": 965,
               "name": "uint256",
               "nodeType": "ElementaryTypeName",
               "src": "14466:7:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 970,
            "initialValue": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 967,
              "name": "arbitrator_question_fees",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 307,
              "src": "14489:24:2",
              "typeDescriptions": {
               "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
               "typeString": "mapping(address => uint256)"
              }
             },
             "id": 969,
             "indexExpression": {
              "argumentTypes": null,
              "id": 968,
              "name": "arbitrator",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 924,
              "src": "14514:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "14489:36:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "14466:59:2"
           },
           {
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "commonType": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               },
               "id": 974,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "lValueRequested": false,
               "leftExpression": {
                "argumentTypes": null,
                "id": 972,
                "name": "bounty",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 937,
                "src": "14547:6:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "nodeType": "BinaryOperation",
               "operator": ">=",
               "rightExpression": {
                "argumentTypes": null,
                "id": 973,
                "name": "question_fee",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 966,
                "src": "14557:12:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "src": "14547:22:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
               }
              },
              {
               "argumentTypes": null,
               "hexValue": "4554482070726f7669646564206d75737420636f766572207175657374696f6e20666565",
               "id": 975,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "kind": "string",
               "lValueRequested": false,
               "nodeType": "Literal",
               "src": "14571:38:2",
               "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": 971,
              "name": "require",
              "nodeType": "Identifier",
              "overloadedDeclarations": [
               2465,
               2466
              ],
              "referencedDeclaration": 2466,
              "src": "14539:7:2",
              "typeDescriptions": {
               "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
               "typeString": "function (bool,string memory) pure"
              }
             },
             "id": 976,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "14539:71:2",
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 977,
            "nodeType": "ExpressionStatement",
            "src": "14539:71:2"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 983,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "id": 978,
              "name": "bounty",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 937,
              "src": "14625:6:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 981,
                "name": "question_fee",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 966,
                "src": "14645:12:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "expression": {
                "argumentTypes": null,
                "id": 979,
                "name": "bounty",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 937,
                "src": "14634:6:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 980,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "lValueRequested": false,
               "memberName": "sub",
               "nodeType": "MemberAccess",
               "referencedDeclaration": 2395,
               "src": "14634:10:2",
               "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": 982,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "14634:24:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "14625:33:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 984,
            "nodeType": "ExpressionStatement",
            "src": "14625:33:2"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 994,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 985,
               "name": "balanceOf",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 8,
               "src": "14672:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
               }
              },
              "id": 987,
              "indexExpression": {
               "argumentTypes": null,
               "id": 986,
               "name": "arbitrator",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 924,
               "src": "14682:10:2",
               "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "nodeType": "IndexAccess",
              "src": "14672:21:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 992,
                "name": "question_fee",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 966,
                "src": "14722:12:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "expression": {
                "argumentTypes": null,
                "baseExpression": {
                 "argumentTypes": null,
                 "id": 988,
                 "name": "balanceOf",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 8,
                 "src": "14696:9:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                  "typeString": "mapping(address => uint256)"
                 }
                },
                "id": 990,
                "indexExpression": {
                 "argumentTypes": null,
                 "id": 989,
                 "name": "arbitrator",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 924,
                 "src": "14706:10:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                 }
                },
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "IndexAccess",
                "src": "14696:21:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 991,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "lValueRequested": false,
               "memberName": "add",
               "nodeType": "MemberAccess",
               "referencedDeclaration": 2419,
               "src": "14696:25:2",
               "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": 993,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "14696:39:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "14672:63:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 995,
            "nodeType": "ExpressionStatement",
            "src": "14672:63:2"
           }
          ]
         }
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1003,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 998,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "14756:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1000,
            "indexExpression": {
             "argumentTypes": null,
             "id": 999,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 920,
             "src": "14766:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "14756:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1001,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "content_hash",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 247,
           "src": "14756:35:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1002,
           "name": "content_hash",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 922,
           "src": "14794:12:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "14756:50:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "id": 1004,
         "nodeType": "ExpressionStatement",
         "src": "14756:50:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1010,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1005,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "14816:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1007,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1006,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 920,
             "src": "14826:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "14816:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1008,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "arbitrator",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 249,
           "src": "14816:33:2",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1009,
           "name": "arbitrator",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 924,
           "src": "14852:10:2",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "src": "14816:46:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "id": 1011,
         "nodeType": "ExpressionStatement",
         "src": "14816:46:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1017,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1012,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "14872:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1014,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1013,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 920,
             "src": "14882:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "14872:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1015,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "opening_ts",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 251,
           "src": "14872:33:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1016,
           "name": "opening_ts",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 928,
           "src": "14908:10:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "src": "14872:46:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "id": 1018,
         "nodeType": "ExpressionStatement",
         "src": "14872:46:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1024,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1019,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "14928:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1021,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1020,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 920,
             "src": "14938:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "14928:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1022,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "timeout",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 253,
           "src": "14928:30:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1023,
           "name": "timeout",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 926,
           "src": "14961:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "src": "14928:40:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "id": 1025,
         "nodeType": "ExpressionStatement",
         "src": "14928:40:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1031,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1026,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "14978:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1028,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1027,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 920,
             "src": "14988:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "14978:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1029,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "bounty",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 259,
           "src": "14978:29:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1030,
           "name": "bounty",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 937,
           "src": "15010:6:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "14978:38:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 1032,
         "nodeType": "ExpressionStatement",
         "src": "14978:38:2"
        }
       ]
      },
      "documentation": null,
      "id": 1034,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 933,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 920,
          "src": "13685:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 934,
        "modifierName": {
         "argumentTypes": null,
         "id": 932,
         "name": "stateNotCreated",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 344,
         "src": "13669:15:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "13669:28:2"
       }
      ],
      "name": "_askQuestion",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 931,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 920,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1034,
         "src": "13546:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 919,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "13546:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 922,
         "name": "content_hash",
         "nodeType": "VariableDeclaration",
         "scope": 1034,
         "src": "13567:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 921,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "13567:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 924,
         "name": "arbitrator",
         "nodeType": "VariableDeclaration",
         "scope": 1034,
         "src": "13589:18:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 923,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "13589:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 926,
         "name": "timeout",
         "nodeType": "VariableDeclaration",
         "scope": 1034,
         "src": "13609:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 925,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "13609:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 928,
         "name": "opening_ts",
         "nodeType": "VariableDeclaration",
         "scope": 1034,
         "src": "13625:17:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 927,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "13625:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 930,
         "name": "tokens",
         "nodeType": "VariableDeclaration",
         "scope": 1034,
         "src": "13644:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 929,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "13644:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "13545:114:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 935,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "13711:0:2"
      },
      "scope": 2322,
      "src": "13524:1500:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 1072,
       "nodeType": "Block",
       "src": "15437:227:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1045,
            "name": "tokens",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1038,
            "src": "15469:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           ],
           "id": 1044,
           "name": "_deductTokensOrRevert",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 918,
           "src": "15447:21:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
            "typeString": "function (uint256)"
           }
          },
          "id": 1046,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "15447:29:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1047,
         "nodeType": "ExpressionStatement",
         "src": "15447:29:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1059,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1048,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "15486:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1050,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1049,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1036,
             "src": "15496:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "15486:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1051,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "bounty",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 259,
           "src": "15486:29:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "id": 1057,
             "name": "tokens",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1038,
             "src": "15552:6:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            ],
            "expression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1052,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 295,
               "src": "15518:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
               }
              },
              "id": 1054,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1053,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1036,
               "src": "15528:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "15518:22:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$266_storage",
               "typeString": "struct RealitioERC20.Question storage ref"
              }
             },
             "id": 1055,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "bounty",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 259,
             "src": "15518:29:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1056,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "add",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 2419,
            "src": "15518:33:2",
            "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": 1058,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "15518:41:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "15486:73:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 1060,
         "nodeType": "ExpressionStatement",
         "src": "15486:73:2"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1062,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1036,
            "src": "15594:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1063,
            "name": "tokens",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1038,
            "src": "15607:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 1064,
              "name": "questions",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 295,
              "src": "15615:9:2",
              "typeDescriptions": {
               "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
               "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
              }
             },
             "id": 1066,
             "indexExpression": {
              "argumentTypes": null,
              "id": 1065,
              "name": "question_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1036,
              "src": "15625:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "15615:22:2",
             "typeDescriptions": {
              "typeIdentifier": "t_struct$_Question_$266_storage",
              "typeString": "struct RealitioERC20.Question storage ref"
             }
            },
            "id": 1067,
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "bounty",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 259,
            "src": "15615:29:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 1068,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2462,
             "src": "15646:3:2",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 1069,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "15646:10:2",
            "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": 1061,
           "name": "LogFundAnswerBounty",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 195,
           "src": "15574:19:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
            "typeString": "function (bytes32,uint256,uint256,address)"
           }
          },
          "id": 1070,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "15574:83:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1071,
         "nodeType": "EmitStatement",
         "src": "15569:88:2"
        }
       ]
      },
      "documentation": "@notice Add funds to the bounty for a question\n @dev Add bounty funds after the initial question creation. Can be done any time until the question is finalized.\n @param question_id The ID of the question you wish to fund\n @param tokens The number of tokens to fund",
      "id": 1073,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1041,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1036,
          "src": "15411:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1042,
        "modifierName": {
         "argumentTypes": null,
         "id": 1040,
         "name": "stateOpen",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 409,
         "src": "15401:9:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "15401:22:2"
       }
      ],
      "name": "fundAnswerBountyERC20",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1039,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1036,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1073,
         "src": "15355:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1035,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "15355:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1038,
         "name": "tokens",
         "nodeType": "VariableDeclaration",
         "scope": 1073,
         "src": "15376:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1037,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "15376:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "15354:37:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1043,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "15437:0:2"
      },
      "scope": 2322,
      "src": "15324:340:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1117,
       "nodeType": "Block",
       "src": "16469:206:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1096,
            "name": "tokens",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1081,
            "src": "16501:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           ],
           "id": 1095,
           "name": "_deductTokensOrRevert",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 918,
           "src": "16479:21:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
            "typeString": "function (uint256)"
           }
          },
          "id": 1097,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "16479:29:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1098,
         "nodeType": "ExpressionStatement",
         "src": "16479:29:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1100,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1075,
            "src": "16538:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1101,
            "name": "answer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1077,
            "src": "16551:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 1102,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2462,
             "src": "16559:3:2",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 1103,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "16559:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 1104,
            "name": "tokens",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1081,
            "src": "16571:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "66616c7365",
            "id": 1105,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "bool",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "16579:5:2",
            "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": 1099,
           "name": "_addAnswerToHistory",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1378,
           "src": "16518:19:2",
           "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": 1106,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "16518:67:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1107,
         "nodeType": "ExpressionStatement",
         "src": "16518:67:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1109,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1075,
            "src": "16616:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1110,
            "name": "answer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1077,
            "src": "16629:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 1111,
              "name": "questions",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 295,
              "src": "16637:9:2",
              "typeDescriptions": {
               "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
               "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
              }
             },
             "id": 1113,
             "indexExpression": {
              "argumentTypes": null,
              "id": 1112,
              "name": "question_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1075,
              "src": "16647:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "16637:22:2",
             "typeDescriptions": {
              "typeIdentifier": "t_struct$_Question_$266_storage",
              "typeString": "struct RealitioERC20.Question storage ref"
             }
            },
            "id": 1114,
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "timeout",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 253,
            "src": "16637:30:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           ],
           "id": 1108,
           "name": "_updateCurrentAnswer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1407,
           "src": "16595:20:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
            "typeString": "function (bytes32,bytes32,uint32)"
           }
          },
          "id": 1115,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "16595:73:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1116,
         "nodeType": "ExpressionStatement",
         "src": "16595:73:2"
        }
       ]
      },
      "documentation": "@notice Submit an answer for a question.\n @dev Adds the answer to the history and updates the current \"best\" answer.\n May be subject to front-running attacks; Substitute submitAnswerCommitment()->submitAnswerReveal() to prevent them.\n @param question_id The ID of the question\n @param answer The answer, encoded into bytes32\n @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.\n @param tokens The amount of tokens to submit",
      "id": 1118,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1084,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1075,
          "src": "16329:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1085,
        "modifierName": {
         "argumentTypes": null,
         "id": 1083,
         "name": "stateOpen",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 409,
         "src": "16319:9:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "16319:22:2"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1087,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1075,
          "src": "16365:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         {
          "argumentTypes": null,
          "id": 1088,
          "name": "tokens",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1081,
          "src": "16378:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         }
        ],
        "id": 1089,
        "modifierName": {
         "argumentTypes": null,
         "id": 1086,
         "name": "bondMustDouble",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 521,
         "src": "16350:14:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
          "typeString": "modifier (bytes32,uint256)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "16350:35:2"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1091,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1075,
          "src": "16429:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         {
          "argumentTypes": null,
          "id": 1092,
          "name": "max_previous",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1079,
          "src": "16442:12:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         }
        ],
        "id": 1093,
        "modifierName": {
         "argumentTypes": null,
         "id": 1090,
         "name": "previousBondMustNotBeatMaxPrevious",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 544,
         "src": "16394:34:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
          "typeString": "modifier (bytes32,uint256)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "16394:61:2"
       }
      ],
      "name": "submitAnswerERC20",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1082,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1075,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1118,
         "src": "16235:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1074,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "16235:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1077,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 1118,
         "src": "16256:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1076,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "16256:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1079,
         "name": "max_previous",
         "nodeType": "VariableDeclaration",
         "scope": 1118,
         "src": "16272:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1078,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "16272:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1081,
         "name": "tokens",
         "nodeType": "VariableDeclaration",
         "scope": 1118,
         "src": "16294:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1080,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "16294:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "16234:75:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1094,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "16469:0:2"
      },
      "scope": 2322,
      "src": "16208:467:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1156,
       "nodeType": "Block",
       "src": "16956:306:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 1131,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1126,
               "name": "commitments",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 303,
               "src": "16974:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$273_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
               }
              },
              "id": 1128,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1127,
               "name": "commitment_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1122,
               "src": "16986:13:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "16974:26:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Commitment_$273_storage",
               "typeString": "struct RealitioERC20.Commitment storage ref"
              }
             },
             "id": 1129,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "reveal_ts",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 268,
             "src": "16974:36:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "==",
            "rightExpression": {
             "argumentTypes": null,
             "id": 1130,
             "name": "COMMITMENT_NON_EXISTENT",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 146,
             "src": "17014:23:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "src": "16974:63:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "636f6d6d69746d656e74206d757374206e6f7420616c7265616479206578697374",
            "id": 1132,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "17039:35:2",
            "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": 1125,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "16966:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1133,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "16966:109:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1134,
         "nodeType": "ExpressionStatement",
         "src": "16966:109:2"
        },
        {
         "assignments": [
          1136
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1136,
           "name": "commitment_timeout",
           "nodeType": "VariableDeclaration",
           "scope": 1157,
           "src": "17086:25:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           },
           "typeName": {
            "id": 1135,
            "name": "uint32",
            "nodeType": "ElementaryTypeName",
            "src": "17086:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1143,
         "initialValue": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          },
          "id": 1142,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1137,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "17114:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1139,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1138,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1120,
             "src": "17124:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "17114:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1140,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "timeout",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 253,
           "src": "17114:30:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "/",
          "rightExpression": {
           "argumentTypes": null,
           "id": 1141,
           "name": "COMMITMENT_TIMEOUT_RATIO",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 149,
           "src": "17147:24:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "src": "17114:57:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "17086:85:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1154,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1144,
             "name": "commitments",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 303,
             "src": "17181:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$273_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
             }
            },
            "id": 1146,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1145,
             "name": "commitment_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1122,
             "src": "17193:13:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "17181:26:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Commitment_$273_storage",
             "typeString": "struct RealitioERC20.Commitment storage ref"
            }
           },
           "id": 1147,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "reveal_ts",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 268,
           "src": "17181:36:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "id": 1152,
             "name": "commitment_timeout",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1136,
             "src": "17236:18:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            ],
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1149,
               "name": "now",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2464,
               "src": "17227:3:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 1148,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "ElementaryTypeNameExpression",
              "src": "17220:6:2",
              "typeDescriptions": {
               "typeIdentifier": "t_type$_t_uint32_$",
               "typeString": "type(uint32)"
              },
              "typeName": "uint32"
             },
             "id": 1150,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "typeConversion",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "17220:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "id": 1151,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "add",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 2446,
            "src": "17220:15:2",
            "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": 1153,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "17220:35:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "src": "17181:74:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "id": 1155,
         "nodeType": "ExpressionStatement",
         "src": "17181:74:2"
        }
       ]
      },
      "documentation": null,
      "id": 1157,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "_storeCommitment",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1123,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1120,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1157,
         "src": "16894:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1119,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "16894:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1122,
         "name": "commitment_id",
         "nodeType": "VariableDeclaration",
         "scope": 1157,
         "src": "16915:21:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1121,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "16915:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "16893:44:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1124,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "16956:0:2"
      },
      "scope": 2322,
      "src": "16868:394:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 1220,
       "nodeType": "Block",
       "src": "18538:361:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1182,
            "name": "tokens",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1167,
            "src": "18571:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           ],
           "id": 1181,
           "name": "_deductTokensOrRevert",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 918,
           "src": "18549:21:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
            "typeString": "function (uint256)"
           }
          },
          "id": 1183,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "18549:29:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1184,
         "nodeType": "ExpressionStatement",
         "src": "18549:29:2"
        },
        {
         "assignments": [
          1186
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1186,
           "name": "commitment_id",
           "nodeType": "VariableDeclaration",
           "scope": 1221,
           "src": "18589:21:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1185,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "18589:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1195,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 1190,
              "name": "question_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1159,
              "src": "18640:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1191,
              "name": "answer_hash",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1161,
              "src": "18653:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1192,
              "name": "tokens",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1167,
              "src": "18666:6:2",
              "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": 1188,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2449,
              "src": "18623:3:2",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 1189,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "18623:16:2",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 1193,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "18623:50:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 1187,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2456,
           "src": "18613:9:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 1194,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "18613:61:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "18589:85:2"
        },
        {
         "assignments": [
          1197
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1197,
           "name": "answerer",
           "nodeType": "VariableDeclaration",
           "scope": 1221,
           "src": "18684:16:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           },
           "typeName": {
            "id": 1196,
            "name": "address",
            "nodeType": "ElementaryTypeName",
            "src": "18684:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1206,
         "initialValue": {
          "argumentTypes": null,
          "condition": {
           "argumentTypes": null,
           "components": [
            {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             },
             "id": 1200,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 1198,
              "name": "_answerer",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1165,
              "src": "18704:9:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "==",
             "rightExpression": {
              "argumentTypes": null,
              "id": 1199,
              "name": "NULL_ADDRESS",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 135,
              "src": "18717:12:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "src": "18704:25:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            }
           ],
           "id": 1201,
           "isConstant": false,
           "isInlineArray": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "TupleExpression",
           "src": "18703:27:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           }
          },
          "falseExpression": {
           "argumentTypes": null,
           "id": 1204,
           "name": "_answerer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1165,
           "src": "18746:9:2",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "id": 1205,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "nodeType": "Conditional",
          "src": "18703:52:2",
          "trueExpression": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "id": 1202,
            "name": "msg",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2462,
            "src": "18733:3:2",
            "typeDescriptions": {
             "typeIdentifier": "t_magic_message",
             "typeString": "msg"
            }
           },
           "id": 1203,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "sender",
           "nodeType": "MemberAccess",
           "referencedDeclaration": null,
           "src": "18733:10:2",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "18684:71:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1208,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1159,
            "src": "18783:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1209,
            "name": "commitment_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1186,
            "src": "18796:13:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           ],
           "id": 1207,
           "name": "_storeCommitment",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1157,
           "src": "18766:16:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
            "typeString": "function (bytes32,bytes32)"
           }
          },
          "id": 1210,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "18766:44:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1211,
         "nodeType": "ExpressionStatement",
         "src": "18766:44:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1213,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1159,
            "src": "18840:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1214,
            "name": "commitment_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1186,
            "src": "18853:13:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1215,
            "name": "answerer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1197,
            "src": "18868:8:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 1216,
            "name": "tokens",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1167,
            "src": "18878:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "74727565",
            "id": 1217,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "bool",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "18886:4:2",
            "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": 1212,
           "name": "_addAnswerToHistory",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1378,
           "src": "18820:19:2",
           "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": 1218,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "18820:71:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1219,
         "nodeType": "ExpressionStatement",
         "src": "18820:71:2"
        }
       ]
      },
      "documentation": "@notice Submit the hash of an answer, laying your claim to that answer if you reveal it in a subsequent transaction.\n @dev Creates a hash, commitment_id, uniquely identifying this answer, to this question, with this bond.\n The commitment_id is stored in the answer history where the answer would normally go.\n Does not update the current best answer - this is left to the later submitAnswerReveal() transaction.\n @param question_id The ID of the question\n @param answer_hash The hash of your answer, plus a nonce that you will later reveal\n @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.\n @param _answerer If specified, the address to be given as the question answerer. Defaults to the sender.\n @param tokens Number of tokens sent\n @dev Specifying the answerer is useful if you want to delegate the commit-and-reveal to a third-party.",
      "id": 1221,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1170,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1159,
          "src": "18398:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1171,
        "modifierName": {
         "argumentTypes": null,
         "id": 1169,
         "name": "stateOpen",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 409,
         "src": "18388:9:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "18388:22:2"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1173,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1159,
          "src": "18434:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         {
          "argumentTypes": null,
          "id": 1174,
          "name": "tokens",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1167,
          "src": "18447:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         }
        ],
        "id": 1175,
        "modifierName": {
         "argumentTypes": null,
         "id": 1172,
         "name": "bondMustDouble",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 521,
         "src": "18419:14:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
          "typeString": "modifier (bytes32,uint256)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "18419:35:2"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1177,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1159,
          "src": "18498:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         {
          "argumentTypes": null,
          "id": 1178,
          "name": "max_previous",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1163,
          "src": "18511:12:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         }
        ],
        "id": 1179,
        "modifierName": {
         "argumentTypes": null,
         "id": 1176,
         "name": "previousBondMustNotBeatMaxPrevious",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 544,
         "src": "18463:34:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
          "typeString": "modifier (bytes32,uint256)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "18463:61:2"
       }
      ],
      "name": "submitAnswerCommitmentERC20",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1168,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1159,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1221,
         "src": "18280:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1158,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "18280:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1161,
         "name": "answer_hash",
         "nodeType": "VariableDeclaration",
         "scope": 1221,
         "src": "18301:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1160,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "18301:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1163,
         "name": "max_previous",
         "nodeType": "VariableDeclaration",
         "scope": 1221,
         "src": "18322:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1162,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "18322:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1165,
         "name": "_answerer",
         "nodeType": "VariableDeclaration",
         "scope": 1221,
         "src": "18344:17:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1164,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "18344:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1167,
         "name": "tokens",
         "nodeType": "VariableDeclaration",
         "scope": 1221,
         "src": "18363:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1166,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "18363:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "18279:99:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1180,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "18538:0:2"
      },
      "scope": 2322,
      "src": "18243:656:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1318,
       "nodeType": "Block",
       "src": "20033:746:2",
       "statements": [
        {
         "assignments": [
          1236
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1236,
           "name": "answer_hash",
           "nodeType": "VariableDeclaration",
           "scope": 1319,
           "src": "20044:19:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1235,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "20044:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1244,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 1240,
              "name": "answer",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1225,
              "src": "20093:6:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1241,
              "name": "nonce",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1227,
              "src": "20101:5:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             }
            ],
            "expression": {
             "argumentTypes": [
              {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              },
              {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             ],
             "expression": {
              "argumentTypes": null,
              "id": 1238,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2449,
              "src": "20076:3:2",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 1239,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "20076:16:2",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 1242,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "20076:31:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 1237,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2456,
           "src": "20066:9:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 1243,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "20066:42:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "20044:64:2"
        },
        {
         "assignments": [
          1246
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1246,
           "name": "commitment_id",
           "nodeType": "VariableDeclaration",
           "scope": 1319,
           "src": "20118:21:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1245,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "20118:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1255,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 1250,
              "name": "question_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1223,
              "src": "20169:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1251,
              "name": "answer_hash",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1236,
              "src": "20182:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1252,
              "name": "bond",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1229,
              "src": "20195:4:2",
              "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": 1248,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2449,
              "src": "20152:3:2",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 1249,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "20152:16:2",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 1253,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "20152:48:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 1247,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2456,
           "src": "20142:9:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 1254,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "20142:59:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "20118:83:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1261,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "UnaryOperation",
            "operator": "!",
            "prefix": true,
            "src": "20220:39:2",
            "subExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1257,
               "name": "commitments",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 303,
               "src": "20221:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$273_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
               }
              },
              "id": 1259,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1258,
               "name": "commitment_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1246,
               "src": "20233:13:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "20221:26:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Commitment_$273_storage",
               "typeString": "struct RealitioERC20.Commitment storage ref"
              }
             },
             "id": 1260,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "is_revealed",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 270,
             "src": "20221:38:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "636f6d6d69746d656e74206d757374206e6f742068617665206265656e2072657665616c656420796574",
            "id": 1262,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "20261:44:2",
            "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": 1256,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "20212:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1263,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "20212:94:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1264,
         "nodeType": "ExpressionStatement",
         "src": "20212:94:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 1273,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1266,
               "name": "commitments",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 303,
               "src": "20324:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$273_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
               }
              },
              "id": 1268,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1267,
               "name": "commitment_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1246,
               "src": "20336:13:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "20324:26:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Commitment_$273_storage",
               "typeString": "struct RealitioERC20.Commitment storage ref"
              }
             },
             "id": 1269,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "reveal_ts",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 268,
             "src": "20324:36:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1271,
               "name": "now",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2464,
               "src": "20370:3:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 1270,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "ElementaryTypeNameExpression",
              "src": "20363:6:2",
              "typeDescriptions": {
               "typeIdentifier": "t_type$_t_uint32_$",
               "typeString": "type(uint32)"
              },
              "typeName": "uint32"
             },
             "id": 1272,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "typeConversion",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "20363:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "src": "20324:50:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "72657665616c20646561646c696e65206d757374206e6f74206861766520706173736564",
            "id": 1274,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "20376:38:2",
            "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": 1265,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "20316:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1275,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "20316:99:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1276,
         "nodeType": "ExpressionStatement",
         "src": "20316:99:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1282,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1277,
             "name": "commitments",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 303,
             "src": "20426:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$273_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
             }
            },
            "id": 1279,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1278,
             "name": "commitment_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1246,
             "src": "20438:13:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "20426:26:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Commitment_$273_storage",
             "typeString": "struct RealitioERC20.Commitment storage ref"
            }
           },
           "id": 1280,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "revealed_answer",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 272,
           "src": "20426:42:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1281,
           "name": "answer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1225,
           "src": "20471:6:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "20426:51:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "id": 1283,
         "nodeType": "ExpressionStatement",
         "src": "20426:51:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1289,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1284,
             "name": "commitments",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 303,
             "src": "20487:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$273_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
             }
            },
            "id": 1286,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1285,
             "name": "commitment_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1246,
             "src": "20499:13:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "20487:26:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Commitment_$273_storage",
             "typeString": "struct RealitioERC20.Commitment storage ref"
            }
           },
           "id": 1287,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "is_revealed",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 270,
           "src": "20487:38:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "hexValue": "74727565",
           "id": 1288,
           "isConstant": false,
           "isLValue": false,
           "isPure": true,
           "kind": "bool",
           "lValueRequested": false,
           "nodeType": "Literal",
           "src": "20528:4:2",
           "subdenomination": null,
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           },
           "value": "true"
          },
          "src": "20487:45:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "id": 1290,
         "nodeType": "ExpressionStatement",
         "src": "20487:45:2"
        },
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          },
          "id": 1296,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 1291,
           "name": "bond",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1229,
           "src": "20547:4:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "==",
          "rightExpression": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1292,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "20555:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1294,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1293,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1223,
             "src": "20565:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "20555:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1295,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "bond",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 265,
           "src": "20555:27:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "20547:35:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 1307,
         "nodeType": "IfStatement",
         "src": "20543:139:2",
         "trueBody": {
          "id": 1306,
          "nodeType": "Block",
          "src": "20584:98:2",
          "statements": [
           {
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1298,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1223,
               "src": "20619:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 1299,
               "name": "answer",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1225,
               "src": "20632:6:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "expression": {
                "argumentTypes": null,
                "baseExpression": {
                 "argumentTypes": null,
                 "id": 1300,
                 "name": "questions",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 295,
                 "src": "20640:9:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                  "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                 }
                },
                "id": 1302,
                "indexExpression": {
                 "argumentTypes": null,
                 "id": 1301,
                 "name": "question_id",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1223,
                 "src": "20650:11:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "IndexAccess",
                "src": "20640:22:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_struct$_Question_$266_storage",
                 "typeString": "struct RealitioERC20.Question storage ref"
                }
               },
               "id": 1303,
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "memberName": "timeout",
               "nodeType": "MemberAccess",
               "referencedDeclaration": 253,
               "src": "20640:30:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               },
               {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               },
               {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
               }
              ],
              "id": 1297,
              "name": "_updateCurrentAnswer",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1407,
              "src": "20598:20:2",
              "typeDescriptions": {
               "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
               "typeString": "function (bytes32,bytes32,uint32)"
              }
             },
             "id": 1304,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "20598:73:2",
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 1305,
            "nodeType": "ExpressionStatement",
            "src": "20598:73:2"
           }
          ]
         }
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1309,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1223,
            "src": "20713:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 1310,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2462,
             "src": "20726:3:2",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 1311,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "20726:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 1312,
            "name": "answer_hash",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1236,
            "src": "20738:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1313,
            "name": "answer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1225,
            "src": "20751:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1314,
            "name": "nonce",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1227,
            "src": "20759:5:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 1315,
            "name": "bond",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1229,
            "src": "20766:4:2",
            "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": 1308,
           "name": "LogAnswerReveal",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 225,
           "src": "20697:15:2",
           "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": 1316,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "20697:74:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1317,
         "nodeType": "EmitStatement",
         "src": "20692:79:2"
        }
       ]
      },
      "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": 1319,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1232,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1223,
          "src": "20007:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1233,
        "modifierName": {
         "argumentTypes": null,
         "id": 1231,
         "name": "stateOpenOrPendingArbitration",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 479,
         "src": "19977:29:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "19977:42:2"
       }
      ],
      "name": "submitAnswerReveal",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1230,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1223,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1319,
         "src": "19902:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1222,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "19902:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1225,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 1319,
         "src": "19923:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1224,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "19923:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1227,
         "name": "nonce",
         "nodeType": "VariableDeclaration",
         "scope": 1319,
         "src": "19939:13:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1226,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "19939:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1229,
         "name": "bond",
         "nodeType": "VariableDeclaration",
         "scope": 1319,
         "src": "19954:12:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1228,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "19954:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "19901:66:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1234,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "20033:0:2"
      },
      "scope": 2322,
      "src": "19874:905:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1377,
       "nodeType": "Block",
       "src": "20939:524:2",
       "statements": [
        {
         "assignments": [
          1333
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1333,
           "name": "new_history_hash",
           "nodeType": "VariableDeclaration",
           "scope": 1378,
           "src": "20949:24:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1332,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "20949:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1347,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1337,
                "name": "questions",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 295,
                "src": "21003:9:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                 "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                }
               },
               "id": 1339,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1338,
                "name": "question_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1321,
                "src": "21013:11:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "21003:22:2",
               "typeDescriptions": {
                "typeIdentifier": "t_struct$_Question_$266_storage",
                "typeString": "struct RealitioERC20.Question storage ref"
               }
              },
              "id": 1340,
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "memberName": "history_hash",
              "nodeType": "MemberAccess",
              "referencedDeclaration": 263,
              "src": "21003:35:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1341,
              "name": "answer_or_commitment_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1323,
              "src": "21040:23:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1342,
              "name": "bond",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1327,
              "src": "21065:4:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             {
              "argumentTypes": null,
              "id": 1343,
              "name": "answerer",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1325,
              "src": "21071:8:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             {
              "argumentTypes": null,
              "id": 1344,
              "name": "is_commitment",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1329,
              "src": "21081:13:2",
              "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": 1335,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2449,
              "src": "20986:3:2",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 1336,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "20986:16:2",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 1345,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "20986:109:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 1334,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2456,
           "src": "20976:9:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 1346,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "20976:120:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "20949:147:2"
        },
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          },
          "id": 1350,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 1348,
           "name": "bond",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1327,
           "src": "21204:4:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": ">",
          "rightExpression": {
           "argumentTypes": null,
           "hexValue": "30",
           "id": 1349,
           "isConstant": false,
           "isLValue": false,
           "isPure": true,
           "kind": "number",
           "lValueRequested": false,
           "nodeType": "Literal",
           "src": "21211:1:2",
           "subdenomination": null,
           "typeDescriptions": {
            "typeIdentifier": "t_rational_0_by_1",
            "typeString": "int_const 0"
           },
           "value": "0"
          },
          "src": "21204:8:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 1359,
         "nodeType": "IfStatement",
         "src": "21200:73:2",
         "trueBody": {
          "id": 1358,
          "nodeType": "Block",
          "src": "21214:59:2",
          "statements": [
           {
            "expression": {
             "argumentTypes": null,
             "id": 1356,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1351,
                "name": "questions",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 295,
                "src": "21228:9:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                 "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                }
               },
               "id": 1353,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1352,
                "name": "question_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1321,
                "src": "21238:11:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "21228:22:2",
               "typeDescriptions": {
                "typeIdentifier": "t_struct$_Question_$266_storage",
                "typeString": "struct RealitioERC20.Question storage ref"
               }
              },
              "id": 1354,
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "memberName": "bond",
              "nodeType": "MemberAccess",
              "referencedDeclaration": 265,
              "src": "21228:27:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "id": 1355,
              "name": "bond",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1327,
              "src": "21258:4:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "21228:34:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1357,
            "nodeType": "ExpressionStatement",
            "src": "21228:34:2"
           }
          ]
         }
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1365,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1360,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "21282:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1362,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1361,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1321,
             "src": "21292:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "21282:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1363,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "history_hash",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 263,
           "src": "21282:35:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1364,
           "name": "new_history_hash",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1333,
           "src": "21320:16:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "21282:54:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "id": 1366,
         "nodeType": "ExpressionStatement",
         "src": "21282:54:2"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1368,
            "name": "answer_or_commitment_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1323,
            "src": "21365:23:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1369,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1321,
            "src": "21390:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1370,
            "name": "new_history_hash",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1333,
            "src": "21403:16:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1371,
            "name": "answerer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1325,
            "src": "21421:8:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 1372,
            "name": "bond",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1327,
            "src": "21431:4:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 1373,
            "name": "now",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2464,
            "src": "21437:3:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 1374,
            "name": "is_commitment",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1329,
            "src": "21442:13:2",
            "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": 1367,
           "name": "LogNewAnswer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 211,
           "src": "21352:12:2",
           "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": 1375,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "21352:104:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1376,
         "nodeType": "EmitStatement",
         "src": "21347:109:2"
        }
       ]
      },
      "documentation": null,
      "id": 1378,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "_addAnswerToHistory",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1330,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1321,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1378,
         "src": "20814:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1320,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "20814:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1323,
         "name": "answer_or_commitment_id",
         "nodeType": "VariableDeclaration",
         "scope": 1378,
         "src": "20835:31:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1322,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "20835:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1325,
         "name": "answerer",
         "nodeType": "VariableDeclaration",
         "scope": 1378,
         "src": "20868:16:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1324,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "20868:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1327,
         "name": "bond",
         "nodeType": "VariableDeclaration",
         "scope": 1378,
         "src": "20886:12:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1326,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "20886:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1329,
         "name": "is_commitment",
         "nodeType": "VariableDeclaration",
         "scope": 1378,
         "src": "20900:18:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         },
         "typeName": {
          "id": 1328,
          "name": "bool",
          "nodeType": "ElementaryTypeName",
          "src": "20900:4:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "20813:106:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1331,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "20939:0:2"
      },
      "scope": 2322,
      "src": "20785:678:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 1406,
       "nodeType": "Block",
       "src": "21570:136:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "id": 1392,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1387,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "21580:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1389,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1388,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1380,
             "src": "21590:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "21580:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1390,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "best_answer",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 261,
           "src": "21580:34:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1391,
           "name": "answer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1382,
           "src": "21617:6:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "21580:43:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "id": 1393,
         "nodeType": "ExpressionStatement",
         "src": "21580:43:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1404,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1394,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "21633:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1396,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1395,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1380,
             "src": "21643:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "21633:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1397,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "finalize_ts",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 255,
           "src": "21633:34:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "id": 1402,
             "name": "timeout_secs",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1384,
             "src": "21686:12:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            ],
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1399,
               "name": "now",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2464,
               "src": "21677:3:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 1398,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "ElementaryTypeNameExpression",
              "src": "21670:6:2",
              "typeDescriptions": {
               "typeIdentifier": "t_type$_t_uint32_$",
               "typeString": "type(uint32)"
              },
              "typeName": "uint32"
             },
             "id": 1400,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "typeConversion",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "21670:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "id": 1401,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "add",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 2446,
            "src": "21670:15:2",
            "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": 1403,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "21670:29:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "src": "21633:66:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "id": 1405,
         "nodeType": "ExpressionStatement",
         "src": "21633:66:2"
        }
       ]
      },
      "documentation": null,
      "id": 1407,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "_updateCurrentAnswer",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1385,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1380,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1407,
         "src": "21499:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1379,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "21499:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1382,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 1407,
         "src": "21520:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1381,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "21520:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1384,
         "name": "timeout_secs",
         "nodeType": "VariableDeclaration",
         "scope": 1407,
         "src": "21536:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 1383,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "21536:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "21498:58:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1386,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "21570:0:2"
      },
      "scope": 2322,
      "src": "21469:237:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 1448,
       "nodeType": "Block",
       "src": "22436:257:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 1432,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1427,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 295,
               "src": "22454:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
               }
              },
              "id": 1429,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1428,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1409,
               "src": "22464:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "22454:22:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$266_storage",
               "typeString": "struct RealitioERC20.Question storage ref"
              }
             },
             "id": 1430,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "bond",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 265,
             "src": "22454:27:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 1431,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "22484:1:2",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "22454:31:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "5175657374696f6e206d75737420616c7265616479206861766520616e20616e73776572207768656e206172626974726174696f6e20697320726571756573746564",
            "id": 1433,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "22487:68:2",
            "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": 1426,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "22446:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1434,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "22446:110:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1435,
         "nodeType": "ExpressionStatement",
         "src": "22446:110:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1441,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1436,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "22566:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1438,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1437,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1409,
             "src": "22576:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "22566:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1439,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "is_pending_arbitration",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 257,
           "src": "22566:45:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "hexValue": "74727565",
           "id": 1440,
           "isConstant": false,
           "isLValue": false,
           "isPure": true,
           "kind": "bool",
           "lValueRequested": false,
           "nodeType": "Literal",
           "src": "22614:4:2",
           "subdenomination": null,
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           },
           "value": "true"
          },
          "src": "22566:52:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "id": 1442,
         "nodeType": "ExpressionStatement",
         "src": "22566:52:2"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1444,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1409,
            "src": "22663:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1445,
            "name": "requester",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1411,
            "src": "22676:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           ],
           "id": 1443,
           "name": "LogNotifyOfArbitrationRequest",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 231,
           "src": "22633:29:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
            "typeString": "function (bytes32,address)"
           }
          },
          "id": 1446,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "22633:53:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1447,
         "nodeType": "EmitStatement",
         "src": "22628:58:2"
        }
       ]
      },
      "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": 1449,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1416,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1409,
          "src": "22309:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1417,
        "modifierName": {
         "argumentTypes": null,
         "id": 1415,
         "name": "onlyArbitrator",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 324,
         "src": "22294:14:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "22294:27:2"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1419,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1409,
          "src": "22340:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1420,
        "modifierName": {
         "argumentTypes": null,
         "id": 1418,
         "name": "stateOpen",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 409,
         "src": "22330:9:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "22330:22:2"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1422,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1409,
          "src": "22396:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         {
          "argumentTypes": null,
          "id": 1423,
          "name": "max_previous",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1413,
          "src": "22409:12:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         }
        ],
        "id": 1424,
        "modifierName": {
         "argumentTypes": null,
         "id": 1421,
         "name": "previousBondMustNotBeatMaxPrevious",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 544,
         "src": "22361:34:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
          "typeString": "modifier (bytes32,uint256)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "22361:61:2"
       }
      ],
      "name": "notifyOfArbitrationRequest",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1414,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1409,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1449,
         "src": "22223:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1408,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "22223:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1411,
         "name": "requester",
         "nodeType": "VariableDeclaration",
         "scope": 1449,
         "src": "22244:17:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1410,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "22244:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1413,
         "name": "max_previous",
         "nodeType": "VariableDeclaration",
         "scope": 1449,
         "src": "22263:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1412,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "22263:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "22222:62:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1425,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "22436:0:2"
      },
      "scope": 2322,
      "src": "22187:506:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1497,
       "nodeType": "Block",
       "src": "23473:316:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            "id": 1467,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 1465,
             "name": "answerer",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1455,
             "src": "23492:8:2",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "!=",
            "rightExpression": {
             "argumentTypes": null,
             "id": 1466,
             "name": "NULL_ADDRESS",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 135,
             "src": "23504:12:2",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "src": "23492:24:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "616e737765726572206d7573742062652070726f7669646564",
            "id": 1468,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "23518:27:2",
            "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": 1464,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "23484:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1469,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "23484:62:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1470,
         "nodeType": "ExpressionStatement",
         "src": "23484:62:2"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1472,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1451,
            "src": "23573:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1473,
            "name": "answer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1453,
            "src": "23586:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           ],
           "id": 1471,
           "name": "LogFinalize",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 237,
           "src": "23561:11:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
            "typeString": "function (bytes32,bytes32)"
           }
          },
          "id": 1474,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "23561:32:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1475,
         "nodeType": "EmitStatement",
         "src": "23556:37:2"
        },
        {
         "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": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "23604:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1478,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1477,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1451,
             "src": "23614:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "23604:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1479,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "is_pending_arbitration",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 257,
           "src": "23604:45:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "hexValue": "66616c7365",
           "id": 1480,
           "isConstant": false,
           "isLValue": false,
           "isPure": true,
           "kind": "bool",
           "lValueRequested": false,
           "nodeType": "Literal",
           "src": "23652:5:2",
           "subdenomination": null,
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           },
           "value": "false"
          },
          "src": "23604:53:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "id": 1482,
         "nodeType": "ExpressionStatement",
         "src": "23604:53:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1484,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1451,
            "src": "23687:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1485,
            "name": "answer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1453,
            "src": "23700:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1486,
            "name": "answerer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1455,
            "src": "23708:8:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "30",
            "id": 1487,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "number",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "23718:1:2",
            "subdenomination": null,
            "typeDescriptions": {
             "typeIdentifier": "t_rational_0_by_1",
             "typeString": "int_const 0"
            },
            "value": "0"
           },
           {
            "argumentTypes": null,
            "hexValue": "66616c7365",
            "id": 1488,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "bool",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "23721:5:2",
            "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": 1483,
           "name": "_addAnswerToHistory",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1378,
           "src": "23667:19:2",
           "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": 1489,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "23667:60:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1490,
         "nodeType": "ExpressionStatement",
         "src": "23667:60:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1492,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1451,
            "src": "23758:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1493,
            "name": "answer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1453,
            "src": "23771:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "30",
            "id": 1494,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "number",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "23779:1:2",
            "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": 1491,
           "name": "_updateCurrentAnswer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1407,
           "src": "23737:20:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
            "typeString": "function (bytes32,bytes32,uint32)"
           }
          },
          "id": 1495,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "23737:44:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1496,
         "nodeType": "ExpressionStatement",
         "src": "23737:44:2"
        }
       ]
      },
      "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": 1498,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1458,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1451,
          "src": "23402:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1459,
        "modifierName": {
         "argumentTypes": null,
         "id": 1457,
         "name": "onlyArbitrator",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 324,
         "src": "23387:14:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "23387:27:2"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1461,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1451,
          "src": "23447:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1462,
        "modifierName": {
         "argumentTypes": null,
         "id": 1460,
         "name": "statePendingArbitration",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 423,
         "src": "23423:23:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "23423:36:2"
       }
      ],
      "name": "submitAnswerByArbitrator",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1456,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1451,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1498,
         "src": "23323:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1450,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "23323:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1453,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 1498,
         "src": "23344:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1452,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "23344:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1455,
         "name": "answerer",
         "nodeType": "VariableDeclaration",
         "scope": 1498,
         "src": "23360:16:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1454,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "23360:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "23322:55:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1463,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "23473:0:2"
      },
      "scope": 2322,
      "src": "23289:500:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1531,
       "nodeType": "Block",
       "src": "24041:201:2",
       "statements": [
        {
         "assignments": [
          1506
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1506,
           "name": "finalize_ts",
           "nodeType": "VariableDeclaration",
           "scope": 1532,
           "src": "24051:18:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           },
           "typeName": {
            "id": 1505,
            "name": "uint32",
            "nodeType": "ElementaryTypeName",
            "src": "24051:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1511,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1507,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "24072:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 1509,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1508,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1500,
            "src": "24082:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "24072:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 1510,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "finalize_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 255,
          "src": "24072:34:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "24051:55:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "components": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            },
            "id": 1528,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             },
             "id": 1521,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 1516,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "UnaryOperation",
              "operator": "!",
              "prefix": true,
              "src": "24125:46:2",
              "subExpression": {
               "argumentTypes": null,
               "expression": {
                "argumentTypes": null,
                "baseExpression": {
                 "argumentTypes": null,
                 "id": 1512,
                 "name": "questions",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 295,
                 "src": "24126:9:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                  "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                 }
                },
                "id": 1514,
                "indexExpression": {
                 "argumentTypes": null,
                 "id": 1513,
                 "name": "question_id",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1500,
                 "src": "24136:11:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "IndexAccess",
                "src": "24126:22:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_struct$_Question_$266_storage",
                 "typeString": "struct RealitioERC20.Question storage ref"
                }
               },
               "id": 1515,
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "memberName": "is_pending_arbitration",
               "nodeType": "MemberAccess",
               "referencedDeclaration": 257,
               "src": "24126:45:2",
               "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": 1519,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftExpression": {
                 "argumentTypes": null,
                 "id": 1517,
                 "name": "finalize_ts",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1506,
                 "src": "24176:11:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                 }
                },
                "nodeType": "BinaryOperation",
                "operator": ">",
                "rightExpression": {
                 "argumentTypes": null,
                 "id": 1518,
                 "name": "UNANSWERED",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 143,
                 "src": "24190:10:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                 }
                },
                "src": "24176:24:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bool",
                 "typeString": "bool"
                }
               }
              ],
              "id": 1520,
              "isConstant": false,
              "isInlineArray": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "TupleExpression",
              "src": "24175:26:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bool",
               "typeString": "bool"
              }
             },
             "src": "24125:76:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "&&",
            "rightExpression": {
             "argumentTypes": null,
             "components": [
              {
               "argumentTypes": null,
               "commonType": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
               },
               "id": 1526,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "lValueRequested": false,
               "leftExpression": {
                "argumentTypes": null,
                "id": 1522,
                "name": "finalize_ts",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1506,
                "src": "24206:11:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint32",
                 "typeString": "uint32"
                }
               },
               "nodeType": "BinaryOperation",
               "operator": "<=",
               "rightExpression": {
                "argumentTypes": null,
                "arguments": [
                 {
                  "argumentTypes": null,
                  "id": 1524,
                  "name": "now",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2464,
                  "src": "24228:3:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 }
                ],
                "expression": {
                 "argumentTypes": [
                  {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 ],
                 "id": 1523,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": true,
                 "lValueRequested": false,
                 "nodeType": "ElementaryTypeNameExpression",
                 "src": "24221:6:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_uint32_$",
                  "typeString": "type(uint32)"
                 },
                 "typeName": "uint32"
                },
                "id": 1525,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "kind": "typeConversion",
                "lValueRequested": false,
                "names": [],
                "nodeType": "FunctionCall",
                "src": "24221:11:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint32",
                 "typeString": "uint32"
                }
               },
               "src": "24206:26:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
               }
              }
             ],
             "id": 1527,
             "isConstant": false,
             "isInlineArray": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "TupleExpression",
             "src": "24205:28:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "src": "24125:108:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           }
          ],
          "id": 1529,
          "isConstant": false,
          "isInlineArray": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "nodeType": "TupleExpression",
          "src": "24123:112:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "functionReturnParameters": 1504,
         "id": 1530,
         "nodeType": "Return",
         "src": "24116:119:2"
        }
       ]
      },
      "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": 1532,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "isFinalized",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1501,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1500,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1532,
         "src": "23988:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1499,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "23988:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "23987:21:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1504,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1503,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 1532,
         "src": "24035:4:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         },
         "typeName": {
          "id": 1502,
          "name": "bool",
          "nodeType": "ElementaryTypeName",
          "src": "24035:4:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "24034:6:2"
      },
      "scope": 2322,
      "src": "23967:275:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 1547,
       "nodeType": "Block",
       "src": "24575:58:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1542,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "24592:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 1544,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1543,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1534,
            "src": "24602:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "24592:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 1545,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "best_answer",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 261,
          "src": "24592:34:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 1541,
         "id": 1546,
         "nodeType": "Return",
         "src": "24585:41:2"
        }
       ]
      },
      "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": 1548,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1537,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1534,
          "src": "24526:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1538,
        "modifierName": {
         "argumentTypes": null,
         "id": 1536,
         "name": "stateFinalized",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 492,
         "src": "24511:14:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "24511:27:2"
       }
      ],
      "name": "getFinalAnswer",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1535,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1534,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1548,
         "src": "24481:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1533,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "24481:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "24480:21:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1541,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1540,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 1548,
         "src": "24566:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1539,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "24566:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "24565:9:2"
      },
      "scope": 2322,
      "src": "24457:176:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1563,
       "nodeType": "Block",
       "src": "24948:58:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1558,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "24965:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 1560,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1559,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1550,
            "src": "24975:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "24965:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 1561,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "best_answer",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 261,
          "src": "24965:34:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 1557,
         "id": 1562,
         "nodeType": "Return",
         "src": "24958:41:2"
        }
       ]
      },
      "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": 1564,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1553,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1550,
          "src": "24899:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1554,
        "modifierName": {
         "argumentTypes": null,
         "id": 1552,
         "name": "stateFinalized",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 492,
         "src": "24884:14:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "24884:27:2"
       }
      ],
      "name": "resultFor",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1551,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1550,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1564,
         "src": "24854:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1549,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "24854:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "24853:21:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1557,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1556,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 1564,
         "src": "24939:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1555,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "24939:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "24938:9:2"
      },
      "scope": 2322,
      "src": "24835:171:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1627,
       "nodeType": "Block",
       "src": "25984:427:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            "id": 1588,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 1583,
             "name": "content_hash",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1568,
             "src": "26002:12:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "==",
            "rightExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1584,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 295,
               "src": "26018:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
               }
              },
              "id": 1586,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1585,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1566,
               "src": "26028:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "26018:22:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$266_storage",
               "typeString": "struct RealitioERC20.Question storage ref"
              }
             },
             "id": 1587,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "content_hash",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 247,
             "src": "26018:35:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "src": "26002:51:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "636f6e74656e742068617368206d757374206d61746368",
            "id": 1589,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "26055:25:2",
            "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": 1582,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "25994:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1590,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "25994:87:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1591,
         "nodeType": "ExpressionStatement",
         "src": "25994:87:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            "id": 1598,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 1593,
             "name": "arbitrator",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1570,
             "src": "26099:10:2",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "==",
            "rightExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1594,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 295,
               "src": "26113:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
               }
              },
              "id": 1596,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1595,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1566,
               "src": "26123:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "26113:22:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$266_storage",
               "typeString": "struct RealitioERC20.Question storage ref"
              }
             },
             "id": 1597,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "arbitrator",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 249,
             "src": "26113:33:2",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "src": "26099:47:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "61726269747261746f72206d757374206d61746368",
            "id": 1599,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "26148:23:2",
            "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": 1592,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "26091:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1600,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "26091:81:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1601,
         "nodeType": "ExpressionStatement",
         "src": "26091:81:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 1608,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 1603,
             "name": "min_timeout",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1572,
             "src": "26190:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "<=",
            "rightExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1604,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 295,
               "src": "26205:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
               }
              },
              "id": 1606,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1605,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1566,
               "src": "26215:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "26205:22:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$266_storage",
               "typeString": "struct RealitioERC20.Question storage ref"
              }
             },
             "id": 1607,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "timeout",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 253,
             "src": "26205:30:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "src": "26190:45:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "74696d656f7574206d757374206265206c6f6e6720656e6f756768",
            "id": 1609,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "26237:29:2",
            "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": 1602,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "26182:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1610,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "26182:85:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1611,
         "nodeType": "ExpressionStatement",
         "src": "26182:85:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 1618,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 1613,
             "name": "min_bond",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1574,
             "src": "26285:8:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "<=",
            "rightExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1614,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 295,
               "src": "26297:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
               }
              },
              "id": 1616,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1615,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1566,
               "src": "26307:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "26297:22:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$266_storage",
               "typeString": "struct RealitioERC20.Question storage ref"
              }
             },
             "id": 1617,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "bond",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 265,
             "src": "26297:27:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "src": "26285:39:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "626f6e64206d757374206265206869676820656e6f756768",
            "id": 1619,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "26326:26:2",
            "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": 1612,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "26277:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1620,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "26277:76:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1621,
         "nodeType": "ExpressionStatement",
         "src": "26277:76:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1622,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "26370:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 1624,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1623,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1566,
            "src": "26380:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "26370:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 1625,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "best_answer",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 261,
          "src": "26370:34:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 1581,
         "id": 1626,
         "nodeType": "Return",
         "src": "26363:41:2"
        }
       ]
      },
      "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": 1628,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1577,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1566,
          "src": "25935:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1578,
        "modifierName": {
         "argumentTypes": null,
         "id": 1576,
         "name": "stateFinalized",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 492,
         "src": "25920:14:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "25920:27:2"
       }
      ],
      "name": "getFinalAnswerIfMatches",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1575,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1566,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1628,
         "src": "25796:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1565,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "25796:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1568,
         "name": "content_hash",
         "nodeType": "VariableDeclaration",
         "scope": 1628,
         "src": "25826:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1567,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "25826:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1570,
         "name": "arbitrator",
         "nodeType": "VariableDeclaration",
         "scope": 1628,
         "src": "25848:18:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1569,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "25848:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1572,
         "name": "min_timeout",
         "nodeType": "VariableDeclaration",
         "scope": 1628,
         "src": "25868:18:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 1571,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "25868:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1574,
         "name": "min_bond",
         "nodeType": "VariableDeclaration",
         "scope": 1628,
         "src": "25888:16:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1573,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "25888:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "25786:124:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1581,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1580,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 1628,
         "src": "25975:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1579,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "25975:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "25974:9:2"
      },
      "scope": 2322,
      "src": "25754:657:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1828,
       "nodeType": "Block",
       "src": "27923:2585:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 1652,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "id": 1649,
              "name": "history_hashes",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1633,
              "src": "27942:14:2",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
               "typeString": "bytes32[] memory"
              }
             },
             "id": 1650,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "length",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "27942:21:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 1651,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "27966:1:2",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "27942:25:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "6174206c65617374206f6e6520686973746f7279206861736820656e747279206d7573742062652070726f7669646564",
            "id": 1653,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "27969:50:2",
            "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": 1648,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "27934:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1654,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "27934:86:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1655,
         "nodeType": "ExpressionStatement",
         "src": "27934:86:2"
        },
        {
         "assignments": [
          1657
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1657,
           "name": "payee",
           "nodeType": "VariableDeclaration",
           "scope": 1829,
           "src": "28111:13:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           },
           "typeName": {
            "id": 1656,
            "name": "address",
            "nodeType": "ElementaryTypeName",
            "src": "28111:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1662,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1658,
            "name": "question_claims",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 299,
            "src": "28127:15:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$280_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
            }
           },
           "id": 1660,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1659,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1630,
            "src": "28143:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "28127:28:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Claim_$280_storage",
            "typeString": "struct RealitioERC20.Claim storage ref"
           }
          },
          "id": 1661,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "payee",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 275,
          "src": "28127:34:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "28111:50:2"
        },
        {
         "assignments": [
          1664
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1664,
           "name": "last_bond",
           "nodeType": "VariableDeclaration",
           "scope": 1829,
           "src": "28172:17:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 1663,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "28172:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1669,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1665,
            "name": "question_claims",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 299,
            "src": "28192:15:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$280_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
            }
           },
           "id": 1667,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1666,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1630,
            "src": "28208:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "28192:28:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Claim_$280_storage",
            "typeString": "struct RealitioERC20.Claim storage ref"
           }
          },
          "id": 1668,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "last_bond",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 277,
          "src": "28192:38:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "28172:58:2"
        },
        {
         "assignments": [
          1671
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1671,
           "name": "queued_funds",
           "nodeType": "VariableDeclaration",
           "scope": 1829,
           "src": "28241:20:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 1670,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "28241:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1676,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1672,
            "name": "question_claims",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 299,
            "src": "28264:15:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$280_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
            }
           },
           "id": 1674,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1673,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1630,
            "src": "28280:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "28264:28:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Claim_$280_storage",
            "typeString": "struct RealitioERC20.Claim storage ref"
           }
          },
          "id": 1675,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "queued_funds",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 279,
          "src": "28264:41:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "28241:64:2"
        },
        {
         "assignments": [
          1678
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1678,
           "name": "last_history_hash",
           "nodeType": "VariableDeclaration",
           "scope": 1829,
           "src": "28526:25:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1677,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "28526:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1683,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1679,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "28554:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 1681,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1680,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1630,
            "src": "28564:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "28554:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 1682,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "history_hash",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 263,
          "src": "28554:35:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "28526:63:2"
        },
        {
         "assignments": [
          1685
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1685,
           "name": "best_answer",
           "nodeType": "VariableDeclaration",
           "scope": 1829,
           "src": "28600:19:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1684,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "28600:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1690,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1686,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "28622:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 1688,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1687,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1630,
            "src": "28632:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "28622:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 1689,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "best_answer",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 261,
          "src": "28622:34:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "28600:56:2"
        },
        {
         "assignments": [],
         "declarations": [
          {
           "constant": false,
           "id": 1692,
           "name": "i",
           "nodeType": "VariableDeclaration",
           "scope": 1829,
           "src": "28667:9:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 1691,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "28667:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1693,
         "initialValue": null,
         "nodeType": "VariableDeclarationStatement",
         "src": "28667:9:2"
        },
        {
         "body": {
          "id": 1763,
          "nodeType": "Block",
          "src": "28730:702:2",
          "statements": [
           {
            "assignments": [
             1706
            ],
            "declarations": [
             {
              "constant": false,
              "id": 1706,
              "name": "is_commitment",
              "nodeType": "VariableDeclaration",
              "scope": 1829,
              "src": "28864:18:2",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
               "typeIdentifier": "t_bool",
               "typeString": "bool"
              },
              "typeName": {
               "id": 1705,
               "name": "bool",
               "nodeType": "ElementaryTypeName",
               "src": "28864:4:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 1722,
            "initialValue": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1708,
               "name": "last_history_hash",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1678,
               "src": "28913:17:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1709,
                "name": "history_hashes",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1633,
                "src": "28932:14:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                 "typeString": "bytes32[] memory"
                }
               },
               "id": 1711,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1710,
                "name": "i",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1692,
                "src": "28947:1:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "28932:17:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1712,
                "name": "answers",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1642,
                "src": "28951:7:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                 "typeString": "bytes32[] memory"
                }
               },
               "id": 1714,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1713,
                "name": "i",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1692,
                "src": "28959:1:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "28951:10:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1715,
                "name": "bonds",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1639,
                "src": "28963:5:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                 "typeString": "uint256[] memory"
                }
               },
               "id": 1717,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1716,
                "name": "i",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1692,
                "src": "28969:1:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "28963:8:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1718,
                "name": "addrs",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1636,
                "src": "28973:5:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                 "typeString": "address[] memory"
                }
               },
               "id": 1720,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1719,
                "name": "i",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1692,
                "src": "28979:1:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "28973:8:2",
               "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": 1707,
              "name": "_verifyHistoryInputOrRevert",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1908,
              "src": "28885:27:2",
              "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": 1721,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "28885:97:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "28864:118:2"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1728,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "id": 1723,
              "name": "queued_funds",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1671,
              "src": "29009:12:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 1726,
                "name": "last_bond",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1664,
                "src": "29041:9:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "expression": {
                "argumentTypes": null,
                "id": 1724,
                "name": "queued_funds",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1671,
                "src": "29024:12:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 1725,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "lValueRequested": false,
               "memberName": "add",
               "nodeType": "MemberAccess",
               "referencedDeclaration": 2419,
               "src": "29024:16:2",
               "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": 1727,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "29024:27:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "29009:42:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1729,
            "nodeType": "ExpressionStatement",
            "src": "29009:42:2"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1749,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "components": [
               {
                "argumentTypes": null,
                "id": 1730,
                "name": "queued_funds",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1671,
                "src": "29067:12:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               {
                "argumentTypes": null,
                "id": 1731,
                "name": "payee",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1657,
                "src": "29081:5:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               }
              ],
              "id": 1732,
              "isConstant": false,
              "isInlineArray": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "nodeType": "TupleExpression",
              "src": "29066:21:2",
              "typeDescriptions": {
               "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
               "typeString": "tuple(uint256,address)"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 1734,
                "name": "question_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1630,
                "src": "29127:11:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               {
                "argumentTypes": null,
                "id": 1735,
                "name": "best_answer",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1685,
                "src": "29140:11:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               {
                "argumentTypes": null,
                "id": 1736,
                "name": "queued_funds",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1671,
                "src": "29153:12:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               {
                "argumentTypes": null,
                "id": 1737,
                "name": "payee",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1657,
                "src": "29167:5:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               },
               {
                "argumentTypes": null,
                "baseExpression": {
                 "argumentTypes": null,
                 "id": 1738,
                 "name": "addrs",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1636,
                 "src": "29191:5:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                  "typeString": "address[] memory"
                 }
                },
                "id": 1740,
                "indexExpression": {
                 "argumentTypes": null,
                 "id": 1739,
                 "name": "i",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1692,
                 "src": "29197:1:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "IndexAccess",
                "src": "29191:8:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               },
               {
                "argumentTypes": null,
                "baseExpression": {
                 "argumentTypes": null,
                 "id": 1741,
                 "name": "bonds",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1639,
                 "src": "29201:5:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                  "typeString": "uint256[] memory"
                 }
                },
                "id": 1743,
                "indexExpression": {
                 "argumentTypes": null,
                 "id": 1742,
                 "name": "i",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1692,
                 "src": "29207:1:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "IndexAccess",
                "src": "29201:8:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               {
                "argumentTypes": null,
                "baseExpression": {
                 "argumentTypes": null,
                 "id": 1744,
                 "name": "answers",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1642,
                 "src": "29211:7:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                  "typeString": "bytes32[] memory"
                 }
                },
                "id": 1746,
                "indexExpression": {
                 "argumentTypes": null,
                 "id": 1745,
                 "name": "i",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1692,
                 "src": "29219:1:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "IndexAccess",
                "src": "29211:10:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               {
                "argumentTypes": null,
                "id": 1747,
                "name": "is_commitment",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1706,
                "src": "29223:13:2",
                "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": 1733,
               "name": "_processHistoryItem",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2035,
               "src": "29090:19:2",
               "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": 1748,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "29090:147:2",
              "typeDescriptions": {
               "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
               "typeString": "tuple(uint256,address)"
              }
             },
             "src": "29066:171:2",
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 1750,
            "nodeType": "ExpressionStatement",
            "src": "29066:171:2"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1755,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "id": 1751,
              "name": "last_bond",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1664,
              "src": "29349:9:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1752,
               "name": "bonds",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1639,
               "src": "29361:5:2",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                "typeString": "uint256[] memory"
               }
              },
              "id": 1754,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1753,
               "name": "i",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1692,
               "src": "29367:1:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "29361:8:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "29349:20:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1756,
            "nodeType": "ExpressionStatement",
            "src": "29349:20:2"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1761,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "id": 1757,
              "name": "last_history_hash",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1678,
              "src": "29383:17:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1758,
               "name": "history_hashes",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1633,
               "src": "29403:14:2",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                "typeString": "bytes32[] memory"
               }
              },
              "id": 1760,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1759,
               "name": "i",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1692,
               "src": "29418:1:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "29403:17:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             "src": "29383:37:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "id": 1762,
            "nodeType": "ExpressionStatement",
            "src": "29383:37:2"
           }
          ]
         },
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          },
          "id": 1701,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 1698,
           "name": "i",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1692,
           "src": "28698:1:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "<",
          "rightExpression": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "id": 1699,
            "name": "history_hashes",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1633,
            "src": "28702:14:2",
            "typeDescriptions": {
             "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
             "typeString": "bytes32[] memory"
            }
           },
           "id": 1700,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "length",
           "nodeType": "MemberAccess",
           "referencedDeclaration": null,
           "src": "28702:21:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "28698:25:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "id": 1764,
         "initializationExpression": {
          "expression": {
           "argumentTypes": null,
           "id": 1696,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "leftHandSide": {
            "argumentTypes": null,
            "id": 1694,
            "name": "i",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1692,
            "src": "28691:1:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "nodeType": "Assignment",
           "operator": "=",
           "rightHandSide": {
            "argumentTypes": null,
            "hexValue": "30",
            "id": 1695,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "number",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "28695:1:2",
            "subdenomination": null,
            "typeDescriptions": {
             "typeIdentifier": "t_rational_0_by_1",
             "typeString": "int_const 0"
            },
            "value": "0"
           },
           "src": "28691:5:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 1697,
          "nodeType": "ExpressionStatement",
          "src": "28691:5:2"
         },
         "loopExpression": {
          "expression": {
           "argumentTypes": null,
           "id": 1703,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "UnaryOperation",
           "operator": "++",
           "prefix": false,
           "src": "28725:3:2",
           "subExpression": {
            "argumentTypes": null,
            "id": 1702,
            "name": "i",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1692,
            "src": "28725:1:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 1704,
          "nodeType": "ExpressionStatement",
          "src": "28725:3:2"
         },
         "nodeType": "ForStatement",
         "src": "28686:746:2"
        },
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          },
          "id": 1767,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 1765,
           "name": "last_history_hash",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1678,
           "src": "29447:17:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "!=",
          "rightExpression": {
           "argumentTypes": null,
           "id": 1766,
           "name": "NULL_HASH",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 140,
           "src": "29468:9:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "29447:30:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": {
          "id": 1819,
          "nodeType": "Block",
          "src": "30222:213:2",
          "statements": [
           {
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1806,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1630,
               "src": "30327:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 1807,
               "name": "payee",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1657,
               "src": "30340:5:2",
               "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
               }
              },
              {
               "argumentTypes": null,
               "arguments": [
                {
                 "argumentTypes": null,
                 "id": 1810,
                 "name": "last_bond",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1664,
                 "src": "30364:9:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                }
               ],
               "expression": {
                "argumentTypes": [
                 {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                ],
                "expression": {
                 "argumentTypes": null,
                 "id": 1808,
                 "name": "queued_funds",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1671,
                 "src": "30347:12:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "id": 1809,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "memberName": "add",
                "nodeType": "MemberAccess",
                "referencedDeclaration": 2419,
                "src": "30347:16:2",
                "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": 1811,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "kind": "functionCall",
               "lValueRequested": false,
               "names": [],
               "nodeType": "FunctionCall",
               "src": "30347:27:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               },
               {
                "typeIdentifier": "t_address",
                "typeString": "address"
               },
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 1805,
              "name": "_payPayee",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1856,
              "src": "30317:9:2",
              "typeDescriptions": {
               "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
               "typeString": "function (bytes32,address,uint256)"
              }
             },
             "id": 1812,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "30317:58:2",
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 1813,
            "nodeType": "ExpressionStatement",
            "src": "30317:58:2"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1817,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "UnaryOperation",
             "operator": "delete",
             "prefix": true,
             "src": "30389:35:2",
             "subExpression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1814,
               "name": "question_claims",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 299,
               "src": "30396:15:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$280_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
               }
              },
              "id": 1816,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1815,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1630,
               "src": "30412:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "nodeType": "IndexAccess",
              "src": "30396:28:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Claim_$280_storage",
               "typeString": "struct RealitioERC20.Claim storage ref"
              }
             },
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 1818,
            "nodeType": "ExpressionStatement",
            "src": "30389:35:2"
           }
          ]
         },
         "id": 1820,
         "nodeType": "IfStatement",
         "src": "29443:992:2",
         "trueBody": {
          "id": 1804,
          "nodeType": "Block",
          "src": "29479:737:2",
          "statements": [
           {
            "condition": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             },
             "id": 1770,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 1768,
              "name": "payee",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1657,
              "src": "29882:5:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "!=",
             "rightExpression": {
              "argumentTypes": null,
              "id": 1769,
              "name": "NULL_ADDRESS",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 135,
              "src": "29891:12:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "src": "29882:21:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "falseBody": null,
            "id": 1782,
            "nodeType": "IfStatement",
            "src": "29878:137:2",
            "trueBody": {
             "id": 1781,
             "nodeType": "Block",
             "src": "29905:110:2",
             "statements": [
              {
               "expression": {
                "argumentTypes": null,
                "arguments": [
                 {
                  "argumentTypes": null,
                  "id": 1772,
                  "name": "question_id",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1630,
                  "src": "29933:11:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_bytes32",
                   "typeString": "bytes32"
                  }
                 },
                 {
                  "argumentTypes": null,
                  "id": 1773,
                  "name": "payee",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1657,
                  "src": "29946:5:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_address",
                   "typeString": "address"
                  }
                 },
                 {
                  "argumentTypes": null,
                  "id": 1774,
                  "name": "queued_funds",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1671,
                  "src": "29953:12:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 }
                ],
                "expression": {
                 "argumentTypes": [
                  {
                   "typeIdentifier": "t_bytes32",
                   "typeString": "bytes32"
                  },
                  {
                   "typeIdentifier": "t_address",
                   "typeString": "address"
                  },
                  {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 ],
                 "id": 1771,
                 "name": "_payPayee",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1856,
                 "src": "29923:9:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                  "typeString": "function (bytes32,address,uint256)"
                 }
                },
                "id": 1775,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "kind": "functionCall",
                "lValueRequested": false,
                "names": [],
                "nodeType": "FunctionCall",
                "src": "29923:43:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_tuple$__$",
                 "typeString": "tuple()"
                }
               },
               "id": 1776,
               "nodeType": "ExpressionStatement",
               "src": "29923:43:2"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 1779,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "id": 1777,
                 "name": "queued_funds",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1671,
                 "src": "29984:12:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "hexValue": "30",
                 "id": 1778,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": true,
                 "kind": "number",
                 "lValueRequested": false,
                 "nodeType": "Literal",
                 "src": "29999:1:2",
                 "subdenomination": null,
                 "typeDescriptions": {
                  "typeIdentifier": "t_rational_0_by_1",
                  "typeString": "int_const 0"
                 },
                 "value": "0"
                },
                "src": "29984:16:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 1780,
               "nodeType": "ExpressionStatement",
               "src": "29984:16:2"
              }
             ]
            }
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1788,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1783,
                "name": "question_claims",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 299,
                "src": "30029:15:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$280_storage_$",
                 "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                }
               },
               "id": 1785,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1784,
                "name": "question_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1630,
                "src": "30045:11:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "30029:28:2",
               "typeDescriptions": {
                "typeIdentifier": "t_struct$_Claim_$280_storage",
                "typeString": "struct RealitioERC20.Claim storage ref"
               }
              },
              "id": 1786,
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "memberName": "payee",
              "nodeType": "MemberAccess",
              "referencedDeclaration": 275,
              "src": "30029:34:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "id": 1787,
              "name": "payee",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1657,
              "src": "30066:5:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "src": "30029:42:2",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "id": 1789,
            "nodeType": "ExpressionStatement",
            "src": "30029:42:2"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1795,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1790,
                "name": "question_claims",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 299,
                "src": "30085:15:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$280_storage_$",
                 "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                }
               },
               "id": 1792,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1791,
                "name": "question_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1630,
                "src": "30101:11:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "30085:28:2",
               "typeDescriptions": {
                "typeIdentifier": "t_struct$_Claim_$280_storage",
                "typeString": "struct RealitioERC20.Claim storage ref"
               }
              },
              "id": 1793,
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "memberName": "last_bond",
              "nodeType": "MemberAccess",
              "referencedDeclaration": 277,
              "src": "30085:38:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "id": 1794,
              "name": "last_bond",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1664,
              "src": "30126:9:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "30085:50:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1796,
            "nodeType": "ExpressionStatement",
            "src": "30085:50:2"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1802,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1797,
                "name": "question_claims",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 299,
                "src": "30149:15:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$280_storage_$",
                 "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                }
               },
               "id": 1799,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1798,
                "name": "question_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1630,
                "src": "30165:11:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "30149:28:2",
               "typeDescriptions": {
                "typeIdentifier": "t_struct$_Claim_$280_storage",
                "typeString": "struct RealitioERC20.Claim storage ref"
               }
              },
              "id": 1800,
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "memberName": "queued_funds",
              "nodeType": "MemberAccess",
              "referencedDeclaration": 279,
              "src": "30149:41:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "id": 1801,
              "name": "queued_funds",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1671,
              "src": "30193:12:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "30149:56:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1803,
            "nodeType": "ExpressionStatement",
            "src": "30149:56:2"
           }
          ]
         }
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1826,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1821,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "30445:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1823,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1822,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1630,
             "src": "30455:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "30445:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1824,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "history_hash",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 263,
           "src": "30445:35:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1825,
           "name": "last_history_hash",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1678,
           "src": "30483:17:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "30445:55:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "id": 1827,
         "nodeType": "ExpressionStatement",
         "src": "30445:55:2"
        }
       ]
      },
      "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": 1829,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1645,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1630,
          "src": "27899:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1646,
        "modifierName": {
         "argumentTypes": null,
         "id": 1644,
         "name": "stateFinalized",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 492,
         "src": "27884:14:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "27884:27:2"
       }
      ],
      "name": "claimWinnings",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1643,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1630,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1829,
         "src": "27761:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1629,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "27761:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1633,
         "name": "history_hashes",
         "nodeType": "VariableDeclaration",
         "scope": 1829,
         "src": "27791:24:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
          "typeString": "bytes32[]"
         },
         "typeName": {
          "baseType": {
           "id": 1631,
           "name": "bytes32",
           "nodeType": "ElementaryTypeName",
           "src": "27791:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "id": 1632,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "27791:9:2",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
           "typeString": "bytes32[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1636,
         "name": "addrs",
         "nodeType": "VariableDeclaration",
         "scope": 1829,
         "src": "27817:15:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
          "typeString": "address[]"
         },
         "typeName": {
          "baseType": {
           "id": 1634,
           "name": "address",
           "nodeType": "ElementaryTypeName",
           "src": "27817:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "id": 1635,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "27817:9:2",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
           "typeString": "address[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1639,
         "name": "bonds",
         "nodeType": "VariableDeclaration",
         "scope": 1829,
         "src": "27834:15:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
          "typeString": "uint256[]"
         },
         "typeName": {
          "baseType": {
           "id": 1637,
           "name": "uint256",
           "nodeType": "ElementaryTypeName",
           "src": "27834:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 1638,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "27834:9:2",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
           "typeString": "uint256[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1642,
         "name": "answers",
         "nodeType": "VariableDeclaration",
         "scope": 1829,
         "src": "27851:17:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
          "typeString": "bytes32[]"
         },
         "typeName": {
          "baseType": {
           "id": 1640,
           "name": "bytes32",
           "nodeType": "ElementaryTypeName",
           "src": "27851:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "id": 1641,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "27851:9:2",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
           "typeString": "bytes32[]"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "27751:123:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1647,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "27923:0:2"
      },
      "scope": 2322,
      "src": "27729:2779:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 1855,
       "nodeType": "Block",
       "src": "30598:113:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "id": 1847,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1838,
            "name": "balanceOf",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 8,
            "src": "30608:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
             "typeString": "mapping(address => uint256)"
            }
           },
           "id": 1840,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1839,
            "name": "payee",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1833,
            "src": "30618:5:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "nodeType": "IndexAccess",
           "src": "30608:16:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "id": 1845,
             "name": "value",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1835,
             "src": "30648:5:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            ],
            "expression": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 1841,
              "name": "balanceOf",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 8,
              "src": "30627:9:2",
              "typeDescriptions": {
               "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
               "typeString": "mapping(address => uint256)"
              }
             },
             "id": 1843,
             "indexExpression": {
              "argumentTypes": null,
              "id": 1842,
              "name": "payee",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1833,
              "src": "30637:5:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "30627:16:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1844,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "add",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 2419,
            "src": "30627:20:2",
            "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": 1846,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "30627:27:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "30608:46:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 1848,
         "nodeType": "ExpressionStatement",
         "src": "30608:46:2"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1850,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1831,
            "src": "30678:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1851,
            "name": "payee",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1833,
            "src": "30691:5:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 1852,
            "name": "value",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1835,
            "src": "30698:5:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           ],
           "id": 1849,
           "name": "LogClaim",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 245,
           "src": "30669:8:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
            "typeString": "function (bytes32,address,uint256)"
           }
          },
          "id": 1853,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "30669:35:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1854,
         "nodeType": "EmitStatement",
         "src": "30664:40:2"
        }
       ]
      },
      "documentation": null,
      "id": 1856,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "_payPayee",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1836,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1831,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1856,
         "src": "30533:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1830,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "30533:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1833,
         "name": "payee",
         "nodeType": "VariableDeclaration",
         "scope": 1856,
         "src": "30554:13:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1832,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "30554:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1835,
         "name": "value",
         "nodeType": "VariableDeclaration",
         "scope": 1856,
         "src": "30569:13:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1834,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "30569:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "30532:51:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1837,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "30598:0:2"
      },
      "scope": 2322,
      "src": "30514:197:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 1907,
       "nodeType": "Block",
       "src": "30902:364:2",
       "statements": [
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          },
          "id": 1882,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 1871,
           "name": "last_history_hash",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1858,
           "src": "30916:17:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "==",
          "rightExpression": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1875,
               "name": "history_hash",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1860,
               "src": "30964:12:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 1876,
               "name": "answer",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1862,
               "src": "30978:6:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 1877,
               "name": "bond",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1864,
               "src": "30986:4:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              {
               "argumentTypes": null,
               "id": 1878,
               "name": "addr",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1866,
               "src": "30992:4:2",
               "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
               }
              },
              {
               "argumentTypes": null,
               "hexValue": "74727565",
               "id": 1879,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "kind": "bool",
               "lValueRequested": false,
               "nodeType": "Literal",
               "src": "30998:4:2",
               "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": 1873,
               "name": "abi",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2449,
               "src": "30947:3:2",
               "typeDescriptions": {
                "typeIdentifier": "t_magic_abi",
                "typeString": "abi"
               }
              },
              "id": 1874,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "memberName": "encodePacked",
              "nodeType": "MemberAccess",
              "referencedDeclaration": null,
              "src": "30947:16:2",
              "typeDescriptions": {
               "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
               "typeString": "function () pure returns (bytes memory)"
              }
             },
             "id": 1880,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "30947:56:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes_memory_ptr",
              "typeString": "bytes memory"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_bytes_memory_ptr",
              "typeString": "bytes memory"
             }
            ],
            "id": 1872,
            "name": "keccak256",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2456,
            "src": "30937:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
             "typeString": "function () pure returns (bytes32)"
            }
           },
           "id": 1881,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "30937:67:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "30916:88:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 1886,
         "nodeType": "IfStatement",
         "src": "30912:131:2",
         "trueBody": {
          "id": 1885,
          "nodeType": "Block",
          "src": "31007:36:2",
          "statements": [
           {
            "expression": {
             "argumentTypes": null,
             "hexValue": "74727565",
             "id": 1883,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "bool",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "31028:4:2",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             },
             "value": "true"
            },
            "functionReturnParameters": 1870,
            "id": 1884,
            "nodeType": "Return",
            "src": "31021:11:2"
           }
          ]
         }
        },
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          },
          "id": 1898,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 1887,
           "name": "last_history_hash",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1858,
           "src": "31056:17:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "==",
          "rightExpression": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1891,
               "name": "history_hash",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1860,
               "src": "31104:12:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 1892,
               "name": "answer",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1862,
               "src": "31118:6:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 1893,
               "name": "bond",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1864,
               "src": "31126:4:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              {
               "argumentTypes": null,
               "id": 1894,
               "name": "addr",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1866,
               "src": "31132:4:2",
               "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
               }
              },
              {
               "argumentTypes": null,
               "hexValue": "66616c7365",
               "id": 1895,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "kind": "bool",
               "lValueRequested": false,
               "nodeType": "Literal",
               "src": "31138:5:2",
               "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": 1889,
               "name": "abi",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2449,
               "src": "31087:3:2",
               "typeDescriptions": {
                "typeIdentifier": "t_magic_abi",
                "typeString": "abi"
               }
              },
              "id": 1890,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "memberName": "encodePacked",
              "nodeType": "MemberAccess",
              "referencedDeclaration": null,
              "src": "31087:16:2",
              "typeDescriptions": {
               "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
               "typeString": "function () pure returns (bytes memory)"
              }
             },
             "id": 1896,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "31087:57:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes_memory_ptr",
              "typeString": "bytes memory"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_bytes_memory_ptr",
              "typeString": "bytes memory"
             }
            ],
            "id": 1888,
            "name": "keccak256",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2456,
            "src": "31077:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
             "typeString": "function () pure returns (bytes32)"
            }
           },
           "id": 1897,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "31077:68:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "31056:89:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 1902,
         "nodeType": "IfStatement",
         "src": "31052:133:2",
         "trueBody": {
          "id": 1901,
          "nodeType": "Block",
          "src": "31148:37:2",
          "statements": [
           {
            "expression": {
             "argumentTypes": null,
             "hexValue": "66616c7365",
             "id": 1899,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "bool",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "31169:5:2",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             },
             "value": "false"
            },
            "functionReturnParameters": 1870,
            "id": 1900,
            "nodeType": "Return",
            "src": "31162:12:2"
           }
          ]
         }
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "hexValue": "486973746f727920696e7075742070726f766964656420646964206e6f74206d61746368207468652065787065637465642068617368",
            "id": 1904,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "31202:56:2",
            "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": 1903,
           "name": "revert",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2467,
            2468
           ],
           "referencedDeclaration": 2468,
           "src": "31195:6:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (string memory) pure"
           }
          },
          "id": 1905,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "31195:64:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1906,
         "nodeType": "ExpressionStatement",
         "src": "31195:64:2"
        }
       ]
      },
      "documentation": null,
      "id": 1908,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "_verifyHistoryInputOrRevert",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1867,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1858,
         "name": "last_history_hash",
         "nodeType": "VariableDeclaration",
         "scope": 1908,
         "src": "30763:25:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1857,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "30763:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1860,
         "name": "history_hash",
         "nodeType": "VariableDeclaration",
         "scope": 1908,
         "src": "30798:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1859,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "30798:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1862,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 1908,
         "src": "30820:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1861,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "30820:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1864,
         "name": "bond",
         "nodeType": "VariableDeclaration",
         "scope": 1908,
         "src": "30836:12:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1863,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "30836:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1866,
         "name": "addr",
         "nodeType": "VariableDeclaration",
         "scope": 1908,
         "src": "30850:12:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1865,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "30850:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "30753:115:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1870,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1869,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 1908,
         "src": "30896:4:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         },
         "typeName": {
          "id": 1868,
          "name": "bool",
          "nodeType": "ElementaryTypeName",
          "src": "30896:4:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "30895:6:2"
      },
      "scope": 2322,
      "src": "30717:549:2",
      "stateMutability": "pure",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 2034,
       "nodeType": "Block",
       "src": "31516:2168:2",
       "statements": [
        {
         "condition": {
          "argumentTypes": null,
          "id": 1931,
          "name": "is_commitment",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1924,
          "src": "31715:13:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 1966,
         "nodeType": "IfStatement",
         "src": "31711:482:2",
         "trueBody": {
          "id": 1965,
          "nodeType": "Block",
          "src": "31730:463:2",
          "statements": [
           {
            "assignments": [
             1933
            ],
            "declarations": [
             {
              "constant": false,
              "id": 1933,
              "name": "commitment_id",
              "nodeType": "VariableDeclaration",
              "scope": 2035,
              "src": "31744:21:2",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              },
              "typeName": {
               "id": 1932,
               "name": "bytes32",
               "nodeType": "ElementaryTypeName",
               "src": "31744:7:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 1935,
            "initialValue": {
             "argumentTypes": null,
             "id": 1934,
             "name": "answer",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1922,
             "src": "31768:6:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "31744:30:2"
           },
           {
            "condition": {
             "argumentTypes": null,
             "id": 1940,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "UnaryOperation",
             "operator": "!",
             "prefix": true,
             "src": "31889:39:2",
             "subExpression": {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1936,
                "name": "commitments",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 303,
                "src": "31890:11:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$273_storage_$",
                 "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                }
               },
               "id": 1938,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1937,
                "name": "commitment_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1933,
                "src": "31902:13:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "31890:26:2",
               "typeDescriptions": {
                "typeIdentifier": "t_struct$_Commitment_$273_storage",
                "typeString": "struct RealitioERC20.Commitment storage ref"
               }
              },
              "id": 1939,
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "memberName": "is_revealed",
              "nodeType": "MemberAccess",
              "referencedDeclaration": 270,
              "src": "31890:38:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bool",
               "typeString": "bool"
              }
             },
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "falseBody": {
             "id": 1963,
             "nodeType": "Block",
             "src": "32048:135:2",
             "statements": [
              {
               "expression": {
                "argumentTypes": null,
                "id": 1956,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "id": 1951,
                 "name": "answer",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1922,
                 "src": "32066:6:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "expression": {
                  "argumentTypes": null,
                  "baseExpression": {
                   "argumentTypes": null,
                   "id": 1952,
                   "name": "commitments",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 303,
                   "src": "32075:11:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$273_storage_$",
                    "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                   }
                  },
                  "id": 1954,
                  "indexExpression": {
                   "argumentTypes": null,
                   "id": 1953,
                   "name": "commitment_id",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 1933,
                   "src": "32087:13:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                   }
                  },
                  "isConstant": false,
                  "isLValue": true,
                  "isPure": false,
                  "lValueRequested": false,
                  "nodeType": "IndexAccess",
                  "src": "32075:26:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_struct$_Commitment_$273_storage",
                   "typeString": "struct RealitioERC20.Commitment storage ref"
                  }
                 },
                 "id": 1955,
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "memberName": "revealed_answer",
                 "nodeType": "MemberAccess",
                 "referencedDeclaration": 272,
                 "src": "32075:42:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "src": "32066:51:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 1957,
               "nodeType": "ExpressionStatement",
               "src": "32066:51:2"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 1961,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "UnaryOperation",
                "operator": "delete",
                "prefix": true,
                "src": "32135:33:2",
                "subExpression": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 1958,
                  "name": "commitments",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 303,
                  "src": "32142:11:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$273_storage_$",
                   "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                  }
                 },
                 "id": 1960,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 1959,
                  "name": "commitment_id",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1933,
                  "src": "32154:13:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_bytes32",
                   "typeString": "bytes32"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "32142:26:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Commitment_$273_storage",
                  "typeString": "struct RealitioERC20.Commitment storage ref"
                 }
                },
                "typeDescriptions": {
                 "typeIdentifier": "t_tuple$__$",
                 "typeString": "tuple()"
                }
               },
               "id": 1962,
               "nodeType": "ExpressionStatement",
               "src": "32135:33:2"
              }
             ]
            },
            "id": 1964,
            "nodeType": "IfStatement",
            "src": "31885:298:2",
            "trueBody": {
             "id": 1950,
             "nodeType": "Block",
             "src": "31930:112:2",
             "statements": [
              {
               "expression": {
                "argumentTypes": null,
                "id": 1944,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "UnaryOperation",
                "operator": "delete",
                "prefix": true,
                "src": "31948:33:2",
                "subExpression": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 1941,
                  "name": "commitments",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 303,
                  "src": "31955:11:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$273_storage_$",
                   "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                  }
                 },
                 "id": 1943,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 1942,
                  "name": "commitment_id",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1933,
                  "src": "31967:13:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_bytes32",
                   "typeString": "bytes32"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "31955:26:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Commitment_$273_storage",
                  "typeString": "struct RealitioERC20.Commitment storage ref"
                 }
                },
                "typeDescriptions": {
                 "typeIdentifier": "t_tuple$__$",
                 "typeString": "tuple()"
                }
               },
               "id": 1945,
               "nodeType": "ExpressionStatement",
               "src": "31948:33:2"
              },
              {
               "expression": {
                "argumentTypes": null,
                "components": [
                 {
                  "argumentTypes": null,
                  "id": 1946,
                  "name": "queued_funds",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1914,
                  "src": "32007:12:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 {
                  "argumentTypes": null,
                  "id": 1947,
                  "name": "payee",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1916,
                  "src": "32021:5:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_address",
                   "typeString": "address"
                  }
                 }
                ],
                "id": 1948,
                "isConstant": false,
                "isInlineArray": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "TupleExpression",
                "src": "32006:21:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                 "typeString": "tuple(uint256,address)"
                }
               },
               "functionReturnParameters": 1930,
               "id": 1949,
               "nodeType": "Return",
               "src": "31999:28:2"
              }
             ]
            }
           }
          ]
         }
        },
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          },
          "id": 1969,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 1967,
           "name": "answer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1922,
           "src": "32207:6:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "==",
          "rightExpression": {
           "argumentTypes": null,
           "id": 1968,
           "name": "best_answer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1912,
           "src": "32217:11:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "32207:21:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 2029,
         "nodeType": "IfStatement",
         "src": "32203:1435:2",
         "trueBody": {
          "id": 2028,
          "nodeType": "Block",
          "src": "32230:1408:2",
          "statements": [
           {
            "condition": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             },
             "id": 1972,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 1970,
              "name": "payee",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1916,
              "src": "32249:5:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "==",
             "rightExpression": {
              "argumentTypes": null,
              "id": 1971,
              "name": "NULL_ADDRESS",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 135,
              "src": "32258:12:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "src": "32249:21:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "falseBody": {
             "condition": {
              "argumentTypes": null,
              "commonType": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              },
              "id": 1997,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "leftExpression": {
               "argumentTypes": null,
               "id": 1995,
               "name": "addr",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1918,
               "src": "32588:4:2",
               "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
               }
              },
              "nodeType": "BinaryOperation",
              "operator": "!=",
              "rightExpression": {
               "argumentTypes": null,
               "id": 1996,
               "name": "payee",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1916,
               "src": "32596:5:2",
               "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
               }
              },
              "src": "32588:13:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bool",
               "typeString": "bool"
              }
             },
             "falseBody": null,
             "id": 2026,
             "nodeType": "IfStatement",
             "src": "32584:1043:2",
             "trueBody": {
              "id": 2025,
              "nodeType": "Block",
              "src": "32603:1024:2",
              "statements": [
               {
                "assignments": [
                 1999
                ],
                "declarations": [
                 {
                  "constant": false,
                  "id": 1999,
                  "name": "answer_takeover_fee",
                  "nodeType": "VariableDeclaration",
                  "scope": 2035,
                  "src": "33222:27:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  },
                  "typeName": {
                   "id": 1998,
                   "name": "uint256",
                   "nodeType": "ElementaryTypeName",
                   "src": "33222:7:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  },
                  "value": null,
                  "visibility": "internal"
                 }
                ],
                "id": 2007,
                "initialValue": {
                 "argumentTypes": null,
                 "condition": {
                  "argumentTypes": null,
                  "components": [
                   {
                    "argumentTypes": null,
                    "commonType": {
                     "typeIdentifier": "t_uint256",
                     "typeString": "uint256"
                    },
                    "id": 2002,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                     "argumentTypes": null,
                     "id": 2000,
                     "name": "queued_funds",
                     "nodeType": "Identifier",
                     "overloadedDeclarations": [],
                     "referencedDeclaration": 1914,
                     "src": "33253:12:2",
                     "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                     }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                     "argumentTypes": null,
                     "id": 2001,
                     "name": "bond",
                     "nodeType": "Identifier",
                     "overloadedDeclarations": [],
                     "referencedDeclaration": 1920,
                     "src": "33269:4:2",
                     "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                     }
                    },
                    "src": "33253:20:2",
                    "typeDescriptions": {
                     "typeIdentifier": "t_bool",
                     "typeString": "bool"
                    }
                   }
                  ],
                  "id": 2003,
                  "isConstant": false,
                  "isInlineArray": false,
                  "isLValue": false,
                  "isPure": false,
                  "lValueRequested": false,
                  "nodeType": "TupleExpression",
                  "src": "33252:22:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_bool",
                   "typeString": "bool"
                  }
                 },
                 "falseExpression": {
                  "argumentTypes": null,
                  "id": 2005,
                  "name": "queued_funds",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1914,
                  "src": "33284:12:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "id": 2006,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": false,
                 "lValueRequested": false,
                 "nodeType": "Conditional",
                 "src": "33252:44:2",
                 "trueExpression": {
                  "argumentTypes": null,
                  "id": 2004,
                  "name": "bond",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1920,
                  "src": "33277:4:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "nodeType": "VariableDeclarationStatement",
                "src": "33222:74:2"
               },
               {
                "expression": {
                 "argumentTypes": null,
                 "arguments": [
                  {
                   "argumentTypes": null,
                   "id": 2009,
                   "name": "question_id",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 1910,
                   "src": "33389:11:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                   }
                  },
                  {
                   "argumentTypes": null,
                   "id": 2010,
                   "name": "payee",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 1916,
                   "src": "33402:5:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                   }
                  },
                  {
                   "argumentTypes": null,
                   "arguments": [
                    {
                     "argumentTypes": null,
                     "id": 2013,
                     "name": "answer_takeover_fee",
                     "nodeType": "Identifier",
                     "overloadedDeclarations": [],
                     "referencedDeclaration": 1999,
                     "src": "33426:19:2",
                     "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                     }
                    }
                   ],
                   "expression": {
                    "argumentTypes": [
                     {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                     }
                    ],
                    "expression": {
                     "argumentTypes": null,
                     "id": 2011,
                     "name": "queued_funds",
                     "nodeType": "Identifier",
                     "overloadedDeclarations": [],
                     "referencedDeclaration": 1914,
                     "src": "33409:12:2",
                     "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                     }
                    },
                    "id": 2012,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "sub",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2395,
                    "src": "33409:16:2",
                    "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": 2014,
                   "isConstant": false,
                   "isLValue": false,
                   "isPure": false,
                   "kind": "functionCall",
                   "lValueRequested": false,
                   "names": [],
                   "nodeType": "FunctionCall",
                   "src": "33409:37:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  }
                 ],
                 "expression": {
                  "argumentTypes": [
                   {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                   },
                   {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                   },
                   {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  ],
                  "id": 2008,
                  "name": "_payPayee",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1856,
                  "src": "33379:9:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                   "typeString": "function (bytes32,address,uint256)"
                  }
                 },
                 "id": 2015,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": false,
                 "kind": "functionCall",
                 "lValueRequested": false,
                 "names": [],
                 "nodeType": "FunctionCall",
                 "src": "33379:68:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_tuple$__$",
                  "typeString": "tuple()"
                 }
                },
                "id": 2016,
                "nodeType": "ExpressionStatement",
                "src": "33379:68:2"
               },
               {
                "expression": {
                 "argumentTypes": null,
                 "id": 2019,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": false,
                 "lValueRequested": false,
                 "leftHandSide": {
                  "argumentTypes": null,
                  "id": 2017,
                  "name": "payee",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1916,
                  "src": "33547:5:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_address",
                   "typeString": "address"
                  }
                 },
                 "nodeType": "Assignment",
                 "operator": "=",
                 "rightHandSide": {
                  "argumentTypes": null,
                  "id": 2018,
                  "name": "addr",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1918,
                  "src": "33555:4:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_address",
                   "typeString": "address"
                  }
                 },
                 "src": "33547:12:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                 }
                },
                "id": 2020,
                "nodeType": "ExpressionStatement",
                "src": "33547:12:2"
               },
               {
                "expression": {
                 "argumentTypes": null,
                 "id": 2023,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": false,
                 "lValueRequested": false,
                 "leftHandSide": {
                  "argumentTypes": null,
                  "id": 2021,
                  "name": "queued_funds",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1914,
                  "src": "33577:12:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "nodeType": "Assignment",
                 "operator": "=",
                 "rightHandSide": {
                  "argumentTypes": null,
                  "id": 2022,
                  "name": "answer_takeover_fee",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1999,
                  "src": "33592:19:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "src": "33577:34:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "id": 2024,
                "nodeType": "ExpressionStatement",
                "src": "33577:34:2"
               }
              ]
             }
            },
            "id": 2027,
            "nodeType": "IfStatement",
            "src": "32245:1382:2",
            "trueBody": {
             "id": 1994,
             "nodeType": "Block",
             "src": "32272:306:2",
             "statements": [
              {
               "expression": {
                "argumentTypes": null,
                "id": 1975,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "id": 1973,
                 "name": "payee",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1916,
                 "src": "32419:5:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "id": 1974,
                 "name": "addr",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1918,
                 "src": "32427:4:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                 }
                },
                "src": "32419:12:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               },
               "id": 1976,
               "nodeType": "ExpressionStatement",
               "src": "32419:12:2"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 1985,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "id": 1977,
                 "name": "queued_funds",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1914,
                 "src": "32449:12:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "arguments": [
                  {
                   "argumentTypes": null,
                   "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                     "argumentTypes": null,
                     "id": 1980,
                     "name": "questions",
                     "nodeType": "Identifier",
                     "overloadedDeclarations": [],
                     "referencedDeclaration": 295,
                     "src": "32481:9:2",
                     "typeDescriptions": {
                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                      "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                     }
                    },
                    "id": 1982,
                    "indexExpression": {
                     "argumentTypes": null,
                     "id": 1981,
                     "name": "question_id",
                     "nodeType": "Identifier",
                     "overloadedDeclarations": [],
                     "referencedDeclaration": 1910,
                     "src": "32491:11:2",
                     "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                     }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "32481:22:2",
                    "typeDescriptions": {
                     "typeIdentifier": "t_struct$_Question_$266_storage",
                     "typeString": "struct RealitioERC20.Question storage ref"
                    }
                   },
                   "id": 1983,
                   "isConstant": false,
                   "isLValue": true,
                   "isPure": false,
                   "lValueRequested": false,
                   "memberName": "bounty",
                   "nodeType": "MemberAccess",
                   "referencedDeclaration": 259,
                   "src": "32481:29:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  }
                 ],
                 "expression": {
                  "argumentTypes": [
                   {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  ],
                  "expression": {
                   "argumentTypes": null,
                   "id": 1978,
                   "name": "queued_funds",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 1914,
                   "src": "32464:12:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  },
                  "id": 1979,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": false,
                  "lValueRequested": false,
                  "memberName": "add",
                  "nodeType": "MemberAccess",
                  "referencedDeclaration": 2419,
                  "src": "32464:16:2",
                  "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": 1984,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": false,
                 "kind": "functionCall",
                 "lValueRequested": false,
                 "names": [],
                 "nodeType": "FunctionCall",
                 "src": "32464:47:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "src": "32449:62:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 1986,
               "nodeType": "ExpressionStatement",
               "src": "32449:62:2"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 1992,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "expression": {
                  "argumentTypes": null,
                  "baseExpression": {
                   "argumentTypes": null,
                   "id": 1987,
                   "name": "questions",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 295,
                   "src": "32529:9:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                    "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                   }
                  },
                  "id": 1989,
                  "indexExpression": {
                   "argumentTypes": null,
                   "id": 1988,
                   "name": "question_id",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 1910,
                   "src": "32539:11:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                   }
                  },
                  "isConstant": false,
                  "isLValue": true,
                  "isPure": false,
                  "lValueRequested": false,
                  "nodeType": "IndexAccess",
                  "src": "32529:22:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_struct$_Question_$266_storage",
                   "typeString": "struct RealitioERC20.Question storage ref"
                  }
                 },
                 "id": 1990,
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "memberName": "bounty",
                 "nodeType": "MemberAccess",
                 "referencedDeclaration": 259,
                 "src": "32529:29:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "hexValue": "30",
                 "id": 1991,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": true,
                 "kind": "number",
                 "lValueRequested": false,
                 "nodeType": "Literal",
                 "src": "32561:1:2",
                 "subdenomination": null,
                 "typeDescriptions": {
                  "typeIdentifier": "t_rational_0_by_1",
                  "typeString": "int_const 0"
                 },
                 "value": "0"
                },
                "src": "32529:33:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 1993,
               "nodeType": "ExpressionStatement",
               "src": "32529:33:2"
              }
             ]
            }
           }
          ]
         }
        },
        {
         "expression": {
          "argumentTypes": null,
          "components": [
           {
            "argumentTypes": null,
            "id": 2030,
            "name": "queued_funds",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1914,
            "src": "33656:12:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 2031,
            "name": "payee",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1916,
            "src": "33670:5:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           }
          ],
          "id": 2032,
          "isConstant": false,
          "isInlineArray": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "nodeType": "TupleExpression",
          "src": "33655:21:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
           "typeString": "tuple(uint256,address)"
          }
         },
         "functionReturnParameters": 1930,
         "id": 2033,
         "nodeType": "Return",
         "src": "33648:28:2"
        }
       ]
      },
      "documentation": null,
      "id": 2035,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "_processHistoryItem",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1925,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1910,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2035,
         "src": "31310:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1909,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "31310:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1912,
         "name": "best_answer",
         "nodeType": "VariableDeclaration",
         "scope": 2035,
         "src": "31331:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1911,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "31331:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1914,
         "name": "queued_funds",
         "nodeType": "VariableDeclaration",
         "scope": 2035,
         "src": "31361:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1913,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "31361:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1916,
         "name": "payee",
         "nodeType": "VariableDeclaration",
         "scope": 2035,
         "src": "31383:13:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1915,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "31383:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1918,
         "name": "addr",
         "nodeType": "VariableDeclaration",
         "scope": 2035,
         "src": "31407:12:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1917,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "31407:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1920,
         "name": "bond",
         "nodeType": "VariableDeclaration",
         "scope": 2035,
         "src": "31421:12:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1919,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "31421:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1922,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 2035,
         "src": "31435:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1921,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "31435:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1924,
         "name": "is_commitment",
         "nodeType": "VariableDeclaration",
         "scope": 2035,
         "src": "31451:18:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         },
         "typeName": {
          "id": 1923,
          "name": "bool",
          "nodeType": "ElementaryTypeName",
          "src": "31451:4:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "31300:175:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1930,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1927,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2035,
         "src": "31498:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1926,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "31498:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1929,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2035,
         "src": "31507:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1928,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "31507:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "31497:18:2"
      },
      "scope": 2322,
      "src": "31272:2412:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 2190,
       "nodeType": "Block",
       "src": "34909:723:2",
       "statements": [
        {
         "assignments": [],
         "declarations": [
          {
           "constant": false,
           "id": 2059,
           "name": "qi",
           "nodeType": "VariableDeclaration",
           "scope": 2191,
           "src": "34928:10:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 2058,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "34928:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 2060,
         "initialValue": null,
         "nodeType": "VariableDeclarationStatement",
         "src": "34928:10:2"
        },
        {
         "assignments": [],
         "declarations": [
          {
           "constant": false,
           "id": 2062,
           "name": "i",
           "nodeType": "VariableDeclaration",
           "scope": 2191,
           "src": "34948:9:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 2061,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "34948:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 2063,
         "initialValue": null,
         "nodeType": "VariableDeclarationStatement",
         "src": "34948:9:2"
        },
        {
         "body": {
          "id": 2185,
          "nodeType": "Block",
          "src": "35012:594:2",
          "statements": [
           {
            "assignments": [
             2076
            ],
            "declarations": [
             {
              "constant": false,
              "id": 2076,
              "name": "qid",
              "nodeType": "VariableDeclaration",
              "scope": 2191,
              "src": "35026:11:2",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              },
              "typeName": {
               "id": 2075,
               "name": "bytes32",
               "nodeType": "ElementaryTypeName",
               "src": "35026:7:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2080,
            "initialValue": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 2077,
              "name": "question_ids",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2038,
              "src": "35040:12:2",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
               "typeString": "bytes32[] memory"
              }
             },
             "id": 2079,
             "indexExpression": {
              "argumentTypes": null,
              "id": 2078,
              "name": "qi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2059,
              "src": "35053:2:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "35040:16:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "35026:30:2"
           },
           {
            "assignments": [
             2082
            ],
            "declarations": [
             {
              "constant": false,
              "id": 2082,
              "name": "ln",
              "nodeType": "VariableDeclaration",
              "scope": 2191,
              "src": "35070:10:2",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              },
              "typeName": {
               "id": 2081,
               "name": "uint256",
               "nodeType": "ElementaryTypeName",
               "src": "35070:7:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2086,
            "initialValue": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 2083,
              "name": "lengths",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2041,
              "src": "35083:7:2",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
               "typeString": "uint256[] memory"
              }
             },
             "id": 2085,
             "indexExpression": {
              "argumentTypes": null,
              "id": 2084,
              "name": "qi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2059,
              "src": "35091:2:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "35083:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "35070:24:2"
           },
           {
            "assignments": [
             2090
            ],
            "declarations": [
             {
              "constant": false,
              "id": 2090,
              "name": "hh",
              "nodeType": "VariableDeclaration",
              "scope": 2191,
              "src": "35108:19:2",
              "stateVariable": false,
              "storageLocation": "memory",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
               "typeString": "bytes32[]"
              },
              "typeName": {
               "baseType": {
                "id": 2088,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "35108:7:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 2089,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "35108:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                "typeString": "bytes32[]"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2096,
            "initialValue": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 2094,
               "name": "ln",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2082,
               "src": "35144:2:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 2093,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "NewExpression",
              "src": "35130:13:2",
              "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": 2091,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "35134:7:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 2092,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "35134:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                "typeString": "bytes32[]"
               }
              }
             },
             "id": 2095,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "35130:17:2",
             "typeDescriptions": {
              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
              "typeString": "bytes32[] memory"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "35108:39:2"
           },
           {
            "assignments": [
             2100
            ],
            "declarations": [
             {
              "constant": false,
              "id": 2100,
              "name": "ad",
              "nodeType": "VariableDeclaration",
              "scope": 2191,
              "src": "35161:19:2",
              "stateVariable": false,
              "storageLocation": "memory",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
               "typeString": "address[]"
              },
              "typeName": {
               "baseType": {
                "id": 2098,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "35161:7:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               },
               "id": 2099,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "35161:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                "typeString": "address[]"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2106,
            "initialValue": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 2104,
               "name": "ln",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2082,
               "src": "35197:2:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 2103,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "NewExpression",
              "src": "35183:13:2",
              "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": 2101,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "35187:7:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               },
               "id": 2102,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "35187:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                "typeString": "address[]"
               }
              }
             },
             "id": 2105,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "35183:17:2",
             "typeDescriptions": {
              "typeIdentifier": "t_array$_t_address_$dyn_memory",
              "typeString": "address[] memory"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "35161:39:2"
           },
           {
            "assignments": [
             2110
            ],
            "declarations": [
             {
              "constant": false,
              "id": 2110,
              "name": "bo",
              "nodeType": "VariableDeclaration",
              "scope": 2191,
              "src": "35214:19:2",
              "stateVariable": false,
              "storageLocation": "memory",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
               "typeString": "uint256[]"
              },
              "typeName": {
               "baseType": {
                "id": 2108,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "35214:7:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 2109,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "35214:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                "typeString": "uint256[]"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2116,
            "initialValue": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 2114,
               "name": "ln",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2082,
               "src": "35250:2:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 2113,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "NewExpression",
              "src": "35236:13:2",
              "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": 2111,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "35240:7:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 2112,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "35240:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                "typeString": "uint256[]"
               }
              }
             },
             "id": 2115,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "35236:17:2",
             "typeDescriptions": {
              "typeIdentifier": "t_array$_t_uint256_$dyn_memory",
              "typeString": "uint256[] memory"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "35214:39:2"
           },
           {
            "assignments": [
             2120
            ],
            "declarations": [
             {
              "constant": false,
              "id": 2120,
              "name": "an",
              "nodeType": "VariableDeclaration",
              "scope": 2191,
              "src": "35267:19:2",
              "stateVariable": false,
              "storageLocation": "memory",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
               "typeString": "bytes32[]"
              },
              "typeName": {
               "baseType": {
                "id": 2118,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "35267:7:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 2119,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "35267:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                "typeString": "bytes32[]"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2126,
            "initialValue": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 2124,
               "name": "ln",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2082,
               "src": "35303:2:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 2123,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "NewExpression",
              "src": "35289:13:2",
              "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": 2121,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "35293:7:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 2122,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "35293:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                "typeString": "bytes32[]"
               }
              }
             },
             "id": 2125,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "35289:17:2",
             "typeDescriptions": {
              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
              "typeString": "bytes32[] memory"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "35267:39:2"
           },
           {
            "assignments": [],
            "declarations": [
             {
              "constant": false,
              "id": 2128,
              "name": "j",
              "nodeType": "VariableDeclaration",
              "scope": 2191,
              "src": "35320:9:2",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              },
              "typeName": {
               "id": 2127,
               "name": "uint256",
               "nodeType": "ElementaryTypeName",
               "src": "35320:7:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2129,
            "initialValue": null,
            "nodeType": "VariableDeclarationStatement",
            "src": "35320:9:2"
           },
           {
            "body": {
             "id": 2175,
             "nodeType": "Block",
             "src": "35368:180:2",
             "statements": [
              {
               "expression": {
                "argumentTypes": null,
                "id": 2146,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2140,
                  "name": "hh",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2090,
                  "src": "35386:2:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                   "typeString": "bytes32[] memory"
                  }
                 },
                 "id": 2142,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2141,
                  "name": "j",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2128,
                  "src": "35389:1:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "35386:5:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2143,
                  "name": "hist_hashes",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2044,
                  "src": "35394:11:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                   "typeString": "bytes32[] memory"
                  }
                 },
                 "id": 2145,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2144,
                  "name": "i",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2062,
                  "src": "35406:1:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "nodeType": "IndexAccess",
                 "src": "35394:14:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "src": "35386:22:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 2147,
               "nodeType": "ExpressionStatement",
               "src": "35386:22:2"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 2154,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2148,
                  "name": "ad",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2100,
                  "src": "35426:2:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                   "typeString": "address[] memory"
                  }
                 },
                 "id": 2150,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2149,
                  "name": "j",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2128,
                  "src": "35429:1:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "35426:5:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2151,
                  "name": "addrs",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2047,
                  "src": "35434:5:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                   "typeString": "address[] memory"
                  }
                 },
                 "id": 2153,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2152,
                  "name": "i",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2062,
                  "src": "35440:1:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "nodeType": "IndexAccess",
                 "src": "35434:8:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                 }
                },
                "src": "35426:16:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               },
               "id": 2155,
               "nodeType": "ExpressionStatement",
               "src": "35426:16:2"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 2162,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2156,
                  "name": "bo",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2110,
                  "src": "35460:2:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                   "typeString": "uint256[] memory"
                  }
                 },
                 "id": 2158,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2157,
                  "name": "j",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2128,
                  "src": "35463:1:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "35460:5:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2159,
                  "name": "bonds",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2050,
                  "src": "35468:5:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                   "typeString": "uint256[] memory"
                  }
                 },
                 "id": 2161,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2160,
                  "name": "i",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2062,
                  "src": "35474:1:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "nodeType": "IndexAccess",
                 "src": "35468:8:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "src": "35460:16:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 2163,
               "nodeType": "ExpressionStatement",
               "src": "35460:16:2"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 2170,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2164,
                  "name": "an",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2120,
                  "src": "35494:2:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                   "typeString": "bytes32[] memory"
                  }
                 },
                 "id": 2166,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2165,
                  "name": "j",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2128,
                  "src": "35497:1:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "35494:5:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2167,
                  "name": "answers",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2053,
                  "src": "35502:7:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                   "typeString": "bytes32[] memory"
                  }
                 },
                 "id": 2169,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2168,
                  "name": "i",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2062,
                  "src": "35510:1:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "nodeType": "IndexAccess",
                 "src": "35502:10:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "src": "35494:18:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 2171,
               "nodeType": "ExpressionStatement",
               "src": "35494:18:2"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 2173,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "UnaryOperation",
                "operator": "++",
                "prefix": false,
                "src": "35530:3:2",
                "subExpression": {
                 "argumentTypes": null,
                 "id": 2172,
                 "name": "i",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 2062,
                 "src": "35530:1:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 2174,
               "nodeType": "ExpressionStatement",
               "src": "35530:3:2"
              }
             ]
            },
            "condition": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             },
             "id": 2136,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 2134,
              "name": "j",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2128,
              "src": "35355:1:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "<",
             "rightExpression": {
              "argumentTypes": null,
              "id": 2135,
              "name": "ln",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2082,
              "src": "35359:2:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "35355:6:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "id": 2176,
            "initializationExpression": {
             "expression": {
              "argumentTypes": null,
              "id": 2132,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "leftHandSide": {
               "argumentTypes": null,
               "id": 2130,
               "name": "j",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2128,
               "src": "35348:1:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "nodeType": "Assignment",
              "operator": "=",
              "rightHandSide": {
               "argumentTypes": null,
               "hexValue": "30",
               "id": 2131,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "kind": "number",
               "lValueRequested": false,
               "nodeType": "Literal",
               "src": "35352:1:2",
               "subdenomination": null,
               "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
               },
               "value": "0"
              },
              "src": "35348:5:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "id": 2133,
             "nodeType": "ExpressionStatement",
             "src": "35348:5:2"
            },
            "loopExpression": {
             "expression": {
              "argumentTypes": null,
              "id": 2138,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "UnaryOperation",
              "operator": "++",
              "prefix": false,
              "src": "35363:3:2",
              "subExpression": {
               "argumentTypes": null,
               "id": 2137,
               "name": "j",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2128,
               "src": "35363:1:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "id": 2139,
             "nodeType": "ExpressionStatement",
             "src": "35363:3:2"
            },
            "nodeType": "ForStatement",
            "src": "35343:205:2"
           },
           {
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 2178,
               "name": "qid",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2076,
               "src": "35575:3:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 2179,
               "name": "hh",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2090,
               "src": "35580:2:2",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                "typeString": "bytes32[] memory"
               }
              },
              {
               "argumentTypes": null,
               "id": 2180,
               "name": "ad",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2100,
               "src": "35584:2:2",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                "typeString": "address[] memory"
               }
              },
              {
               "argumentTypes": null,
               "id": 2181,
               "name": "bo",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2110,
               "src": "35588:2:2",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                "typeString": "uint256[] memory"
               }
              },
              {
               "argumentTypes": null,
               "id": 2182,
               "name": "an",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2120,
               "src": "35592:2:2",
               "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": 2177,
              "name": "claimWinnings",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1829,
              "src": "35561:13:2",
              "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": 2183,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "35561:34:2",
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 2184,
            "nodeType": "ExpressionStatement",
            "src": "35561:34:2"
           }
          ]
         },
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          },
          "id": 2071,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 2068,
           "name": "qi",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2059,
           "src": "34980:2:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "<",
          "rightExpression": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "id": 2069,
            "name": "question_ids",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2038,
            "src": "34985:12:2",
            "typeDescriptions": {
             "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
             "typeString": "bytes32[] memory"
            }
           },
           "id": 2070,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "length",
           "nodeType": "MemberAccess",
           "referencedDeclaration": null,
           "src": "34985:19:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "34980:24:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "id": 2186,
         "initializationExpression": {
          "expression": {
           "argumentTypes": null,
           "id": 2066,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "leftHandSide": {
            "argumentTypes": null,
            "id": 2064,
            "name": "qi",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2059,
            "src": "34972:2:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "nodeType": "Assignment",
           "operator": "=",
           "rightHandSide": {
            "argumentTypes": null,
            "hexValue": "30",
            "id": 2065,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "number",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "34977:1:2",
            "subdenomination": null,
            "typeDescriptions": {
             "typeIdentifier": "t_rational_0_by_1",
             "typeString": "int_const 0"
            },
            "value": "0"
           },
           "src": "34972:6:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 2067,
          "nodeType": "ExpressionStatement",
          "src": "34972:6:2"
         },
         "loopExpression": {
          "expression": {
           "argumentTypes": null,
           "id": 2073,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "UnaryOperation",
           "operator": "++",
           "prefix": false,
           "src": "35006:4:2",
           "subExpression": {
            "argumentTypes": null,
            "id": 2072,
            "name": "qi",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2059,
            "src": "35006:2:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 2074,
          "nodeType": "ExpressionStatement",
          "src": "35006:4:2"
         },
         "nodeType": "ForStatement",
         "src": "34967:639:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [],
          "expression": {
           "argumentTypes": [],
           "id": 2187,
           "name": "withdraw",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 47,
           "src": "35615:8:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
            "typeString": "function ()"
           }
          },
          "id": 2188,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "35615:10:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 2189,
         "nodeType": "ExpressionStatement",
         "src": "35615:10:2"
        }
       ]
      },
      "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": 2191,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [],
        "id": 2056,
        "modifierName": {
         "argumentTypes": null,
         "id": 2055,
         "name": "stateAny",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 328,
         "src": "34821:8:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$__$",
          "typeString": "modifier ()"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "34821:10:2"
       }
      ],
      "name": "claimMultipleAndWithdrawBalance",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2054,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2038,
         "name": "question_ids",
         "nodeType": "VariableDeclaration",
         "scope": 2191,
         "src": "34679:22:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
          "typeString": "bytes32[]"
         },
         "typeName": {
          "baseType": {
           "id": 2036,
           "name": "bytes32",
           "nodeType": "ElementaryTypeName",
           "src": "34679:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "id": 2037,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "34679:9:2",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
           "typeString": "bytes32[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2041,
         "name": "lengths",
         "nodeType": "VariableDeclaration",
         "scope": 2191,
         "src": "34703:17:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
          "typeString": "uint256[]"
         },
         "typeName": {
          "baseType": {
           "id": 2039,
           "name": "uint256",
           "nodeType": "ElementaryTypeName",
           "src": "34703:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 2040,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "34703:9:2",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
           "typeString": "uint256[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2044,
         "name": "hist_hashes",
         "nodeType": "VariableDeclaration",
         "scope": 2191,
         "src": "34731:21:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
          "typeString": "bytes32[]"
         },
         "typeName": {
          "baseType": {
           "id": 2042,
           "name": "bytes32",
           "nodeType": "ElementaryTypeName",
           "src": "34731:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "id": 2043,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "34731:9:2",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
           "typeString": "bytes32[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2047,
         "name": "addrs",
         "nodeType": "VariableDeclaration",
         "scope": 2191,
         "src": "34754:15:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
          "typeString": "address[]"
         },
         "typeName": {
          "baseType": {
           "id": 2045,
           "name": "address",
           "nodeType": "ElementaryTypeName",
           "src": "34754:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "id": 2046,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "34754:9:2",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
           "typeString": "address[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2050,
         "name": "bonds",
         "nodeType": "VariableDeclaration",
         "scope": 2191,
         "src": "34771:15:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
          "typeString": "uint256[]"
         },
         "typeName": {
          "baseType": {
           "id": 2048,
           "name": "uint256",
           "nodeType": "ElementaryTypeName",
           "src": "34771:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 2049,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "34771:9:2",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
           "typeString": "uint256[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2053,
         "name": "answers",
         "nodeType": "VariableDeclaration",
         "scope": 2191,
         "src": "34788:17:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
          "typeString": "bytes32[]"
         },
         "typeName": {
          "baseType": {
           "id": 2051,
           "name": "bytes32",
           "nodeType": "ElementaryTypeName",
           "src": "34788:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "id": 2052,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "34788:9:2",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
           "typeString": "bytes32[]"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "34669:142:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 2057,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "34909:0:2"
      },
      "scope": 2322,
      "src": "34629:1003:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2203,
       "nodeType": "Block",
       "src": "35855:59:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2198,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "35872:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 2200,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2199,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2193,
            "src": "35882:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "35872:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 2201,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "content_hash",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 247,
          "src": "35872:35:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 2197,
         "id": 2202,
         "nodeType": "Return",
         "src": "35865:42:2"
        }
       ]
      },
      "documentation": "@notice Returns the questions's content hash, identifying the question content\n @param question_id The ID of the question ",
      "id": 2204,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getContentHash",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2194,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2193,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2204,
         "src": "35800:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2192,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "35800:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "35799:21:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 2197,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2196,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2204,
         "src": "35846:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2195,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "35846:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "35845:9:2"
      },
      "scope": 2322,
      "src": "35776:138:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2216,
       "nodeType": "Block",
       "src": "36113:57:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2211,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "36130:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 2213,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2212,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2206,
            "src": "36140:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "36130:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 2214,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "arbitrator",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 249,
          "src": "36130:33:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "functionReturnParameters": 2210,
         "id": 2215,
         "nodeType": "Return",
         "src": "36123:40:2"
        }
       ]
      },
      "documentation": "@notice Returns the arbitrator address for the question\n @param question_id The ID of the question ",
      "id": 2217,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getArbitrator",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2207,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2206,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2217,
         "src": "36058:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2205,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "36058:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "36057:21:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 2210,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2209,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2217,
         "src": "36104:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 2208,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "36104:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "36103:9:2"
      },
      "scope": 2322,
      "src": "36035:135:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2229,
       "nodeType": "Block",
       "src": "36381:57:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2224,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "36398:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 2226,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2225,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2219,
            "src": "36408:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "36398:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 2227,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "opening_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 251,
          "src": "36398:33:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "functionReturnParameters": 2223,
         "id": 2228,
         "nodeType": "Return",
         "src": "36391:40:2"
        }
       ]
      },
      "documentation": "@notice Returns the timestamp when the question can first be answered\n @param question_id The ID of the question ",
      "id": 2230,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getOpeningTS",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2220,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2219,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2230,
         "src": "36327:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2218,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "36327:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "36326:21:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 2223,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2222,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2230,
         "src": "36373:6:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 2221,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "36373:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "36372:8:2"
      },
      "scope": 2322,
      "src": "36305:133:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2242,
       "nodeType": "Block",
       "src": "36639:54:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2237,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "36656:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 2239,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2238,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2232,
            "src": "36666:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "36656:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 2240,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "timeout",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 253,
          "src": "36656:30:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "functionReturnParameters": 2236,
         "id": 2241,
         "nodeType": "Return",
         "src": "36649:37:2"
        }
       ]
      },
      "documentation": "@notice Returns the timeout in seconds used after each answer\n @param question_id The ID of the question ",
      "id": 2243,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getTimeout",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2233,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2232,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2243,
         "src": "36585:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2231,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "36585:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "36584:21:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 2236,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2235,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2243,
         "src": "36631:6:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 2234,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "36631:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "36630:8:2"
      },
      "scope": 2322,
      "src": "36565:128:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2255,
       "nodeType": "Block",
       "src": "36909:58:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2250,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "36926:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 2252,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2251,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2245,
            "src": "36936:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "36926:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 2253,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "finalize_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 255,
          "src": "36926:34:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "functionReturnParameters": 2249,
         "id": 2254,
         "nodeType": "Return",
         "src": "36919:41:2"
        }
       ]
      },
      "documentation": "@notice Returns the timestamp at which the question will be/was finalized\n @param question_id The ID of the question ",
      "id": 2256,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getFinalizeTS",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2246,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2245,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2256,
         "src": "36855:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2244,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "36855:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "36854:21:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 2249,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2248,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2256,
         "src": "36901:6:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 2247,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "36901:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "36900:8:2"
      },
      "scope": 2322,
      "src": "36832:135:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2268,
       "nodeType": "Block",
       "src": "37174:69:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2263,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "37191:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 2265,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2264,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2258,
            "src": "37201:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "37191:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 2266,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "is_pending_arbitration",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 257,
          "src": "37191:45:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "functionReturnParameters": 2262,
         "id": 2267,
         "nodeType": "Return",
         "src": "37184:52:2"
        }
       ]
      },
      "documentation": "@notice Returns whether the question is pending arbitration\n @param question_id The ID of the question ",
      "id": 2269,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "isPendingArbitration",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2259,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2258,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2269,
         "src": "37122:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2257,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "37122:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "37121:21:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 2262,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2261,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2269,
         "src": "37168:4:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         },
         "typeName": {
          "id": 2260,
          "name": "bool",
          "nodeType": "ElementaryTypeName",
          "src": "37168:4:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "37167:6:2"
      },
      "scope": 2322,
      "src": "37092:151:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2281,
       "nodeType": "Block",
       "src": "37496:53:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2276,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "37513:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 2278,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2277,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2271,
            "src": "37523:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "37513:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 2279,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "bounty",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 259,
          "src": "37513:29:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "functionReturnParameters": 2275,
         "id": 2280,
         "nodeType": "Return",
         "src": "37506:36:2"
        }
       ]
      },
      "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": 2282,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getBounty",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2272,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2271,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2282,
         "src": "37441:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2270,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "37441:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "37440:21:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 2275,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2274,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2282,
         "src": "37487:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 2273,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "37487:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "37486:9:2"
      },
      "scope": 2322,
      "src": "37422:127:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2294,
       "nodeType": "Block",
       "src": "37732:58:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2289,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "37749:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 2291,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2290,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2284,
            "src": "37759:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "37749:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 2292,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "best_answer",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 261,
          "src": "37749:34:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 2288,
         "id": 2293,
         "nodeType": "Return",
         "src": "37742:41:2"
        }
       ]
      },
      "documentation": "@notice Returns the current best answer\n @param question_id The ID of the question ",
      "id": 2295,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getBestAnswer",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2285,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2284,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2295,
         "src": "37677:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2283,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "37677:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "37676:21:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 2288,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2287,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2295,
         "src": "37723:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2286,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "37723:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "37722:9:2"
      },
      "scope": 2322,
      "src": "37654:136:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2307,
       "nodeType": "Block",
       "src": "38053:59:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2302,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "38070:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 2304,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2303,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2297,
            "src": "38080:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "38070:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 2305,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "history_hash",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 263,
          "src": "38070:35:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 2301,
         "id": 2306,
         "nodeType": "Return",
         "src": "38063:42:2"
        }
       ]
      },
      "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": 2308,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getHistoryHash",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2298,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2297,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2308,
         "src": "37998:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2296,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "37998:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "37997:21:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 2301,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2300,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2308,
         "src": "38044:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2299,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "38044:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "38043:9:2"
      },
      "scope": 2322,
      "src": "37974:138:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2320,
       "nodeType": "Block",
       "src": "38311:51:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2315,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "38328:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 2317,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2316,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2310,
            "src": "38338:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "38328:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 2318,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "bond",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 265,
          "src": "38328:27:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "functionReturnParameters": 2314,
         "id": 2319,
         "nodeType": "Return",
         "src": "38321:34:2"
        }
       ]
      },
      "documentation": "@notice Returns the highest bond posted so far for a question\n @param question_id The ID of the question ",
      "id": 2321,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getBond",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2311,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2310,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2321,
         "src": "38256:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2309,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "38256:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "38255:21:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 2314,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2313,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2321,
         "src": "38302:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 2312,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "38302:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "38301:9:2"
      },
      "scope": 2322,
      "src": "38239:123:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     }
    ],
    "scope": 2323,
    "src": "133:38232:2"
   }
  ],
  "src": "0:38366:2"
 },
 "legacyAST": {
  "absolutePath": "/home/ed/working/realitio-contracts-newtest/truffle/contracts/RealitioERC20.sol",
  "exportedSymbols": {
   "RealitioERC20": [
    2322
   ]
  },
  "id": 2323,
  "nodeType": "SourceUnit",
  "nodes": [
   {
    "id": 119,
    "literals": [
     "solidity",
     "^",
     "0.4",
     ".24"
    ],
    "nodeType": "PragmaDirective",
    "src": "0:24:2"
   },
   {
    "absolutePath": "/home/ed/working/realitio-contracts-newtest/truffle/contracts/RealitioSafeMath256.sol",
    "file": "./RealitioSafeMath256.sol",
    "id": 120,
    "nodeType": "ImportDirective",
    "scope": 2323,
    "sourceUnit": 2421,
    "src": "26:35:2",
    "symbolAliases": [],
    "unitAlias": ""
   },
   {
    "absolutePath": "/home/ed/working/realitio-contracts-newtest/truffle/contracts/RealitioSafeMath32.sol",
    "file": "./RealitioSafeMath32.sol",
    "id": 121,
    "nodeType": "ImportDirective",
    "scope": 2323,
    "sourceUnit": 2448,
    "src": "62:34:2",
    "symbolAliases": [],
    "unitAlias": ""
   },
   {
    "absolutePath": "/home/ed/working/realitio-contracts-newtest/truffle/contracts/BalanceHolderERC20.sol",
    "file": "./BalanceHolderERC20.sol",
    "id": 122,
    "nodeType": "ImportDirective",
    "scope": 2323,
    "sourceUnit": 49,
    "src": "97:34:2",
    "symbolAliases": [],
    "unitAlias": ""
   },
   {
    "baseContracts": [
     {
      "arguments": null,
      "baseName": {
       "contractScope": null,
       "id": 123,
       "name": "BalanceHolder",
       "nodeType": "UserDefinedTypeName",
       "referencedDeclaration": 48,
       "src": "159:13:2",
       "typeDescriptions": {
        "typeIdentifier": "t_contract$_BalanceHolder_$48",
        "typeString": "contract BalanceHolder"
       }
      },
      "id": 124,
      "nodeType": "InheritanceSpecifier",
      "src": "159:13:2"
     }
    ],
    "contractDependencies": [
     48
    ],
    "contractKind": "contract",
    "documentation": null,
    "fullyImplemented": true,
    "id": 2322,
    "linearizedBaseContracts": [
     2322,
     48
    ],
    "name": "RealitioERC20",
    "nodeType": "ContractDefinition",
    "nodes": [
     {
      "id": 127,
      "libraryName": {
       "contractScope": null,
       "id": 125,
       "name": "RealitioSafeMath256",
       "nodeType": "UserDefinedTypeName",
       "referencedDeclaration": 2420,
       "src": "186:19:2",
       "typeDescriptions": {
        "typeIdentifier": "t_contract$_RealitioSafeMath256_$2420",
        "typeString": "library RealitioSafeMath256"
       }
      },
      "nodeType": "UsingForDirective",
      "src": "180:38:2",
      "typeName": {
       "id": 126,
       "name": "uint256",
       "nodeType": "ElementaryTypeName",
       "src": "210:7:2",
       "typeDescriptions": {
        "typeIdentifier": "t_uint256",
        "typeString": "uint256"
       }
      }
     },
     {
      "id": 130,
      "libraryName": {
       "contractScope": null,
       "id": 128,
       "name": "RealitioSafeMath32",
       "nodeType": "UserDefinedTypeName",
       "referencedDeclaration": 2447,
       "src": "229:18:2",
       "typeDescriptions": {
        "typeIdentifier": "t_contract$_RealitioSafeMath32_$2447",
        "typeString": "library RealitioSafeMath32"
       }
      },
      "nodeType": "UsingForDirective",
      "src": "223:36:2",
      "typeName": {
       "id": 129,
       "name": "uint32",
       "nodeType": "ElementaryTypeName",
       "src": "252:6:2",
       "typeDescriptions": {
        "typeIdentifier": "t_uint32",
        "typeString": "uint32"
       }
      }
     },
     {
      "constant": true,
      "id": 135,
      "name": "NULL_ADDRESS",
      "nodeType": "VariableDeclaration",
      "scope": 2322,
      "src": "265:42:2",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_address",
       "typeString": "address"
      },
      "typeName": {
       "id": 131,
       "name": "address",
       "nodeType": "ElementaryTypeName",
       "src": "265:7:2",
       "typeDescriptions": {
        "typeIdentifier": "t_address",
        "typeString": "address"
       }
      },
      "value": {
       "argumentTypes": null,
       "arguments": [
        {
         "argumentTypes": null,
         "hexValue": "30",
         "id": 133,
         "isConstant": false,
         "isLValue": false,
         "isPure": true,
         "kind": "number",
         "lValueRequested": false,
         "nodeType": "Literal",
         "src": "305:1:2",
         "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": 132,
        "isConstant": false,
        "isLValue": false,
        "isPure": true,
        "lValueRequested": false,
        "nodeType": "ElementaryTypeNameExpression",
        "src": "297:7:2",
        "typeDescriptions": {
         "typeIdentifier": "t_type$_t_address_$",
         "typeString": "type(address)"
        },
        "typeName": "address"
       },
       "id": 134,
       "isConstant": false,
       "isLValue": false,
       "isPure": true,
       "kind": "typeConversion",
       "lValueRequested": false,
       "names": [],
       "nodeType": "FunctionCall",
       "src": "297:10:2",
       "typeDescriptions": {
        "typeIdentifier": "t_address",
        "typeString": "address"
       }
      },
      "visibility": "internal"
     },
     {
      "constant": true,
      "id": 140,
      "name": "NULL_HASH",
      "nodeType": "VariableDeclaration",
      "scope": 2322,
      "src": "390:39:2",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_bytes32",
       "typeString": "bytes32"
      },
      "typeName": {
       "id": 136,
       "name": "bytes32",
       "nodeType": "ElementaryTypeName",
       "src": "390:7:2",
       "typeDescriptions": {
        "typeIdentifier": "t_bytes32",
        "typeString": "bytes32"
       }
      },
      "value": {
       "argumentTypes": null,
       "arguments": [
        {
         "argumentTypes": null,
         "hexValue": "30",
         "id": 138,
         "isConstant": false,
         "isLValue": false,
         "isPure": true,
         "kind": "number",
         "lValueRequested": false,
         "nodeType": "Literal",
         "src": "427:1:2",
         "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": 137,
        "isConstant": false,
        "isLValue": false,
        "isPure": true,
        "lValueRequested": false,
        "nodeType": "ElementaryTypeNameExpression",
        "src": "419:7:2",
        "typeDescriptions": {
         "typeIdentifier": "t_type$_t_bytes32_$",
         "typeString": "type(bytes32)"
        },
        "typeName": "bytes32"
       },
       "id": 139,
       "isConstant": false,
       "isLValue": false,
       "isPure": true,
       "kind": "typeConversion",
       "lValueRequested": false,
       "names": [],
       "nodeType": "FunctionCall",
       "src": "419:10:2",
       "typeDescriptions": {
        "typeIdentifier": "t_bytes32",
        "typeString": "bytes32"
       }
      },
      "visibility": "internal"
     },
     {
      "constant": true,
      "id": 143,
      "name": "UNANSWERED",
      "nodeType": "VariableDeclaration",
      "scope": 2322,
      "src": "524:30:2",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_uint32",
       "typeString": "uint32"
      },
      "typeName": {
       "id": 141,
       "name": "uint32",
       "nodeType": "ElementaryTypeName",
       "src": "524:6:2",
       "typeDescriptions": {
        "typeIdentifier": "t_uint32",
        "typeString": "uint32"
       }
      },
      "value": {
       "argumentTypes": null,
       "hexValue": "30",
       "id": 142,
       "isConstant": false,
       "isLValue": false,
       "isPure": true,
       "kind": "number",
       "lValueRequested": false,
       "nodeType": "Literal",
       "src": "553:1:2",
       "subdenomination": null,
       "typeDescriptions": {
        "typeIdentifier": "t_rational_0_by_1",
        "typeString": "int_const 0"
       },
       "value": "0"
      },
      "visibility": "internal"
     },
     {
      "constant": true,
      "id": 146,
      "name": "COMMITMENT_NON_EXISTENT",
      "nodeType": "VariableDeclaration",
      "scope": 2322,
      "src": "647:44:2",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_uint256",
       "typeString": "uint256"
      },
      "typeName": {
       "id": 144,
       "name": "uint256",
       "nodeType": "ElementaryTypeName",
       "src": "647:7:2",
       "typeDescriptions": {
        "typeIdentifier": "t_uint256",
        "typeString": "uint256"
       }
      },
      "value": {
       "argumentTypes": null,
       "hexValue": "30",
       "id": 145,
       "isConstant": false,
       "isLValue": false,
       "isPure": true,
       "kind": "number",
       "lValueRequested": false,
       "nodeType": "Literal",
       "src": "690:1:2",
       "subdenomination": null,
       "typeDescriptions": {
        "typeIdentifier": "t_rational_0_by_1",
        "typeString": "int_const 0"
       },
       "value": "0"
      },
      "visibility": "internal"
     },
     {
      "constant": true,
      "id": 149,
      "name": "COMMITMENT_TIMEOUT_RATIO",
      "nodeType": "VariableDeclaration",
      "scope": 2322,
      "src": "775:44:2",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_uint32",
       "typeString": "uint32"
      },
      "typeName": {
       "id": 147,
       "name": "uint32",
       "nodeType": "ElementaryTypeName",
       "src": "775:6:2",
       "typeDescriptions": {
        "typeIdentifier": "t_uint32",
        "typeString": "uint32"
       }
      },
      "value": {
       "argumentTypes": null,
       "hexValue": "38",
       "id": 148,
       "isConstant": false,
       "isLValue": false,
       "isPure": true,
       "kind": "number",
       "lValueRequested": false,
       "nodeType": "Literal",
       "src": "818:1:2",
       "subdenomination": null,
       "typeDescriptions": {
        "typeIdentifier": "t_rational_8_by_1",
        "typeString": "int_const 8"
       },
       "value": "8"
      },
      "visibility": "internal"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 155,
      "name": "LogSetQuestionFee",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 154,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 151,
         "indexed": false,
         "name": "arbitrator",
         "nodeType": "VariableDeclaration",
         "scope": 155,
         "src": "859:18:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 150,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "859:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 153,
         "indexed": false,
         "name": "amount",
         "nodeType": "VariableDeclaration",
         "scope": 155,
         "src": "887:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 152,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "887:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "849:58:2"
      },
      "src": "826:82:2"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 163,
      "name": "LogNewTemplate",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 162,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 157,
         "indexed": true,
         "name": "template_id",
         "nodeType": "VariableDeclaration",
         "scope": 163,
         "src": "944:27:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 156,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "944:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 159,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 163,
         "src": "981:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 158,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "981:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 161,
         "indexed": false,
         "name": "question_text",
         "nodeType": "VariableDeclaration",
         "scope": 163,
         "src": "1012:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_string_memory_ptr",
          "typeString": "string"
         },
         "typeName": {
          "id": 160,
          "name": "string",
          "nodeType": "ElementaryTypeName",
          "src": "1012:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_string_storage_ptr",
           "typeString": "string"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "934:104:2"
      },
      "src": "914:125:2"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 185,
      "name": "LogNewQuestion",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 184,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 165,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 185,
         "src": "1075:27:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 164,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1075:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 167,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 185,
         "src": "1112:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 166,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "1112:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 169,
         "indexed": false,
         "name": "template_id",
         "nodeType": "VariableDeclaration",
         "scope": 185,
         "src": "1143:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 168,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1143:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 171,
         "indexed": false,
         "name": "question",
         "nodeType": "VariableDeclaration",
         "scope": 185,
         "src": "1172:15:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_string_memory_ptr",
          "typeString": "string"
         },
         "typeName": {
          "id": 170,
          "name": "string",
          "nodeType": "ElementaryTypeName",
          "src": "1172:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_string_storage_ptr",
           "typeString": "string"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 173,
         "indexed": true,
         "name": "content_hash",
         "nodeType": "VariableDeclaration",
         "scope": 185,
         "src": "1197:28:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 172,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1197:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 175,
         "indexed": false,
         "name": "arbitrator",
         "nodeType": "VariableDeclaration",
         "scope": 185,
         "src": "1235:18:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 174,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "1235:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 177,
         "indexed": false,
         "name": "timeout",
         "nodeType": "VariableDeclaration",
         "scope": 185,
         "src": "1264:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 176,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "1264:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 179,
         "indexed": false,
         "name": "opening_ts",
         "nodeType": "VariableDeclaration",
         "scope": 185,
         "src": "1288:17:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 178,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "1288:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 181,
         "indexed": false,
         "name": "nonce",
         "nodeType": "VariableDeclaration",
         "scope": 185,
         "src": "1315:13:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 180,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1315:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 183,
         "indexed": false,
         "name": "created",
         "nodeType": "VariableDeclaration",
         "scope": 185,
         "src": "1338:15:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 182,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1338:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "1065:294:2"
      },
      "src": "1045:315:2"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 195,
      "name": "LogFundAnswerBounty",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 194,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 187,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 195,
         "src": "1401:27:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 186,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1401:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 189,
         "indexed": false,
         "name": "bounty_added",
         "nodeType": "VariableDeclaration",
         "scope": 195,
         "src": "1438:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 188,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1438:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 191,
         "indexed": false,
         "name": "bounty",
         "nodeType": "VariableDeclaration",
         "scope": 195,
         "src": "1468:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 190,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1468:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 193,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 195,
         "src": "1492:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 192,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "1492:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "1391:128:2"
      },
      "src": "1366:154:2"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 211,
      "name": "LogNewAnswer",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 210,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 197,
         "indexed": false,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 211,
         "src": "1554:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 196,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1554:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 199,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 211,
         "src": "1578:27:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 198,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1578:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 201,
         "indexed": false,
         "name": "history_hash",
         "nodeType": "VariableDeclaration",
         "scope": 211,
         "src": "1615:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 200,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1615:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 203,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 211,
         "src": "1645:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 202,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "1645:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 205,
         "indexed": false,
         "name": "bond",
         "nodeType": "VariableDeclaration",
         "scope": 211,
         "src": "1675:12:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 204,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1675:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 207,
         "indexed": false,
         "name": "ts",
         "nodeType": "VariableDeclaration",
         "scope": 211,
         "src": "1697:10:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 206,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1697:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 209,
         "indexed": false,
         "name": "is_commitment",
         "nodeType": "VariableDeclaration",
         "scope": 211,
         "src": "1717:18:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         },
         "typeName": {
          "id": 208,
          "name": "bool",
          "nodeType": "ElementaryTypeName",
          "src": "1717:4:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "1544:197:2"
      },
      "src": "1526:216:2"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 225,
      "name": "LogAnswerReveal",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 224,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 213,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 225,
         "src": "1779:27:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 212,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1779:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 215,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 225,
         "src": "1817:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 214,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "1817:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 217,
         "indexed": true,
         "name": "answer_hash",
         "nodeType": "VariableDeclaration",
         "scope": 225,
         "src": "1848:27:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 216,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1848:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 219,
         "indexed": false,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 225,
         "src": "1886:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 218,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "1886:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 221,
         "indexed": false,
         "name": "nonce",
         "nodeType": "VariableDeclaration",
         "scope": 225,
         "src": "1911:13:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 220,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1911:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 223,
         "indexed": false,
         "name": "bond",
         "nodeType": "VariableDeclaration",
         "scope": 225,
         "src": "1935:12:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 222,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "1935:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "1769:184:2"
      },
      "src": "1748:206:2"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 231,
      "name": "LogNotifyOfArbitrationRequest",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 230,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 227,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 231,
         "src": "2005:27:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 226,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "2005:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 229,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 231,
         "src": "2042:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 228,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "2042:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "1995:74:2"
      },
      "src": "1960:110:2"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 237,
      "name": "LogFinalize",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 236,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 233,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 237,
         "src": "2103:27:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 232,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "2103:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 235,
         "indexed": true,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 237,
         "src": "2140:22:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 234,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "2140:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "2093:75:2"
      },
      "src": "2076:93:2"
     },
     {
      "anonymous": false,
      "documentation": null,
      "id": 245,
      "name": "LogClaim",
      "nodeType": "EventDefinition",
      "parameters": {
       "id": 244,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 239,
         "indexed": true,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 245,
         "src": "2199:27:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 238,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "2199:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 241,
         "indexed": true,
         "name": "user",
         "nodeType": "VariableDeclaration",
         "scope": 245,
         "src": "2236:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 240,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "2236:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 243,
         "indexed": false,
         "name": "amount",
         "nodeType": "VariableDeclaration",
         "scope": 245,
         "src": "2266:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 242,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "2266:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "2189:97:2"
      },
      "src": "2175:112:2"
     },
     {
      "canonicalName": "RealitioERC20.Question",
      "id": 266,
      "members": [
       {
        "constant": false,
        "id": 247,
        "name": "content_hash",
        "nodeType": "VariableDeclaration",
        "scope": 266,
        "src": "2319:20:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        },
        "typeName": {
         "id": 246,
         "name": "bytes32",
         "nodeType": "ElementaryTypeName",
         "src": "2319:7:2",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 249,
        "name": "arbitrator",
        "nodeType": "VariableDeclaration",
        "scope": 266,
        "src": "2349:18:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_address",
         "typeString": "address"
        },
        "typeName": {
         "id": 248,
         "name": "address",
         "nodeType": "ElementaryTypeName",
         "src": "2349:7:2",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 251,
        "name": "opening_ts",
        "nodeType": "VariableDeclaration",
        "scope": 266,
        "src": "2377:17:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint32",
         "typeString": "uint32"
        },
        "typeName": {
         "id": 250,
         "name": "uint32",
         "nodeType": "ElementaryTypeName",
         "src": "2377:6:2",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 253,
        "name": "timeout",
        "nodeType": "VariableDeclaration",
        "scope": 266,
        "src": "2404:14:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint32",
         "typeString": "uint32"
        },
        "typeName": {
         "id": 252,
         "name": "uint32",
         "nodeType": "ElementaryTypeName",
         "src": "2404:6:2",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 255,
        "name": "finalize_ts",
        "nodeType": "VariableDeclaration",
        "scope": 266,
        "src": "2428:18:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint32",
         "typeString": "uint32"
        },
        "typeName": {
         "id": 254,
         "name": "uint32",
         "nodeType": "ElementaryTypeName",
         "src": "2428:6:2",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 257,
        "name": "is_pending_arbitration",
        "nodeType": "VariableDeclaration",
        "scope": 266,
        "src": "2456:27:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_bool",
         "typeString": "bool"
        },
        "typeName": {
         "id": 256,
         "name": "bool",
         "nodeType": "ElementaryTypeName",
         "src": "2456:4:2",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 259,
        "name": "bounty",
        "nodeType": "VariableDeclaration",
        "scope": 266,
        "src": "2493:14:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        },
        "typeName": {
         "id": 258,
         "name": "uint256",
         "nodeType": "ElementaryTypeName",
         "src": "2493:7:2",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 261,
        "name": "best_answer",
        "nodeType": "VariableDeclaration",
        "scope": 266,
        "src": "2517:19:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        },
        "typeName": {
         "id": 260,
         "name": "bytes32",
         "nodeType": "ElementaryTypeName",
         "src": "2517:7:2",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 263,
        "name": "history_hash",
        "nodeType": "VariableDeclaration",
        "scope": 266,
        "src": "2546:20:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        },
        "typeName": {
         "id": 262,
         "name": "bytes32",
         "nodeType": "ElementaryTypeName",
         "src": "2546:7:2",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 265,
        "name": "bond",
        "nodeType": "VariableDeclaration",
        "scope": 266,
        "src": "2576:12:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        },
        "typeName": {
         "id": 264,
         "name": "uint256",
         "nodeType": "ElementaryTypeName",
         "src": "2576:7:2",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         }
        },
        "value": null,
        "visibility": "internal"
       }
      ],
      "name": "Question",
      "nodeType": "StructDefinition",
      "scope": 2322,
      "src": "2293:302:2",
      "visibility": "public"
     },
     {
      "canonicalName": "RealitioERC20.Commitment",
      "id": 273,
      "members": [
       {
        "constant": false,
        "id": 268,
        "name": "reveal_ts",
        "nodeType": "VariableDeclaration",
        "scope": 273,
        "src": "2726:16:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint32",
         "typeString": "uint32"
        },
        "typeName": {
         "id": 267,
         "name": "uint32",
         "nodeType": "ElementaryTypeName",
         "src": "2726:6:2",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 270,
        "name": "is_revealed",
        "nodeType": "VariableDeclaration",
        "scope": 273,
        "src": "2752:16:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_bool",
         "typeString": "bool"
        },
        "typeName": {
         "id": 269,
         "name": "bool",
         "nodeType": "ElementaryTypeName",
         "src": "2752:4:2",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 272,
        "name": "revealed_answer",
        "nodeType": "VariableDeclaration",
        "scope": 273,
        "src": "2778:23:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        },
        "typeName": {
         "id": 271,
         "name": "bytes32",
         "nodeType": "ElementaryTypeName",
         "src": "2778:7:2",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         }
        },
        "value": null,
        "visibility": "internal"
       }
      ],
      "name": "Commitment",
      "nodeType": "StructDefinition",
      "scope": 2322,
      "src": "2698:110:2",
      "visibility": "public"
     },
     {
      "canonicalName": "RealitioERC20.Claim",
      "id": 280,
      "members": [
       {
        "constant": false,
        "id": 275,
        "name": "payee",
        "nodeType": "VariableDeclaration",
        "scope": 280,
        "src": "2959:13:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_address",
         "typeString": "address"
        },
        "typeName": {
         "id": 274,
         "name": "address",
         "nodeType": "ElementaryTypeName",
         "src": "2959:7:2",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 277,
        "name": "last_bond",
        "nodeType": "VariableDeclaration",
        "scope": 280,
        "src": "2982:17:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        },
        "typeName": {
         "id": 276,
         "name": "uint256",
         "nodeType": "ElementaryTypeName",
         "src": "2982:7:2",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         }
        },
        "value": null,
        "visibility": "internal"
       },
       {
        "constant": false,
        "id": 279,
        "name": "queued_funds",
        "nodeType": "VariableDeclaration",
        "scope": 280,
        "src": "3009:20:2",
        "stateVariable": false,
        "storageLocation": "default",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        },
        "typeName": {
         "id": 278,
         "name": "uint256",
         "nodeType": "ElementaryTypeName",
         "src": "3009:7:2",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         }
        },
        "value": null,
        "visibility": "internal"
       }
      ],
      "name": "Claim",
      "nodeType": "StructDefinition",
      "scope": 2322,
      "src": "2936:100:2",
      "visibility": "public"
     },
     {
      "constant": false,
      "id": 283,
      "name": "nextTemplateID",
      "nodeType": "VariableDeclaration",
      "scope": 2322,
      "src": "3042:26:2",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_uint256",
       "typeString": "uint256"
      },
      "typeName": {
       "id": 281,
       "name": "uint256",
       "nodeType": "ElementaryTypeName",
       "src": "3042:7:2",
       "typeDescriptions": {
        "typeIdentifier": "t_uint256",
        "typeString": "uint256"
       }
      },
      "value": {
       "argumentTypes": null,
       "hexValue": "30",
       "id": 282,
       "isConstant": false,
       "isLValue": false,
       "isPure": true,
       "kind": "number",
       "lValueRequested": false,
       "nodeType": "Literal",
       "src": "3067:1:2",
       "subdenomination": null,
       "typeDescriptions": {
        "typeIdentifier": "t_rational_0_by_1",
        "typeString": "int_const 0"
       },
       "value": "0"
      },
      "visibility": "internal"
     },
     {
      "constant": false,
      "id": 287,
      "name": "templates",
      "nodeType": "VariableDeclaration",
      "scope": 2322,
      "src": "3074:44:2",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
       "typeString": "mapping(uint256 => uint256)"
      },
      "typeName": {
       "id": 286,
       "keyType": {
        "id": 284,
        "name": "uint256",
        "nodeType": "ElementaryTypeName",
        "src": "3082:7:2",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        }
       },
       "nodeType": "Mapping",
       "src": "3074:27:2",
       "typeDescriptions": {
        "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
        "typeString": "mapping(uint256 => uint256)"
       },
       "valueType": {
        "id": 285,
        "name": "uint256",
        "nodeType": "ElementaryTypeName",
        "src": "3093:7:2",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        }
       }
      },
      "value": null,
      "visibility": "public"
     },
     {
      "constant": false,
      "id": 291,
      "name": "template_hashes",
      "nodeType": "VariableDeclaration",
      "scope": 2322,
      "src": "3124:50:2",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
       "typeString": "mapping(uint256 => bytes32)"
      },
      "typeName": {
       "id": 290,
       "keyType": {
        "id": 288,
        "name": "uint256",
        "nodeType": "ElementaryTypeName",
        "src": "3132:7:2",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        }
       },
       "nodeType": "Mapping",
       "src": "3124:27:2",
       "typeDescriptions": {
        "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
        "typeString": "mapping(uint256 => bytes32)"
       },
       "valueType": {
        "id": 289,
        "name": "bytes32",
        "nodeType": "ElementaryTypeName",
        "src": "3143:7:2",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        }
       }
      },
      "value": null,
      "visibility": "public"
     },
     {
      "constant": false,
      "id": 295,
      "name": "questions",
      "nodeType": "VariableDeclaration",
      "scope": 2322,
      "src": "3180:45:2",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
       "typeString": "mapping(bytes32 => struct RealitioERC20.Question)"
      },
      "typeName": {
       "id": 294,
       "keyType": {
        "id": 292,
        "name": "bytes32",
        "nodeType": "ElementaryTypeName",
        "src": "3188:7:2",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        }
       },
       "nodeType": "Mapping",
       "src": "3180:28:2",
       "typeDescriptions": {
        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
        "typeString": "mapping(bytes32 => struct RealitioERC20.Question)"
       },
       "valueType": {
        "contractScope": null,
        "id": 293,
        "name": "Question",
        "nodeType": "UserDefinedTypeName",
        "referencedDeclaration": 266,
        "src": "3199:8:2",
        "typeDescriptions": {
         "typeIdentifier": "t_struct$_Question_$266_storage_ptr",
         "typeString": "struct RealitioERC20.Question"
        }
       }
      },
      "value": null,
      "visibility": "public"
     },
     {
      "constant": false,
      "id": 299,
      "name": "question_claims",
      "nodeType": "VariableDeclaration",
      "scope": 2322,
      "src": "3231:48:2",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$280_storage_$",
       "typeString": "mapping(bytes32 => struct RealitioERC20.Claim)"
      },
      "typeName": {
       "id": 298,
       "keyType": {
        "id": 296,
        "name": "bytes32",
        "nodeType": "ElementaryTypeName",
        "src": "3239:7:2",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        }
       },
       "nodeType": "Mapping",
       "src": "3231:25:2",
       "typeDescriptions": {
        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$280_storage_$",
        "typeString": "mapping(bytes32 => struct RealitioERC20.Claim)"
       },
       "valueType": {
        "contractScope": null,
        "id": 297,
        "name": "Claim",
        "nodeType": "UserDefinedTypeName",
        "referencedDeclaration": 280,
        "src": "3250:5:2",
        "typeDescriptions": {
         "typeIdentifier": "t_struct$_Claim_$280_storage_ptr",
         "typeString": "struct RealitioERC20.Claim"
        }
       }
      },
      "value": null,
      "visibility": "public"
     },
     {
      "constant": false,
      "id": 303,
      "name": "commitments",
      "nodeType": "VariableDeclaration",
      "scope": 2322,
      "src": "3285:49:2",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$273_storage_$",
       "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment)"
      },
      "typeName": {
       "id": 302,
       "keyType": {
        "id": 300,
        "name": "bytes32",
        "nodeType": "ElementaryTypeName",
        "src": "3293:7:2",
        "typeDescriptions": {
         "typeIdentifier": "t_bytes32",
         "typeString": "bytes32"
        }
       },
       "nodeType": "Mapping",
       "src": "3285:30:2",
       "typeDescriptions": {
        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$273_storage_$",
        "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment)"
       },
       "valueType": {
        "contractScope": null,
        "id": 301,
        "name": "Commitment",
        "nodeType": "UserDefinedTypeName",
        "referencedDeclaration": 273,
        "src": "3304:10:2",
        "typeDescriptions": {
         "typeIdentifier": "t_struct$_Commitment_$273_storage_ptr",
         "typeString": "struct RealitioERC20.Commitment"
        }
       }
      },
      "value": null,
      "visibility": "public"
     },
     {
      "constant": false,
      "id": 307,
      "name": "arbitrator_question_fees",
      "nodeType": "VariableDeclaration",
      "scope": 2322,
      "src": "3340:59:2",
      "stateVariable": true,
      "storageLocation": "default",
      "typeDescriptions": {
       "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
       "typeString": "mapping(address => uint256)"
      },
      "typeName": {
       "id": 306,
       "keyType": {
        "id": 304,
        "name": "address",
        "nodeType": "ElementaryTypeName",
        "src": "3348:7:2",
        "typeDescriptions": {
         "typeIdentifier": "t_address",
         "typeString": "address"
        }
       },
       "nodeType": "Mapping",
       "src": "3340:27:2",
       "typeDescriptions": {
        "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
        "typeString": "mapping(address => uint256)"
       },
       "valueType": {
        "id": 305,
        "name": "uint256",
        "nodeType": "ElementaryTypeName",
        "src": "3359:7:2",
        "typeDescriptions": {
         "typeIdentifier": "t_uint256",
         "typeString": "uint256"
        }
       }
      },
      "value": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 323,
       "nodeType": "Block",
       "src": "3452:117:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            "id": 318,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "id": 312,
              "name": "msg",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2462,
              "src": "3470:3:2",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_message",
               "typeString": "msg"
              }
             },
             "id": 313,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "sender",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "3470:10:2",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "==",
            "rightExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 314,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 295,
               "src": "3484:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
               }
              },
              "id": 316,
              "indexExpression": {
               "argumentTypes": null,
               "id": 315,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 309,
               "src": "3494:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "3484:22:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$266_storage",
               "typeString": "struct RealitioERC20.Question storage ref"
              }
             },
             "id": 317,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "arbitrator",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 249,
             "src": "3484:33:2",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "src": "3470:47:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "6d73672e73656e646572206d7573742062652061726269747261746f72",
            "id": 319,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "3519:31:2",
            "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": 311,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "3462:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 320,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "3462:89:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 321,
         "nodeType": "ExpressionStatement",
         "src": "3462:89:2"
        },
        {
         "id": 322,
         "nodeType": "PlaceholderStatement",
         "src": "3561:1:2"
        }
       ]
      },
      "documentation": null,
      "id": 324,
      "name": "onlyArbitrator",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 310,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 309,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 324,
         "src": "3431:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 308,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "3431:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "3430:21:2"
      },
      "src": "3407:162:2",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 327,
       "nodeType": "Block",
       "src": "3595:18:2",
       "statements": [
        {
         "id": 326,
         "nodeType": "PlaceholderStatement",
         "src": "3605:1:2"
        }
       ]
      },
      "documentation": null,
      "id": 328,
      "name": "stateAny",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 325,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "3592:2:2"
      },
      "src": "3575:38:2",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 343,
       "nodeType": "Block",
       "src": "3665:99:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 338,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 333,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 295,
               "src": "3683:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
               }
              },
              "id": 335,
              "indexExpression": {
               "argumentTypes": null,
               "id": 334,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 330,
               "src": "3693:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "3683:22:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$266_storage",
               "typeString": "struct RealitioERC20.Question storage ref"
              }
             },
             "id": 336,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "timeout",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 253,
             "src": "3683:30:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "==",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 337,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "3717:1:2",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "3683:35:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "7175657374696f6e206d757374206e6f74206578697374",
            "id": 339,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "3720:25:2",
            "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": 332,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "3675:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 340,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "3675:71:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 341,
         "nodeType": "ExpressionStatement",
         "src": "3675:71:2"
        },
        {
         "id": 342,
         "nodeType": "PlaceholderStatement",
         "src": "3756:1:2"
        }
       ]
      },
      "documentation": null,
      "id": 344,
      "name": "stateNotCreated",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 331,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 330,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 344,
         "src": "3644:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 329,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "3644:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "3643:21:2"
      },
      "src": "3619:145:2",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 408,
       "nodeType": "Block",
       "src": "3810:547:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 354,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 349,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 295,
               "src": "3828:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
               }
              },
              "id": 351,
              "indexExpression": {
               "argumentTypes": null,
               "id": 350,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 346,
               "src": "3838:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "3828:22:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$266_storage",
               "typeString": "struct RealitioERC20.Question storage ref"
              }
             },
             "id": 352,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "timeout",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 253,
             "src": "3828:30:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 353,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "3861:1:2",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "3828:34:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "7175657374696f6e206d757374206578697374",
            "id": 355,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "3864:21:2",
            "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": 348,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "3820:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 356,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "3820:66:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 357,
         "nodeType": "ExpressionStatement",
         "src": "3820:66:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 363,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "UnaryOperation",
            "operator": "!",
            "prefix": true,
            "src": "3904:46:2",
            "subExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 359,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 295,
               "src": "3905:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
               }
              },
              "id": 361,
              "indexExpression": {
               "argumentTypes": null,
               "id": 360,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 346,
               "src": "3915:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "3905:22:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$266_storage",
               "typeString": "struct RealitioERC20.Question storage ref"
              }
             },
             "id": 362,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "is_pending_arbitration",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 257,
             "src": "3905:45:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "7175657374696f6e206d757374206e6f742062652070656e64696e67206172626974726174696f6e",
            "id": 364,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "3952:42:2",
            "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": 358,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "3896:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 365,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "3896:99:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 366,
         "nodeType": "ExpressionStatement",
         "src": "3896:99:2"
        },
        {
         "assignments": [
          368
         ],
         "declarations": [
          {
           "constant": false,
           "id": 368,
           "name": "finalize_ts",
           "nodeType": "VariableDeclaration",
           "scope": 409,
           "src": "4005:18:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           },
           "typeName": {
            "id": 367,
            "name": "uint32",
            "nodeType": "ElementaryTypeName",
            "src": "4005:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 373,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 369,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "4026:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 371,
           "indexExpression": {
            "argumentTypes": null,
            "id": 370,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 346,
            "src": "4036:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "4026:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 372,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "finalize_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 255,
          "src": "4026:34:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "4005:55:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            },
            "id": 383,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 377,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 375,
              "name": "finalize_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 368,
              "src": "4078:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "==",
             "rightExpression": {
              "argumentTypes": null,
              "id": 376,
              "name": "UNANSWERED",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 143,
              "src": "4093:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "src": "4078:25:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "||",
            "rightExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 382,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 378,
              "name": "finalize_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 368,
              "src": "4107:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": ">",
             "rightExpression": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 380,
                "name": "now",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 2464,
                "src": "4128:3:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "id": 379,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "lValueRequested": false,
               "nodeType": "ElementaryTypeNameExpression",
               "src": "4121:6:2",
               "typeDescriptions": {
                "typeIdentifier": "t_type$_t_uint32_$",
                "typeString": "type(uint32)"
               },
               "typeName": "uint32"
              },
              "id": 381,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "4121:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "src": "4107:25:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "src": "4078:54:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "66696e616c697a6174696f6e20646561646c696e65206d757374206e6f74206861766520706173736564",
            "id": 384,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "4134:44:2",
            "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": 374,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "4070:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 385,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "4070:109:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 386,
         "nodeType": "ExpressionStatement",
         "src": "4070:109:2"
        },
        {
         "assignments": [
          388
         ],
         "declarations": [
          {
           "constant": false,
           "id": 388,
           "name": "opening_ts",
           "nodeType": "VariableDeclaration",
           "scope": 409,
           "src": "4189:17:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           },
           "typeName": {
            "id": 387,
            "name": "uint32",
            "nodeType": "ElementaryTypeName",
            "src": "4189:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 393,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 389,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "4209:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 391,
           "indexExpression": {
            "argumentTypes": null,
            "id": 390,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 346,
            "src": "4219:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "4209:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 392,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "opening_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 251,
          "src": "4209:33:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "4189:53:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            },
            "id": 403,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 397,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 395,
              "name": "opening_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 388,
              "src": "4260:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "==",
             "rightExpression": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 396,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "4274:1:2",
              "subdenomination": null,
              "typeDescriptions": {
               "typeIdentifier": "t_rational_0_by_1",
               "typeString": "int_const 0"
              },
              "value": "0"
             },
             "src": "4260:15:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "||",
            "rightExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 402,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 398,
              "name": "opening_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 388,
              "src": "4279:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "<=",
             "rightExpression": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 400,
                "name": "now",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 2464,
                "src": "4300:3:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "id": 399,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "lValueRequested": false,
               "nodeType": "ElementaryTypeNameExpression",
               "src": "4293:6:2",
               "typeDescriptions": {
                "typeIdentifier": "t_type$_t_uint32_$",
                "typeString": "type(uint32)"
               },
               "typeName": "uint32"
              },
              "id": 401,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "4293:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "src": "4279:25:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "src": "4260:44:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "6f70656e696e672064617465206d757374206861766520706173736564",
            "id": 404,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "4306:31:2",
            "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": 394,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "4252:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 405,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "4252:86:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 406,
         "nodeType": "ExpressionStatement",
         "src": "4252:86:2"
        },
        {
         "id": 407,
         "nodeType": "PlaceholderStatement",
         "src": "4349:1:2"
        }
       ]
      },
      "documentation": null,
      "id": 409,
      "name": "stateOpen",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 347,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 346,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 409,
         "src": "3789:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 345,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "3789:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "3788:21:2"
      },
      "src": "3770:587:2",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 422,
       "nodeType": "Block",
       "src": "4417:122:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 414,
              "name": "questions",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 295,
              "src": "4435:9:2",
              "typeDescriptions": {
               "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
               "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
              }
             },
             "id": 416,
             "indexExpression": {
              "argumentTypes": null,
              "id": 415,
              "name": "question_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 411,
              "src": "4445:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "4435:22:2",
             "typeDescriptions": {
              "typeIdentifier": "t_struct$_Question_$266_storage",
              "typeString": "struct RealitioERC20.Question storage ref"
             }
            },
            "id": 417,
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "is_pending_arbitration",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 257,
            "src": "4435:45:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "7175657374696f6e206d7573742062652070656e64696e67206172626974726174696f6e",
            "id": 418,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "4482:38:2",
            "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": 413,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "4427:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 419,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "4427:94:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 420,
         "nodeType": "ExpressionStatement",
         "src": "4427:94:2"
        },
        {
         "id": 421,
         "nodeType": "PlaceholderStatement",
         "src": "4531:1:2"
        }
       ]
      },
      "documentation": null,
      "id": 423,
      "name": "statePendingArbitration",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 412,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 411,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 423,
         "src": "4396:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 410,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "4396:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "4395:21:2"
      },
      "src": "4363:176:2",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 478,
       "nodeType": "Block",
       "src": "4605:437:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 433,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 428,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 295,
               "src": "4623:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
               }
              },
              "id": 430,
              "indexExpression": {
               "argumentTypes": null,
               "id": 429,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 425,
               "src": "4633:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "4623:22:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$266_storage",
               "typeString": "struct RealitioERC20.Question storage ref"
              }
             },
             "id": 431,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "timeout",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 253,
             "src": "4623:30:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 432,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "4656:1:2",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "4623:34:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "7175657374696f6e206d757374206578697374",
            "id": 434,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "4659:21:2",
            "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": 427,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "4615:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 435,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "4615:66:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 436,
         "nodeType": "ExpressionStatement",
         "src": "4615:66:2"
        },
        {
         "assignments": [
          438
         ],
         "declarations": [
          {
           "constant": false,
           "id": 438,
           "name": "finalize_ts",
           "nodeType": "VariableDeclaration",
           "scope": 479,
           "src": "4691:18:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           },
           "typeName": {
            "id": 437,
            "name": "uint32",
            "nodeType": "ElementaryTypeName",
            "src": "4691:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 443,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 439,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "4712:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 441,
           "indexExpression": {
            "argumentTypes": null,
            "id": 440,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 425,
            "src": "4722:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "4712:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 442,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "finalize_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 255,
          "src": "4712:34:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "4691:55:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            },
            "id": 453,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 447,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 445,
              "name": "finalize_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 438,
              "src": "4764:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "==",
             "rightExpression": {
              "argumentTypes": null,
              "id": 446,
              "name": "UNANSWERED",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 143,
              "src": "4779:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "src": "4764:25:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "||",
            "rightExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 452,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 448,
              "name": "finalize_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 438,
              "src": "4793:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": ">",
             "rightExpression": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 450,
                "name": "now",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 2464,
                "src": "4814:3:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "id": 449,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "lValueRequested": false,
               "nodeType": "ElementaryTypeNameExpression",
               "src": "4807:6:2",
               "typeDescriptions": {
                "typeIdentifier": "t_type$_t_uint32_$",
                "typeString": "type(uint32)"
               },
               "typeName": "uint32"
              },
              "id": 451,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "4807:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "src": "4793:25:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "src": "4764:54:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "66696e616c697a6174696f6e206465616c696e65206d757374206e6f74206861766520706173736564",
            "id": 454,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "4820:43:2",
            "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": 444,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "4756:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 455,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "4756:108:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 456,
         "nodeType": "ExpressionStatement",
         "src": "4756:108:2"
        },
        {
         "assignments": [
          458
         ],
         "declarations": [
          {
           "constant": false,
           "id": 458,
           "name": "opening_ts",
           "nodeType": "VariableDeclaration",
           "scope": 479,
           "src": "4874:17:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           },
           "typeName": {
            "id": 457,
            "name": "uint32",
            "nodeType": "ElementaryTypeName",
            "src": "4874:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 463,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 459,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "4894:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 461,
           "indexExpression": {
            "argumentTypes": null,
            "id": 460,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 425,
            "src": "4904:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "4894:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 462,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "opening_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 251,
          "src": "4894:33:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "4874:53:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            },
            "id": 473,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 467,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 465,
              "name": "opening_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 458,
              "src": "4945:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "==",
             "rightExpression": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 466,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "4959:1:2",
              "subdenomination": null,
              "typeDescriptions": {
               "typeIdentifier": "t_rational_0_by_1",
               "typeString": "int_const 0"
              },
              "value": "0"
             },
             "src": "4945:15:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "||",
            "rightExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             },
             "id": 472,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 468,
              "name": "opening_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 458,
              "src": "4964:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "<=",
             "rightExpression": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 470,
                "name": "now",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 2464,
                "src": "4985:3:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "id": 469,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "lValueRequested": false,
               "nodeType": "ElementaryTypeNameExpression",
               "src": "4978:6:2",
               "typeDescriptions": {
                "typeIdentifier": "t_type$_t_uint32_$",
                "typeString": "type(uint32)"
               },
               "typeName": "uint32"
              },
              "id": 471,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "4978:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             "src": "4964:25:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "src": "4945:44:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "6f70656e696e672064617465206d757374206861766520706173736564",
            "id": 474,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "4991:31:2",
            "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": 464,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "4937:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 475,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "4937:86:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 476,
         "nodeType": "ExpressionStatement",
         "src": "4937:86:2"
        },
        {
         "id": 477,
         "nodeType": "PlaceholderStatement",
         "src": "5034:1:2"
        }
       ]
      },
      "documentation": null,
      "id": 479,
      "name": "stateOpenOrPendingArbitration",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 426,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 425,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 479,
         "src": "4584:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 424,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "4584:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "4583:21:2"
      },
      "src": "4545:497:2",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 491,
       "nodeType": "Block",
       "src": "5093:91:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 485,
              "name": "question_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 481,
              "src": "5123:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             }
            ],
            "expression": {
             "argumentTypes": [
              {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             ],
             "id": 484,
             "name": "isFinalized",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1532,
             "src": "5111:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
              "typeString": "function (bytes32) view returns (bool)"
             }
            },
            "id": 486,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "5111:24:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "7175657374696f6e206d7573742062652066696e616c697a6564",
            "id": 487,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "5137:28:2",
            "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": 483,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "5103:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 488,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "5103:63:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 489,
         "nodeType": "ExpressionStatement",
         "src": "5103:63:2"
        },
        {
         "id": 490,
         "nodeType": "PlaceholderStatement",
         "src": "5176:1:2"
        }
       ]
      },
      "documentation": null,
      "id": 492,
      "name": "stateFinalized",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 482,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 481,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 492,
         "src": "5072:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 480,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "5072:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "5071:21:2"
      },
      "src": "5048:136:2",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 520,
       "nodeType": "Block",
       "src": "5251:184:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 501,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 499,
             "name": "tokens",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 496,
             "src": "5269:6:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 500,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "5278:1:2",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "5269:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "626f6e64206d75737420626520706f736974697665",
            "id": 502,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "5281:23:2",
            "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": 498,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "5261:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 503,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "5261:44:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 504,
         "nodeType": "ExpressionStatement",
         "src": "5261:44:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 515,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 506,
             "name": "tokens",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 496,
             "src": "5324:6:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">=",
            "rightExpression": {
             "argumentTypes": null,
             "components": [
              {
               "argumentTypes": null,
               "arguments": [
                {
                 "argumentTypes": null,
                 "hexValue": "32",
                 "id": 512,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": true,
                 "kind": "number",
                 "lValueRequested": false,
                 "nodeType": "Literal",
                 "src": "5367:1:2",
                 "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": 507,
                   "name": "questions",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 295,
                   "src": "5335:9:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                    "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                   }
                  },
                  "id": 509,
                  "indexExpression": {
                   "argumentTypes": null,
                   "id": 508,
                   "name": "question_id",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 494,
                   "src": "5345:11:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                   }
                  },
                  "isConstant": false,
                  "isLValue": true,
                  "isPure": false,
                  "lValueRequested": false,
                  "nodeType": "IndexAccess",
                  "src": "5335:22:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_struct$_Question_$266_storage",
                   "typeString": "struct RealitioERC20.Question storage ref"
                  }
                 },
                 "id": 510,
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "memberName": "bond",
                 "nodeType": "MemberAccess",
                 "referencedDeclaration": 265,
                 "src": "5335:27:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "id": 511,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "memberName": "mul",
                "nodeType": "MemberAccess",
                "referencedDeclaration": 2357,
                "src": "5335:31:2",
                "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": 513,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "kind": "functionCall",
               "lValueRequested": false,
               "names": [],
               "nodeType": "FunctionCall",
               "src": "5335:34:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "id": 514,
             "isConstant": false,
             "isInlineArray": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "TupleExpression",
             "src": "5334:36:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "src": "5324:46:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "626f6e64206d75737420626520646f75626c65206174206c656173742070726576696f757320626f6e64",
            "id": 516,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "5372:44:2",
            "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": 505,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "5316:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 517,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "5316:101:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 518,
         "nodeType": "ExpressionStatement",
         "src": "5316:101:2"
        },
        {
         "id": 519,
         "nodeType": "PlaceholderStatement",
         "src": "5427:1:2"
        }
       ]
      },
      "documentation": null,
      "id": 521,
      "name": "bondMustDouble",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 497,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 494,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 521,
         "src": "5214:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 493,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "5214:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 496,
         "name": "tokens",
         "nodeType": "VariableDeclaration",
         "scope": 521,
         "src": "5235:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 495,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "5235:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "5213:37:2"
      },
      "src": "5190:245:2",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 543,
       "nodeType": "Block",
       "src": "5528:159:2",
       "statements": [
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          },
          "id": 529,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 527,
           "name": "max_previous",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 525,
           "src": "5542:12:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": ">",
          "rightExpression": {
           "argumentTypes": null,
           "hexValue": "30",
           "id": 528,
           "isConstant": false,
           "isLValue": false,
           "isPure": true,
           "kind": "number",
           "lValueRequested": false,
           "nodeType": "Literal",
           "src": "5557:1:2",
           "subdenomination": null,
           "typeDescriptions": {
            "typeIdentifier": "t_rational_0_by_1",
            "typeString": "int_const 0"
           },
           "value": "0"
          },
          "src": "5542:16:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 541,
         "nodeType": "IfStatement",
         "src": "5538:132:2",
         "trueBody": {
          "id": 540,
          "nodeType": "Block",
          "src": "5560:110:2",
          "statements": [
           {
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "commonType": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               },
               "id": 536,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "lValueRequested": false,
               "leftExpression": {
                "argumentTypes": null,
                "expression": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 531,
                  "name": "questions",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 295,
                  "src": "5582:9:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                   "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                  }
                 },
                 "id": 533,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 532,
                  "name": "question_id",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 523,
                  "src": "5592:11:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_bytes32",
                   "typeString": "bytes32"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "nodeType": "IndexAccess",
                 "src": "5582:22:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Question_$266_storage",
                  "typeString": "struct RealitioERC20.Question storage ref"
                 }
                },
                "id": 534,
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "memberName": "bond",
                "nodeType": "MemberAccess",
                "referencedDeclaration": 265,
                "src": "5582:27:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "nodeType": "BinaryOperation",
               "operator": "<=",
               "rightExpression": {
                "argumentTypes": null,
                "id": 535,
                "name": "max_previous",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 525,
                "src": "5613:12:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "src": "5582:43:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
               }
              },
              {
               "argumentTypes": null,
               "hexValue": "626f6e64206d75737420657863656564206d61785f70726576696f7573",
               "id": 537,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "kind": "string",
               "lValueRequested": false,
               "nodeType": "Literal",
               "src": "5627:31:2",
               "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": 530,
              "name": "require",
              "nodeType": "Identifier",
              "overloadedDeclarations": [
               2465,
               2466
              ],
              "referencedDeclaration": 2466,
              "src": "5574:7:2",
              "typeDescriptions": {
               "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
               "typeString": "function (bool,string memory) pure"
              }
             },
             "id": 538,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "5574:85:2",
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 539,
            "nodeType": "ExpressionStatement",
            "src": "5574:85:2"
           }
          ]
         }
        },
        {
         "id": 542,
         "nodeType": "PlaceholderStatement",
         "src": "5679:1:2"
        }
       ]
      },
      "documentation": null,
      "id": 544,
      "name": "previousBondMustNotBeatMaxPrevious",
      "nodeType": "ModifierDefinition",
      "parameters": {
       "id": 526,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 523,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 544,
         "src": "5485:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 522,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "5485:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 525,
         "name": "max_previous",
         "nodeType": "VariableDeclaration",
         "scope": 544,
         "src": "5506:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 524,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "5506:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "5484:43:2"
      },
      "src": "5441:246:2",
      "visibility": "internal"
     },
     {
      "body": {
       "id": 562,
       "nodeType": "Block",
       "src": "5742:108:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_contract$_IERC20_$117",
             "typeString": "contract IERC20"
            },
            "id": 554,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 550,
             "name": "token",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 4,
             "src": "5760:5:2",
             "typeDescriptions": {
              "typeIdentifier": "t_contract$_IERC20_$117",
              "typeString": "contract IERC20"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "==",
            "rightExpression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "hexValue": "307830",
               "id": 552,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "kind": "number",
               "lValueRequested": false,
               "nodeType": "Literal",
               "src": "5776:3:2",
               "subdenomination": null,
               "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
               },
               "value": "0x0"
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
               }
              ],
              "id": 551,
              "name": "IERC20",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 117,
              "src": "5769:6:2",
              "typeDescriptions": {
               "typeIdentifier": "t_type$_t_contract$_IERC20_$117_$",
               "typeString": "type(contract IERC20)"
              }
             },
             "id": 553,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "typeConversion",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "5769:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_contract$_IERC20_$117",
              "typeString": "contract IERC20"
             }
            },
            "src": "5760:20:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "546f6b656e2063616e206f6e6c7920626520696e697469616c697a6564206f6e6365",
            "id": 555,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "5782:36:2",
            "subdenomination": null,
            "typeDescriptions": {
             "typeIdentifier": "t_stringliteral_80f2fa6a1f10a3aaa9e08a5fe405bb69eb5d3bdf4c164a77f5a710f6094de6c4",
             "typeString": "literal_string \"Token can only be initialized once\""
            },
            "value": "Token can only be initialized once"
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            },
            {
             "typeIdentifier": "t_stringliteral_80f2fa6a1f10a3aaa9e08a5fe405bb69eb5d3bdf4c164a77f5a710f6094de6c4",
             "typeString": "literal_string \"Token can only be initialized once\""
            }
           ],
           "id": 549,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "5752:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 556,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "5752:67:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 557,
         "nodeType": "ExpressionStatement",
         "src": "5752:67:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 560,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "id": 558,
           "name": "token",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 4,
           "src": "5829:5:2",
           "typeDescriptions": {
            "typeIdentifier": "t_contract$_IERC20_$117",
            "typeString": "contract IERC20"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 559,
           "name": "_token",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 546,
           "src": "5837:6:2",
           "typeDescriptions": {
            "typeIdentifier": "t_contract$_IERC20_$117",
            "typeString": "contract IERC20"
           }
          },
          "src": "5829:14:2",
          "typeDescriptions": {
           "typeIdentifier": "t_contract$_IERC20_$117",
           "typeString": "contract IERC20"
          }
         },
         "id": 561,
         "nodeType": "ExpressionStatement",
         "src": "5829:14:2"
        }
       ]
      },
      "documentation": null,
      "id": 563,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "setToken",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 547,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 546,
         "name": "_token",
         "nodeType": "VariableDeclaration",
         "scope": 563,
         "src": "5711:13:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_contract$_IERC20_$117",
          "typeString": "contract IERC20"
         },
         "typeName": {
          "contractScope": null,
          "id": 545,
          "name": "IERC20",
          "nodeType": "UserDefinedTypeName",
          "referencedDeclaration": 117,
          "src": "5711:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_contract$_IERC20_$117",
           "typeString": "contract IERC20"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "5710:15:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 548,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "5742:0:2"
      },
      "scope": 2322,
      "src": "5693:157:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 586,
       "nodeType": "Block",
       "src": "6107:538:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "hexValue": "7b227469746c65223a20222573222c202274797065223a2022626f6f6c222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
            "id": 567,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "6132:65:2",
            "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": 566,
           "name": "createTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 656,
           "src": "6117:14:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
            "typeString": "function (string memory) returns (uint256)"
           }
          },
          "id": 568,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "6117:81:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 569,
         "nodeType": "ExpressionStatement",
         "src": "6117:81:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "hexValue": "7b227469746c65223a20222573222c202274797065223a202275696e74222c2022646563696d616c73223a2031382c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
            "id": 571,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "6223:81:2",
            "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": 570,
           "name": "createTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 656,
           "src": "6208:14:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
            "typeString": "function (string memory) returns (uint256)"
           }
          },
          "id": 572,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "6208:97:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 573,
         "nodeType": "ExpressionStatement",
         "src": "6208:97:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "hexValue": "7b227469746c65223a20222573222c202274797065223a202273696e676c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
            "id": 575,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "6330:92:2",
            "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": 574,
           "name": "createTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 656,
           "src": "6315:14:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
            "typeString": "function (string memory) returns (uint256)"
           }
          },
          "id": 576,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "6315:108:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 577,
         "nodeType": "ExpressionStatement",
         "src": "6315:108:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "hexValue": "7b227469746c65223a20222573222c202274797065223a20226d756c7469706c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
            "id": 579,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "6448:94:2",
            "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": 578,
           "name": "createTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 656,
           "src": "6433:14:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
            "typeString": "function (string memory) returns (uint256)"
           }
          },
          "id": 580,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "6433:110:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 581,
         "nodeType": "ExpressionStatement",
         "src": "6433:110:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "hexValue": "7b227469746c65223a20222573222c202274797065223a20226461746574696d65222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d",
            "id": 583,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "6568:69:2",
            "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": 582,
           "name": "createTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 656,
           "src": "6553:14:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
            "typeString": "function (string memory) returns (uint256)"
           }
          },
          "id": 584,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "6553:85:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 585,
         "nodeType": "ExpressionStatement",
         "src": "6553:85:2"
        }
       ]
      },
      "documentation": "@notice Constructor, sets up some initial templates\n @dev Creates some generalized templates for different question types used in the DApp.\n param _token The token used for everything except arbitration",
      "id": 587,
      "implemented": true,
      "isConstructor": true,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 564,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "6092:2:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 565,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "6107:0:2"
      },
      "scope": 2322,
      "src": "6081:564:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 607,
       "nodeType": "Block",
       "src": "6990:108:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "id": 599,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 594,
            "name": "arbitrator_question_fees",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 307,
            "src": "7000:24:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
             "typeString": "mapping(address => uint256)"
            }
           },
           "id": 597,
           "indexExpression": {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 595,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2462,
             "src": "7025:3:2",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 596,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "7025:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "nodeType": "IndexAccess",
           "src": "7000:36:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 598,
           "name": "fee",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 589,
           "src": "7039:3:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "7000:42:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 600,
         "nodeType": "ExpressionStatement",
         "src": "7000:42:2"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 602,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2462,
             "src": "7075:3:2",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 603,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "7075:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 604,
            "name": "fee",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 589,
            "src": "7087:3:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           ],
           "id": 601,
           "name": "LogSetQuestionFee",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 155,
           "src": "7057:17:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
            "typeString": "function (address,uint256)"
           }
          },
          "id": 605,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "7057:34:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 606,
         "nodeType": "EmitStatement",
         "src": "7052:39:2"
        }
       ]
      },
      "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": 608,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [],
        "id": 592,
        "modifierName": {
         "argumentTypes": null,
         "id": 591,
         "name": "stateAny",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 328,
         "src": "6965:8:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$__$",
          "typeString": "modifier ()"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "6965:10:2"
       }
      ],
      "name": "setQuestionFee",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 590,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 589,
         "name": "fee",
         "nodeType": "VariableDeclaration",
         "scope": 608,
         "src": "6943:11:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 588,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "6943:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "6942:13:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 593,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "6990:0:2"
      },
      "scope": 2322,
      "src": "6919:179:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 655,
       "nodeType": "Block",
       "src": "7567:259:2",
       "statements": [
        {
         "assignments": [
          618
         ],
         "declarations": [
          {
           "constant": false,
           "id": 618,
           "name": "id",
           "nodeType": "VariableDeclaration",
           "scope": 656,
           "src": "7577:10:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 617,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "7577:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 620,
         "initialValue": {
          "argumentTypes": null,
          "id": 619,
          "name": "nextTemplateID",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 283,
          "src": "7590:14:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "7577:27:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 626,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 621,
            "name": "templates",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 287,
            "src": "7614:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
             "typeString": "mapping(uint256 => uint256)"
            }
           },
           "id": 623,
           "indexExpression": {
            "argumentTypes": null,
            "id": 622,
            "name": "id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 618,
            "src": "7624:2:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "nodeType": "IndexAccess",
           "src": "7614:13:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "id": 624,
            "name": "block",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2452,
            "src": "7630:5:2",
            "typeDescriptions": {
             "typeIdentifier": "t_magic_block",
             "typeString": "block"
            }
           },
           "id": 625,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "number",
           "nodeType": "MemberAccess",
           "referencedDeclaration": null,
           "src": "7630:12:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "7614:28:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 627,
         "nodeType": "ExpressionStatement",
         "src": "7614:28:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 637,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 628,
            "name": "template_hashes",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 291,
            "src": "7652:15:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_uint256_$_t_bytes32_$",
             "typeString": "mapping(uint256 => bytes32)"
            }
           },
           "id": 630,
           "indexExpression": {
            "argumentTypes": null,
            "id": 629,
            "name": "id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 618,
            "src": "7668:2:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "nodeType": "IndexAccess",
           "src": "7652:19:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 634,
               "name": "content",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 610,
               "src": "7701:7:2",
               "typeDescriptions": {
                "typeIdentifier": "t_string_memory_ptr",
                "typeString": "string memory"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_string_memory_ptr",
                "typeString": "string memory"
               }
              ],
              "expression": {
               "argumentTypes": null,
               "id": 632,
               "name": "abi",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2449,
               "src": "7684:3:2",
               "typeDescriptions": {
                "typeIdentifier": "t_magic_abi",
                "typeString": "abi"
               }
              },
              "id": 633,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "memberName": "encodePacked",
              "nodeType": "MemberAccess",
              "referencedDeclaration": null,
              "src": "7684:16:2",
              "typeDescriptions": {
               "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
               "typeString": "function () pure returns (bytes memory)"
              }
             },
             "id": 635,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "7684:25:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes_memory_ptr",
              "typeString": "bytes memory"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_bytes_memory_ptr",
              "typeString": "bytes memory"
             }
            ],
            "id": 631,
            "name": "keccak256",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2456,
            "src": "7674:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
             "typeString": "function () pure returns (bytes32)"
            }
           },
           "id": 636,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "7674:36:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "7652:58:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "id": 638,
         "nodeType": "ExpressionStatement",
         "src": "7652:58:2"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 640,
            "name": "id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 618,
            "src": "7740:2:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 641,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2462,
             "src": "7744:3:2",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 642,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "7744:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 643,
            "name": "content",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 610,
            "src": "7756:7:2",
            "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": 639,
           "name": "LogNewTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 163,
           "src": "7725:14:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (uint256,address,string memory)"
           }
          },
          "id": 644,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "7725:39:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 645,
         "nodeType": "EmitStatement",
         "src": "7720:44:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 651,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "id": 646,
           "name": "nextTemplateID",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 283,
           "src": "7774:14:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "hexValue": "31",
             "id": 649,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "7798:1:2",
             "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": 647,
             "name": "id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 618,
             "src": "7791:2:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 648,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "add",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 2419,
            "src": "7791:6:2",
            "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": 650,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "7791:9:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "7774:26:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 652,
         "nodeType": "ExpressionStatement",
         "src": "7774:26:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 653,
          "name": "id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 618,
          "src": "7817:2:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "functionReturnParameters": 616,
         "id": 654,
         "nodeType": "Return",
         "src": "7810:9:2"
        }
       ]
      },
      "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": 656,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [],
        "id": 613,
        "modifierName": {
         "argumentTypes": null,
         "id": 612,
         "name": "stateAny",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 328,
         "src": "7527:8:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$__$",
          "typeString": "modifier ()"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "7527:10:2"
       }
      ],
      "name": "createTemplate",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 611,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 610,
         "name": "content",
         "nodeType": "VariableDeclaration",
         "scope": 656,
         "src": "7502:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_string_memory_ptr",
          "typeString": "string"
         },
         "typeName": {
          "id": 609,
          "name": "string",
          "nodeType": "ElementaryTypeName",
          "src": "7502:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_string_storage_ptr",
           "typeString": "string"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "7501:16:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 616,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 615,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 656,
         "src": "7558:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 614,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "7558:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "7557:9:2"
      },
      "scope": 2322,
      "src": "7478:348:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 688,
       "nodeType": "Block",
       "src": "8963:153:2",
       "statements": [
        {
         "assignments": [
          674
         ],
         "declarations": [
          {
           "constant": false,
           "id": 674,
           "name": "template_id",
           "nodeType": "VariableDeclaration",
           "scope": 689,
           "src": "8973:19:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 673,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "8973:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 678,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 676,
            "name": "content",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 658,
            "src": "9010:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_string_memory_ptr",
             "typeString": "string memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_string_memory_ptr",
             "typeString": "string memory"
            }
           ],
           "id": 675,
           "name": "createTemplate",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 656,
           "src": "8995:14:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$",
            "typeString": "function (string memory) returns (uint256)"
           }
          },
          "id": 677,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "8995:23:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "8973:45:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 680,
            "name": "template_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 674,
            "src": "9047:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 681,
            "name": "question",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 660,
            "src": "9060:8:2",
            "typeDescriptions": {
             "typeIdentifier": "t_string_memory_ptr",
             "typeString": "string memory"
            }
           },
           {
            "argumentTypes": null,
            "id": 682,
            "name": "arbitrator",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 662,
            "src": "9070:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 683,
            "name": "timeout",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 664,
            "src": "9082:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 684,
            "name": "opening_ts",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 666,
            "src": "9091:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 685,
            "name": "nonce",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 668,
            "src": "9103:5:2",
            "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": 679,
           "name": "askQuestion",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 766,
           "src": "9035:11:2",
           "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": 686,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "9035:74:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 672,
         "id": 687,
         "nodeType": "Return",
         "src": "9028:81:2"
        }
       ]
      },
      "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": 689,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "createTemplateAndAskQuestion",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 669,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 658,
         "name": "content",
         "nodeType": "VariableDeclaration",
         "scope": 689,
         "src": "8747:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_string_memory_ptr",
          "typeString": "string"
         },
         "typeName": {
          "id": 657,
          "name": "string",
          "nodeType": "ElementaryTypeName",
          "src": "8747:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_string_storage_ptr",
           "typeString": "string"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 660,
         "name": "question",
         "nodeType": "VariableDeclaration",
         "scope": 689,
         "src": "8772:15:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_string_memory_ptr",
          "typeString": "string"
         },
         "typeName": {
          "id": 659,
          "name": "string",
          "nodeType": "ElementaryTypeName",
          "src": "8772:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_string_storage_ptr",
           "typeString": "string"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 662,
         "name": "arbitrator",
         "nodeType": "VariableDeclaration",
         "scope": 689,
         "src": "8789:18:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 661,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "8789:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 664,
         "name": "timeout",
         "nodeType": "VariableDeclaration",
         "scope": 689,
         "src": "8809:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 663,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "8809:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 666,
         "name": "opening_ts",
         "nodeType": "VariableDeclaration",
         "scope": 689,
         "src": "8825:17:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 665,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "8825:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 668,
         "name": "nonce",
         "nodeType": "VariableDeclaration",
         "scope": 689,
         "src": "8844:13:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 667,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "8844:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "8737:127:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 672,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 671,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 689,
         "src": "8954:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 670,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "8954:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "8953:9:2"
      },
      "scope": 2322,
      "src": "8700:416:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 765,
       "nodeType": "Block",
       "src": "10468:536:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 711,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 707,
              "name": "templates",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 287,
              "src": "10487:9:2",
              "typeDescriptions": {
               "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
               "typeString": "mapping(uint256 => uint256)"
              }
             },
             "id": 709,
             "indexExpression": {
              "argumentTypes": null,
              "id": 708,
              "name": "template_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 691,
              "src": "10497:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "10487:22:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 710,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "10512:1:2",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "10487:26:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "74656d706c617465206d757374206578697374",
            "id": 712,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "10515:21:2",
            "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": 706,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "10479:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 713,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "10479:58:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 714,
         "nodeType": "ExpressionStatement",
         "src": "10479:58:2"
        },
        {
         "assignments": [
          716
         ],
         "declarations": [
          {
           "constant": false,
           "id": 716,
           "name": "content_hash",
           "nodeType": "VariableDeclaration",
           "scope": 766,
           "src": "10548:20:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 715,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "10548:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 725,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 720,
              "name": "template_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 691,
              "src": "10598:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             {
              "argumentTypes": null,
              "id": 721,
              "name": "opening_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 699,
              "src": "10611:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             {
              "argumentTypes": null,
              "id": 722,
              "name": "question",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 693,
              "src": "10623:8:2",
              "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": 718,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2449,
              "src": "10581:3:2",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 719,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "10581:16:2",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 723,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "10581:51:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 717,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2456,
           "src": "10571:9:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 724,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "10571:62:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "10548:85:2"
        },
        {
         "assignments": [
          727
         ],
         "declarations": [
          {
           "constant": false,
           "id": 727,
           "name": "question_id",
           "nodeType": "VariableDeclaration",
           "scope": 766,
           "src": "10643:19:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 726,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "10643:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 739,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 731,
              "name": "content_hash",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 716,
              "src": "10692:12:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 732,
              "name": "arbitrator",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 695,
              "src": "10706:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             {
              "argumentTypes": null,
              "id": 733,
              "name": "timeout",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 697,
              "src": "10718:7:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "id": 734,
               "name": "msg",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2462,
               "src": "10727:3:2",
               "typeDescriptions": {
                "typeIdentifier": "t_magic_message",
                "typeString": "msg"
               }
              },
              "id": 735,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "memberName": "sender",
              "nodeType": "MemberAccess",
              "referencedDeclaration": null,
              "src": "10727:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             {
              "argumentTypes": null,
              "id": 736,
              "name": "nonce",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 701,
              "src": "10739:5:2",
              "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": 729,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2449,
              "src": "10675:3:2",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 730,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "10675:16:2",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 737,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "10675:70:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 728,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2456,
           "src": "10665:9:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 738,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "10665:81:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "10643:103:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 741,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 727,
            "src": "10770:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 742,
            "name": "content_hash",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 716,
            "src": "10783:12:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 743,
            "name": "arbitrator",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 695,
            "src": "10797:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 744,
            "name": "timeout",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 697,
            "src": "10809:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 745,
            "name": "opening_ts",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 699,
            "src": "10818:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "30",
            "id": 746,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "number",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "10830:1:2",
            "subdenomination": null,
            "typeDescriptions": {
             "typeIdentifier": "t_rational_0_by_1",
             "typeString": "int_const 0"
            },
            "value": "0"
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            {
             "typeIdentifier": "t_rational_0_by_1",
             "typeString": "int_const 0"
            }
           ],
           "id": 740,
           "name": "_askQuestion",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1034,
           "src": "10757:12:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$returns$__$",
            "typeString": "function (bytes32,bytes32,address,uint32,uint32,uint256)"
           }
          },
          "id": 747,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "10757:75:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 748,
         "nodeType": "ExpressionStatement",
         "src": "10757:75:2"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 750,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 727,
            "src": "10862:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 751,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2462,
             "src": "10875:3:2",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 752,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "10875:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 753,
            "name": "template_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 691,
            "src": "10887:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 754,
            "name": "question",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 693,
            "src": "10900:8:2",
            "typeDescriptions": {
             "typeIdentifier": "t_string_memory_ptr",
             "typeString": "string memory"
            }
           },
           {
            "argumentTypes": null,
            "id": 755,
            "name": "content_hash",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 716,
            "src": "10910:12:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 756,
            "name": "arbitrator",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 695,
            "src": "10924:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 757,
            "name": "timeout",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 697,
            "src": "10936:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 758,
            "name": "opening_ts",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 699,
            "src": "10945:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 759,
            "name": "nonce",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 701,
            "src": "10957:5:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 760,
            "name": "now",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2464,
            "src": "10964:3:2",
            "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": 749,
           "name": "LogNewQuestion",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 185,
           "src": "10847:14:2",
           "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": 761,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "10847:121:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 762,
         "nodeType": "EmitStatement",
         "src": "10842:126:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 763,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 727,
          "src": "10986:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 705,
         "id": 764,
         "nodeType": "Return",
         "src": "10979:18:2"
        }
       ]
      },
      "documentation": "@notice Ask a new question without a bounty and return the ID\n @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n @dev Calling without the token param will only work if there is no arbitrator-set question fee.\n @dev This has the same function signature as askQuestion() in the non-ERC20 version, which is optionally payable.\n @param template_id The ID number of the template the question will use\n @param question A string containing the parameters that will be passed into the template to make the question\n @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n @param opening_ts If set, the earliest time it should be possible to answer the question.\n @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n @return The ID of the newly-created question, created deterministically.",
      "id": 766,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "askQuestion",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 702,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 691,
         "name": "template_id",
         "nodeType": "VariableDeclaration",
         "scope": 766,
         "src": "10262:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 690,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "10262:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 693,
         "name": "question",
         "nodeType": "VariableDeclaration",
         "scope": 766,
         "src": "10283:15:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_string_memory_ptr",
          "typeString": "string"
         },
         "typeName": {
          "id": 692,
          "name": "string",
          "nodeType": "ElementaryTypeName",
          "src": "10283:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_string_storage_ptr",
           "typeString": "string"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 695,
         "name": "arbitrator",
         "nodeType": "VariableDeclaration",
         "scope": 766,
         "src": "10300:18:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 694,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "10300:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 697,
         "name": "timeout",
         "nodeType": "VariableDeclaration",
         "scope": 766,
         "src": "10320:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 696,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "10320:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 699,
         "name": "opening_ts",
         "nodeType": "VariableDeclaration",
         "scope": 766,
         "src": "10336:17:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 698,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "10336:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 701,
         "name": "nonce",
         "nodeType": "VariableDeclaration",
         "scope": 766,
         "src": "10355:13:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 700,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "10355:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "10261:108:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 705,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 704,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 766,
         "src": "10459:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 703,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "10459:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "10458:9:2"
      },
      "scope": 2322,
      "src": "10241:763:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 848,
       "nodeType": "Block",
       "src": "12224:581:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 786,
            "name": "tokens",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 780,
            "src": "12257:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           ],
           "id": 785,
           "name": "_deductTokensOrRevert",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 918,
           "src": "12235:21:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
            "typeString": "function (uint256)"
           }
          },
          "id": 787,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "12235:29:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 788,
         "nodeType": "ExpressionStatement",
         "src": "12235:29:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 794,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 790,
              "name": "templates",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 287,
              "src": "12283:9:2",
              "typeDescriptions": {
               "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
               "typeString": "mapping(uint256 => uint256)"
              }
             },
             "id": 792,
             "indexExpression": {
              "argumentTypes": null,
              "id": 791,
              "name": "template_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 768,
              "src": "12293:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "12283:22:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 793,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "12308:1:2",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "12283:26:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "74656d706c617465206d757374206578697374",
            "id": 795,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "12311:21:2",
            "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": 789,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "12275:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 796,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "12275:58:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 797,
         "nodeType": "ExpressionStatement",
         "src": "12275:58:2"
        },
        {
         "assignments": [
          799
         ],
         "declarations": [
          {
           "constant": false,
           "id": 799,
           "name": "content_hash",
           "nodeType": "VariableDeclaration",
           "scope": 849,
           "src": "12344:20:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 798,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "12344:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 808,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 803,
              "name": "template_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 768,
              "src": "12394:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             {
              "argumentTypes": null,
              "id": 804,
              "name": "opening_ts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 776,
              "src": "12407:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             {
              "argumentTypes": null,
              "id": 805,
              "name": "question",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 770,
              "src": "12419:8:2",
              "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": 801,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2449,
              "src": "12377:3:2",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 802,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "12377:16:2",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 806,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "12377:51:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 800,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2456,
           "src": "12367:9:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 807,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "12367:62:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "12344:85:2"
        },
        {
         "assignments": [
          810
         ],
         "declarations": [
          {
           "constant": false,
           "id": 810,
           "name": "question_id",
           "nodeType": "VariableDeclaration",
           "scope": 849,
           "src": "12439:19:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 809,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "12439:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 822,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 814,
              "name": "content_hash",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 799,
              "src": "12488:12:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 815,
              "name": "arbitrator",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 772,
              "src": "12502:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             {
              "argumentTypes": null,
              "id": 816,
              "name": "timeout",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 774,
              "src": "12514:7:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint32",
               "typeString": "uint32"
              }
             },
             {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "id": 817,
               "name": "msg",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2462,
               "src": "12523:3:2",
               "typeDescriptions": {
                "typeIdentifier": "t_magic_message",
                "typeString": "msg"
               }
              },
              "id": 818,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "memberName": "sender",
              "nodeType": "MemberAccess",
              "referencedDeclaration": null,
              "src": "12523:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             {
              "argumentTypes": null,
              "id": 819,
              "name": "nonce",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 778,
              "src": "12535:5:2",
              "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": 812,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2449,
              "src": "12471:3:2",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 813,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "12471:16:2",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 820,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "12471:70:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 811,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2456,
           "src": "12461:9:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 821,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "12461:81:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "12439:103:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 824,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 810,
            "src": "12566:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 825,
            "name": "content_hash",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 799,
            "src": "12579:12:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 826,
            "name": "arbitrator",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 772,
            "src": "12593:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 827,
            "name": "timeout",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 774,
            "src": "12605:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 828,
            "name": "opening_ts",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 776,
            "src": "12614:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 829,
            "name": "tokens",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 780,
            "src": "12626:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           ],
           "id": 823,
           "name": "_askQuestion",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1034,
           "src": "12553:12:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint32_$_t_uint32_$_t_uint256_$returns$__$",
            "typeString": "function (bytes32,bytes32,address,uint32,uint32,uint256)"
           }
          },
          "id": 830,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "12553:80:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 831,
         "nodeType": "ExpressionStatement",
         "src": "12553:80:2"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 833,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 810,
            "src": "12663:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 834,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2462,
             "src": "12676:3:2",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 835,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "12676:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 836,
            "name": "template_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 768,
            "src": "12688:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 837,
            "name": "question",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 770,
            "src": "12701:8:2",
            "typeDescriptions": {
             "typeIdentifier": "t_string_memory_ptr",
             "typeString": "string memory"
            }
           },
           {
            "argumentTypes": null,
            "id": 838,
            "name": "content_hash",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 799,
            "src": "12711:12:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 839,
            "name": "arbitrator",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 772,
            "src": "12725:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 840,
            "name": "timeout",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 774,
            "src": "12737:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 841,
            "name": "opening_ts",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 776,
            "src": "12746:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           {
            "argumentTypes": null,
            "id": 842,
            "name": "nonce",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 778,
            "src": "12758:5:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 843,
            "name": "now",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2464,
            "src": "12765:3:2",
            "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": 832,
           "name": "LogNewQuestion",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 185,
           "src": "12648:14:2",
           "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": 844,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "12648:121:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 845,
         "nodeType": "EmitStatement",
         "src": "12643:126:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 846,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 810,
          "src": "12787:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 784,
         "id": 847,
         "nodeType": "Return",
         "src": "12780:18:2"
        }
       ]
      },
      "documentation": "@notice Ask a new question with a bounty and return the ID\n @dev Template data is only stored in the event logs, but its block number is kept in contract storage.\n @param template_id The ID number of the template the question will use\n @param question A string containing the parameters that will be passed into the template to make the question\n @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute\n @param timeout How long the contract should wait after the answer is changed before finalizing on that answer\n @param opening_ts If set, the earliest time it should be possible to answer the question.\n @param nonce A user-specified nonce used in the question ID. Change it to repeat a question.\n @param tokens The combined initial question bounty and question fee\n @return The ID of the newly-created question, created deterministically.",
      "id": 849,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "askQuestionERC20",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 781,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 768,
         "name": "template_id",
         "nodeType": "VariableDeclaration",
         "scope": 849,
         "src": "12002:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 767,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "12002:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 770,
         "name": "question",
         "nodeType": "VariableDeclaration",
         "scope": 849,
         "src": "12023:15:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_string_memory_ptr",
          "typeString": "string"
         },
         "typeName": {
          "id": 769,
          "name": "string",
          "nodeType": "ElementaryTypeName",
          "src": "12023:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_string_storage_ptr",
           "typeString": "string"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 772,
         "name": "arbitrator",
         "nodeType": "VariableDeclaration",
         "scope": 849,
         "src": "12040:18:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 771,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "12040:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 774,
         "name": "timeout",
         "nodeType": "VariableDeclaration",
         "scope": 849,
         "src": "12060:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 773,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "12060:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 776,
         "name": "opening_ts",
         "nodeType": "VariableDeclaration",
         "scope": 849,
         "src": "12076:17:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 775,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "12076:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 778,
         "name": "nonce",
         "nodeType": "VariableDeclaration",
         "scope": 849,
         "src": "12095:13:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 777,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "12095:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 780,
         "name": "tokens",
         "nodeType": "VariableDeclaration",
         "scope": 849,
         "src": "12110:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 779,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "12110:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "12001:124:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 784,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 783,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 849,
         "src": "12215:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 782,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "12215:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "12214:9:2"
      },
      "scope": 2322,
      "src": "11976:829:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 917,
       "nodeType": "Block",
       "src": "12872:646:2",
       "statements": [
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          },
          "id": 856,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 854,
           "name": "tokens",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 851,
           "src": "12887:6:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "==",
          "rightExpression": {
           "argumentTypes": null,
           "hexValue": "30",
           "id": 855,
           "isConstant": false,
           "isLValue": false,
           "isPure": true,
           "kind": "number",
           "lValueRequested": false,
           "nodeType": "Literal",
           "src": "12897:1:2",
           "subdenomination": null,
           "typeDescriptions": {
            "typeIdentifier": "t_rational_0_by_1",
            "typeString": "int_const 0"
           },
           "value": "0"
          },
          "src": "12887:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 859,
         "nodeType": "IfStatement",
         "src": "12883:48:2",
         "trueBody": {
          "id": 858,
          "nodeType": "Block",
          "src": "12900:31:2",
          "statements": [
           {
            "expression": null,
            "functionReturnParameters": 853,
            "id": 857,
            "nodeType": "Return",
            "src": "12914:7:2"
           }
          ]
         }
        },
        {
         "assignments": [
          861
         ],
         "declarations": [
          {
           "constant": false,
           "id": 861,
           "name": "bal",
           "nodeType": "VariableDeclaration",
           "scope": 918,
           "src": "12941:11:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 860,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "12941:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 866,
         "initialValue": {
          "argumentTypes": null,
          "baseExpression": {
           "argumentTypes": null,
           "id": 862,
           "name": "balanceOf",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 8,
           "src": "12955:9:2",
           "typeDescriptions": {
            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
            "typeString": "mapping(address => uint256)"
           }
          },
          "id": 865,
          "indexExpression": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "id": 863,
            "name": "msg",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2462,
            "src": "12965:3:2",
            "typeDescriptions": {
             "typeIdentifier": "t_magic_message",
             "typeString": "msg"
            }
           },
           "id": 864,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "sender",
           "nodeType": "MemberAccess",
           "referencedDeclaration": null,
           "src": "12965:10:2",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "nodeType": "IndexAccess",
          "src": "12955:21:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "12941:35:2"
        },
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          },
          "id": 869,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 867,
           "name": "bal",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 861,
           "src": "13060:3:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": ">",
          "rightExpression": {
           "argumentTypes": null,
           "hexValue": "30",
           "id": 868,
           "isConstant": false,
           "isLValue": false,
           "isPure": true,
           "kind": "number",
           "lValueRequested": false,
           "nodeType": "Literal",
           "src": "13066:1:2",
           "subdenomination": null,
           "typeDescriptions": {
            "typeIdentifier": "t_rational_0_by_1",
            "typeString": "int_const 0"
           },
           "value": "0"
          },
          "src": "13060:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 902,
         "nodeType": "IfStatement",
         "src": "13056:258:2",
         "trueBody": {
          "id": 901,
          "nodeType": "Block",
          "src": "13069:245:2",
          "statements": [
           {
            "condition": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             },
             "id": 872,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 870,
              "name": "bal",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 861,
              "src": "13087:3:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": ">=",
             "rightExpression": {
              "argumentTypes": null,
              "id": 871,
              "name": "tokens",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 851,
              "src": "13094:6:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "13087:13:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "falseBody": {
             "id": 899,
             "nodeType": "Block",
             "src": "13204:100:2",
             "statements": [
              {
               "expression": {
                "argumentTypes": null,
                "id": 890,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "id": 885,
                 "name": "tokens",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 851,
                 "src": "13222:6:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "arguments": [
                  {
                   "argumentTypes": null,
                   "id": 888,
                   "name": "bal",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 861,
                   "src": "13242:3:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  }
                 ],
                 "expression": {
                  "argumentTypes": [
                   {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  ],
                  "expression": {
                   "argumentTypes": null,
                   "id": 886,
                   "name": "tokens",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 851,
                   "src": "13231:6:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  },
                  "id": 887,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": false,
                  "lValueRequested": false,
                  "memberName": "sub",
                  "nodeType": "MemberAccess",
                  "referencedDeclaration": 2395,
                  "src": "13231:10:2",
                  "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": 889,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": false,
                 "kind": "functionCall",
                 "lValueRequested": false,
                 "names": [],
                 "nodeType": "FunctionCall",
                 "src": "13231:15:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "src": "13222:24:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 891,
               "nodeType": "ExpressionStatement",
               "src": "13222:24:2"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 897,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 892,
                  "name": "balanceOf",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 8,
                  "src": "13264:9:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                   "typeString": "mapping(address => uint256)"
                  }
                 },
                 "id": 895,
                 "indexExpression": {
                  "argumentTypes": null,
                  "expression": {
                   "argumentTypes": null,
                   "id": 893,
                   "name": "msg",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 2462,
                   "src": "13274:3:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_magic_message",
                    "typeString": "msg"
                   }
                  },
                  "id": 894,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": false,
                  "lValueRequested": false,
                  "memberName": "sender",
                  "nodeType": "MemberAccess",
                  "referencedDeclaration": null,
                  "src": "13274:10:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_address",
                   "typeString": "address"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "13264:21:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "hexValue": "30",
                 "id": 896,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": true,
                 "kind": "number",
                 "lValueRequested": false,
                 "nodeType": "Literal",
                 "src": "13288:1:2",
                 "subdenomination": null,
                 "typeDescriptions": {
                  "typeIdentifier": "t_rational_0_by_1",
                  "typeString": "int_const 0"
                 },
                 "value": "0"
                },
                "src": "13264:25:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 898,
               "nodeType": "ExpressionStatement",
               "src": "13264:25:2"
              }
             ]
            },
            "id": 900,
            "nodeType": "IfStatement",
            "src": "13083:221:2",
            "trueBody": {
             "id": 884,
             "nodeType": "Block",
             "src": "13102:96:2",
             "statements": [
              {
               "expression": {
                "argumentTypes": null,
                "id": 881,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 873,
                  "name": "balanceOf",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 8,
                  "src": "13120:9:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                   "typeString": "mapping(address => uint256)"
                  }
                 },
                 "id": 876,
                 "indexExpression": {
                  "argumentTypes": null,
                  "expression": {
                   "argumentTypes": null,
                   "id": 874,
                   "name": "msg",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 2462,
                   "src": "13130:3:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_magic_message",
                    "typeString": "msg"
                   }
                  },
                  "id": 875,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": false,
                  "lValueRequested": false,
                  "memberName": "sender",
                  "nodeType": "MemberAccess",
                  "referencedDeclaration": null,
                  "src": "13130:10:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_address",
                   "typeString": "address"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "13120:21:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "arguments": [
                  {
                   "argumentTypes": null,
                   "id": 879,
                   "name": "tokens",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 851,
                   "src": "13152:6:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  }
                 ],
                 "expression": {
                  "argumentTypes": [
                   {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  ],
                  "expression": {
                   "argumentTypes": null,
                   "id": 877,
                   "name": "bal",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 861,
                   "src": "13144:3:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  },
                  "id": 878,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": false,
                  "lValueRequested": false,
                  "memberName": "sub",
                  "nodeType": "MemberAccess",
                  "referencedDeclaration": 2395,
                  "src": "13144:7:2",
                  "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": 880,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": false,
                 "kind": "functionCall",
                 "lValueRequested": false,
                 "names": [],
                 "nodeType": "FunctionCall",
                 "src": "13144:15:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "src": "13120:39:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 882,
               "nodeType": "ExpressionStatement",
               "src": "13120:39:2"
              },
              {
               "expression": null,
               "functionReturnParameters": 853,
               "id": 883,
               "nodeType": "Return",
               "src": "13177:7:2"
              }
             ]
            }
           }
          ]
         }
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "id": 906,
               "name": "msg",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2462,
               "src": "13398:3:2",
               "typeDescriptions": {
                "typeIdentifier": "t_magic_message",
                "typeString": "msg"
               }
              },
              "id": 907,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "memberName": "sender",
              "nodeType": "MemberAccess",
              "referencedDeclaration": null,
              "src": "13398:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 909,
                "name": "this",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 2483,
                "src": "13418:4:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_contract$_RealitioERC20_$2322",
                 "typeString": "contract RealitioERC20"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_contract$_RealitioERC20_$2322",
                 "typeString": "contract RealitioERC20"
                }
               ],
               "id": 908,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "lValueRequested": false,
               "nodeType": "ElementaryTypeNameExpression",
               "src": "13410:7:2",
               "typeDescriptions": {
                "typeIdentifier": "t_type$_t_address_$",
                "typeString": "type(address)"
               },
               "typeName": "address"
              },
              "id": 910,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "13410:13:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             {
              "argumentTypes": null,
              "id": 911,
              "name": "tokens",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 851,
              "src": "13425:6:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             }
            ],
            "expression": {
             "argumentTypes": [
              {
               "typeIdentifier": "t_address",
               "typeString": "address"
              },
              {
               "typeIdentifier": "t_address",
               "typeString": "address"
              },
              {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             ],
             "expression": {
              "argumentTypes": null,
              "id": 904,
              "name": "token",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 4,
              "src": "13379:5:2",
              "typeDescriptions": {
               "typeIdentifier": "t_contract$_IERC20_$117",
               "typeString": "contract IERC20"
              }
             },
             "id": 905,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "transferFrom",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 100,
             "src": "13379:18:2",
             "typeDescriptions": {
              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
              "typeString": "function (address,address,uint256) external returns (bool)"
             }
            },
            "id": 912,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "13379:53:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "5472616e73666572206f6620746f6b656e73206661696c65642c20696e73756666696369656e7420617070726f7665642062616c616e63653f",
            "id": 913,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "13434:59:2",
            "subdenomination": null,
            "typeDescriptions": {
             "typeIdentifier": "t_stringliteral_ed8b1ba93cbf7311a4be79adea31c0164535d3a210507ebc1c91c9f24f3a9398",
             "typeString": "literal_string \"Transfer of tokens failed, insufficient approved balance?\""
            },
            "value": "Transfer of tokens failed, insufficient approved balance?"
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            },
            {
             "typeIdentifier": "t_stringliteral_ed8b1ba93cbf7311a4be79adea31c0164535d3a210507ebc1c91c9f24f3a9398",
             "typeString": "literal_string \"Transfer of tokens failed, insufficient approved balance?\""
            }
           ],
           "id": 903,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "13371:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 914,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "13371:123:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 915,
         "nodeType": "ExpressionStatement",
         "src": "13371:123:2"
        },
        {
         "expression": null,
         "functionReturnParameters": 853,
         "id": 916,
         "nodeType": "Return",
         "src": "13504:7:2"
        }
       ]
      },
      "documentation": null,
      "id": 918,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "_deductTokensOrRevert",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 852,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 851,
         "name": "tokens",
         "nodeType": "VariableDeclaration",
         "scope": 918,
         "src": "12842:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 850,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "12842:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "12841:16:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 853,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "12872:0:2"
      },
      "scope": 2322,
      "src": "12811:707:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 1033,
       "nodeType": "Block",
       "src": "13711:1313:2",
       "statements": [
        {
         "assignments": [
          937
         ],
         "declarations": [
          {
           "constant": false,
           "id": 937,
           "name": "bounty",
           "nodeType": "VariableDeclaration",
           "scope": 1034,
           "src": "13722:14:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 936,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "13722:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 939,
         "initialValue": {
          "argumentTypes": null,
          "id": 938,
          "name": "tokens",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 930,
          "src": "13739:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "13722:23:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 943,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 941,
             "name": "timeout",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 926,
             "src": "13846:7:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 942,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "13856:1:2",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "13846:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "74696d656f7574206d75737420626520706f736974697665",
            "id": 944,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "13859:26:2",
            "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": 940,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "13838:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 945,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "13838:48:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 946,
         "nodeType": "ExpressionStatement",
         "src": "13838:48:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 950,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 948,
             "name": "timeout",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 926,
             "src": "13905:7:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "<",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "333635",
             "id": 949,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "13915:8:2",
             "subdenomination": "days",
             "typeDescriptions": {
              "typeIdentifier": "t_rational_31536000_by_1",
              "typeString": "int_const 31536000"
             },
             "value": "365"
            },
            "src": "13905:18:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "74696d656f7574206d757374206265206c657373207468616e203336352064617973",
            "id": 951,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "13925:36:2",
            "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": 947,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "13897:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 952,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "13897:65:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 953,
         "nodeType": "ExpressionStatement",
         "src": "13897:65:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            "id": 957,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 955,
             "name": "arbitrator",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 924,
             "src": "13981:10:2",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "!=",
            "rightExpression": {
             "argumentTypes": null,
             "id": 956,
             "name": "NULL_ADDRESS",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 135,
             "src": "13995:12:2",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "src": "13981:26:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "61726269747261746f72206d75737420626520736574",
            "id": 958,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "14009:24:2",
            "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": 954,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "13973:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 959,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "13973:61:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 960,
         "nodeType": "ExpressionStatement",
         "src": "13973:61:2"
        },
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          },
          "id": 964,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "id": 961,
            "name": "msg",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2462,
            "src": "14426:3:2",
            "typeDescriptions": {
             "typeIdentifier": "t_magic_message",
             "typeString": "msg"
            }
           },
           "id": 962,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "sender",
           "nodeType": "MemberAccess",
           "referencedDeclaration": null,
           "src": "14426:10:2",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "!=",
          "rightExpression": {
           "argumentTypes": null,
           "id": 963,
           "name": "arbitrator",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 924,
           "src": "14440:10:2",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "src": "14426:24:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 997,
         "nodeType": "IfStatement",
         "src": "14422:324:2",
         "trueBody": {
          "id": 996,
          "nodeType": "Block",
          "src": "14452:294:2",
          "statements": [
           {
            "assignments": [
             966
            ],
            "declarations": [
             {
              "constant": false,
              "id": 966,
              "name": "question_fee",
              "nodeType": "VariableDeclaration",
              "scope": 1034,
              "src": "14466:20:2",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              },
              "typeName": {
               "id": 965,
               "name": "uint256",
               "nodeType": "ElementaryTypeName",
               "src": "14466:7:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 970,
            "initialValue": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 967,
              "name": "arbitrator_question_fees",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 307,
              "src": "14489:24:2",
              "typeDescriptions": {
               "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
               "typeString": "mapping(address => uint256)"
              }
             },
             "id": 969,
             "indexExpression": {
              "argumentTypes": null,
              "id": 968,
              "name": "arbitrator",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 924,
              "src": "14514:10:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "14489:36:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "14466:59:2"
           },
           {
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "commonType": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               },
               "id": 974,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "lValueRequested": false,
               "leftExpression": {
                "argumentTypes": null,
                "id": 972,
                "name": "bounty",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 937,
                "src": "14547:6:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "nodeType": "BinaryOperation",
               "operator": ">=",
               "rightExpression": {
                "argumentTypes": null,
                "id": 973,
                "name": "question_fee",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 966,
                "src": "14557:12:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "src": "14547:22:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
               }
              },
              {
               "argumentTypes": null,
               "hexValue": "4554482070726f7669646564206d75737420636f766572207175657374696f6e20666565",
               "id": 975,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "kind": "string",
               "lValueRequested": false,
               "nodeType": "Literal",
               "src": "14571:38:2",
               "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": 971,
              "name": "require",
              "nodeType": "Identifier",
              "overloadedDeclarations": [
               2465,
               2466
              ],
              "referencedDeclaration": 2466,
              "src": "14539:7:2",
              "typeDescriptions": {
               "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
               "typeString": "function (bool,string memory) pure"
              }
             },
             "id": 976,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "14539:71:2",
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 977,
            "nodeType": "ExpressionStatement",
            "src": "14539:71:2"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 983,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "id": 978,
              "name": "bounty",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 937,
              "src": "14625:6:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 981,
                "name": "question_fee",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 966,
                "src": "14645:12:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "expression": {
                "argumentTypes": null,
                "id": 979,
                "name": "bounty",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 937,
                "src": "14634:6:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 980,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "lValueRequested": false,
               "memberName": "sub",
               "nodeType": "MemberAccess",
               "referencedDeclaration": 2395,
               "src": "14634:10:2",
               "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": 982,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "14634:24:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "14625:33:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 984,
            "nodeType": "ExpressionStatement",
            "src": "14625:33:2"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 994,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 985,
               "name": "balanceOf",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 8,
               "src": "14672:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
               }
              },
              "id": 987,
              "indexExpression": {
               "argumentTypes": null,
               "id": 986,
               "name": "arbitrator",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 924,
               "src": "14682:10:2",
               "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "nodeType": "IndexAccess",
              "src": "14672:21:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 992,
                "name": "question_fee",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 966,
                "src": "14722:12:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "expression": {
                "argumentTypes": null,
                "baseExpression": {
                 "argumentTypes": null,
                 "id": 988,
                 "name": "balanceOf",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 8,
                 "src": "14696:9:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                  "typeString": "mapping(address => uint256)"
                 }
                },
                "id": 990,
                "indexExpression": {
                 "argumentTypes": null,
                 "id": 989,
                 "name": "arbitrator",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 924,
                 "src": "14706:10:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                 }
                },
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "IndexAccess",
                "src": "14696:21:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 991,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "lValueRequested": false,
               "memberName": "add",
               "nodeType": "MemberAccess",
               "referencedDeclaration": 2419,
               "src": "14696:25:2",
               "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": 993,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "14696:39:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "14672:63:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 995,
            "nodeType": "ExpressionStatement",
            "src": "14672:63:2"
           }
          ]
         }
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1003,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 998,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "14756:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1000,
            "indexExpression": {
             "argumentTypes": null,
             "id": 999,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 920,
             "src": "14766:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "14756:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1001,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "content_hash",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 247,
           "src": "14756:35:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1002,
           "name": "content_hash",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 922,
           "src": "14794:12:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "14756:50:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "id": 1004,
         "nodeType": "ExpressionStatement",
         "src": "14756:50:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1010,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1005,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "14816:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1007,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1006,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 920,
             "src": "14826:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "14816:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1008,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "arbitrator",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 249,
           "src": "14816:33:2",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1009,
           "name": "arbitrator",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 924,
           "src": "14852:10:2",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "src": "14816:46:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "id": 1011,
         "nodeType": "ExpressionStatement",
         "src": "14816:46:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1017,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1012,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "14872:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1014,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1013,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 920,
             "src": "14882:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "14872:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1015,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "opening_ts",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 251,
           "src": "14872:33:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1016,
           "name": "opening_ts",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 928,
           "src": "14908:10:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "src": "14872:46:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "id": 1018,
         "nodeType": "ExpressionStatement",
         "src": "14872:46:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1024,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1019,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "14928:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1021,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1020,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 920,
             "src": "14938:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "14928:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1022,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "timeout",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 253,
           "src": "14928:30:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1023,
           "name": "timeout",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 926,
           "src": "14961:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "src": "14928:40:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "id": 1025,
         "nodeType": "ExpressionStatement",
         "src": "14928:40:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1031,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1026,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "14978:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1028,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1027,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 920,
             "src": "14988:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "14978:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1029,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "bounty",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 259,
           "src": "14978:29:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1030,
           "name": "bounty",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 937,
           "src": "15010:6:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "14978:38:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 1032,
         "nodeType": "ExpressionStatement",
         "src": "14978:38:2"
        }
       ]
      },
      "documentation": null,
      "id": 1034,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 933,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 920,
          "src": "13685:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 934,
        "modifierName": {
         "argumentTypes": null,
         "id": 932,
         "name": "stateNotCreated",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 344,
         "src": "13669:15:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "13669:28:2"
       }
      ],
      "name": "_askQuestion",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 931,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 920,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1034,
         "src": "13546:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 919,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "13546:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 922,
         "name": "content_hash",
         "nodeType": "VariableDeclaration",
         "scope": 1034,
         "src": "13567:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 921,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "13567:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 924,
         "name": "arbitrator",
         "nodeType": "VariableDeclaration",
         "scope": 1034,
         "src": "13589:18:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 923,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "13589:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 926,
         "name": "timeout",
         "nodeType": "VariableDeclaration",
         "scope": 1034,
         "src": "13609:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 925,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "13609:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 928,
         "name": "opening_ts",
         "nodeType": "VariableDeclaration",
         "scope": 1034,
         "src": "13625:17:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 927,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "13625:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 930,
         "name": "tokens",
         "nodeType": "VariableDeclaration",
         "scope": 1034,
         "src": "13644:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 929,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "13644:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "13545:114:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 935,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "13711:0:2"
      },
      "scope": 2322,
      "src": "13524:1500:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 1072,
       "nodeType": "Block",
       "src": "15437:227:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1045,
            "name": "tokens",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1038,
            "src": "15469:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           ],
           "id": 1044,
           "name": "_deductTokensOrRevert",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 918,
           "src": "15447:21:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
            "typeString": "function (uint256)"
           }
          },
          "id": 1046,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "15447:29:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1047,
         "nodeType": "ExpressionStatement",
         "src": "15447:29:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1059,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1048,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "15486:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1050,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1049,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1036,
             "src": "15496:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "15486:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1051,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "bounty",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 259,
           "src": "15486:29:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "id": 1057,
             "name": "tokens",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1038,
             "src": "15552:6:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            ],
            "expression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1052,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 295,
               "src": "15518:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
               }
              },
              "id": 1054,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1053,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1036,
               "src": "15528:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "15518:22:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$266_storage",
               "typeString": "struct RealitioERC20.Question storage ref"
              }
             },
             "id": 1055,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "bounty",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 259,
             "src": "15518:29:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1056,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "add",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 2419,
            "src": "15518:33:2",
            "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": 1058,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "15518:41:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "15486:73:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 1060,
         "nodeType": "ExpressionStatement",
         "src": "15486:73:2"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1062,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1036,
            "src": "15594:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1063,
            "name": "tokens",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1038,
            "src": "15607:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 1064,
              "name": "questions",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 295,
              "src": "15615:9:2",
              "typeDescriptions": {
               "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
               "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
              }
             },
             "id": 1066,
             "indexExpression": {
              "argumentTypes": null,
              "id": 1065,
              "name": "question_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1036,
              "src": "15625:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "15615:22:2",
             "typeDescriptions": {
              "typeIdentifier": "t_struct$_Question_$266_storage",
              "typeString": "struct RealitioERC20.Question storage ref"
             }
            },
            "id": 1067,
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "bounty",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 259,
            "src": "15615:29:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 1068,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2462,
             "src": "15646:3:2",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 1069,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "15646:10:2",
            "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": 1061,
           "name": "LogFundAnswerBounty",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 195,
           "src": "15574:19:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
            "typeString": "function (bytes32,uint256,uint256,address)"
           }
          },
          "id": 1070,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "15574:83:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1071,
         "nodeType": "EmitStatement",
         "src": "15569:88:2"
        }
       ]
      },
      "documentation": "@notice Add funds to the bounty for a question\n @dev Add bounty funds after the initial question creation. Can be done any time until the question is finalized.\n @param question_id The ID of the question you wish to fund\n @param tokens The number of tokens to fund",
      "id": 1073,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1041,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1036,
          "src": "15411:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1042,
        "modifierName": {
         "argumentTypes": null,
         "id": 1040,
         "name": "stateOpen",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 409,
         "src": "15401:9:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "15401:22:2"
       }
      ],
      "name": "fundAnswerBountyERC20",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1039,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1036,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1073,
         "src": "15355:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1035,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "15355:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1038,
         "name": "tokens",
         "nodeType": "VariableDeclaration",
         "scope": 1073,
         "src": "15376:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1037,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "15376:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "15354:37:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1043,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "15437:0:2"
      },
      "scope": 2322,
      "src": "15324:340:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1117,
       "nodeType": "Block",
       "src": "16469:206:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1096,
            "name": "tokens",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1081,
            "src": "16501:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           ],
           "id": 1095,
           "name": "_deductTokensOrRevert",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 918,
           "src": "16479:21:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
            "typeString": "function (uint256)"
           }
          },
          "id": 1097,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "16479:29:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1098,
         "nodeType": "ExpressionStatement",
         "src": "16479:29:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1100,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1075,
            "src": "16538:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1101,
            "name": "answer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1077,
            "src": "16551:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 1102,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2462,
             "src": "16559:3:2",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 1103,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "16559:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 1104,
            "name": "tokens",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1081,
            "src": "16571:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "66616c7365",
            "id": 1105,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "bool",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "16579:5:2",
            "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": 1099,
           "name": "_addAnswerToHistory",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1378,
           "src": "16518:19:2",
           "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": 1106,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "16518:67:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1107,
         "nodeType": "ExpressionStatement",
         "src": "16518:67:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1109,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1075,
            "src": "16616:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1110,
            "name": "answer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1077,
            "src": "16629:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 1111,
              "name": "questions",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 295,
              "src": "16637:9:2",
              "typeDescriptions": {
               "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
               "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
              }
             },
             "id": 1113,
             "indexExpression": {
              "argumentTypes": null,
              "id": 1112,
              "name": "question_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1075,
              "src": "16647:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "16637:22:2",
             "typeDescriptions": {
              "typeIdentifier": "t_struct$_Question_$266_storage",
              "typeString": "struct RealitioERC20.Question storage ref"
             }
            },
            "id": 1114,
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "timeout",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 253,
            "src": "16637:30:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           ],
           "id": 1108,
           "name": "_updateCurrentAnswer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1407,
           "src": "16595:20:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
            "typeString": "function (bytes32,bytes32,uint32)"
           }
          },
          "id": 1115,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "16595:73:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1116,
         "nodeType": "ExpressionStatement",
         "src": "16595:73:2"
        }
       ]
      },
      "documentation": "@notice Submit an answer for a question.\n @dev Adds the answer to the history and updates the current \"best\" answer.\n May be subject to front-running attacks; Substitute submitAnswerCommitment()->submitAnswerReveal() to prevent them.\n @param question_id The ID of the question\n @param answer The answer, encoded into bytes32\n @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.\n @param tokens The amount of tokens to submit",
      "id": 1118,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1084,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1075,
          "src": "16329:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1085,
        "modifierName": {
         "argumentTypes": null,
         "id": 1083,
         "name": "stateOpen",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 409,
         "src": "16319:9:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "16319:22:2"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1087,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1075,
          "src": "16365:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         {
          "argumentTypes": null,
          "id": 1088,
          "name": "tokens",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1081,
          "src": "16378:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         }
        ],
        "id": 1089,
        "modifierName": {
         "argumentTypes": null,
         "id": 1086,
         "name": "bondMustDouble",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 521,
         "src": "16350:14:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
          "typeString": "modifier (bytes32,uint256)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "16350:35:2"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1091,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1075,
          "src": "16429:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         {
          "argumentTypes": null,
          "id": 1092,
          "name": "max_previous",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1079,
          "src": "16442:12:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         }
        ],
        "id": 1093,
        "modifierName": {
         "argumentTypes": null,
         "id": 1090,
         "name": "previousBondMustNotBeatMaxPrevious",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 544,
         "src": "16394:34:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
          "typeString": "modifier (bytes32,uint256)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "16394:61:2"
       }
      ],
      "name": "submitAnswerERC20",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1082,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1075,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1118,
         "src": "16235:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1074,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "16235:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1077,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 1118,
         "src": "16256:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1076,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "16256:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1079,
         "name": "max_previous",
         "nodeType": "VariableDeclaration",
         "scope": 1118,
         "src": "16272:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1078,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "16272:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1081,
         "name": "tokens",
         "nodeType": "VariableDeclaration",
         "scope": 1118,
         "src": "16294:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1080,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "16294:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "16234:75:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1094,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "16469:0:2"
      },
      "scope": 2322,
      "src": "16208:467:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1156,
       "nodeType": "Block",
       "src": "16956:306:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 1131,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1126,
               "name": "commitments",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 303,
               "src": "16974:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$273_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
               }
              },
              "id": 1128,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1127,
               "name": "commitment_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1122,
               "src": "16986:13:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "16974:26:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Commitment_$273_storage",
               "typeString": "struct RealitioERC20.Commitment storage ref"
              }
             },
             "id": 1129,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "reveal_ts",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 268,
             "src": "16974:36:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "==",
            "rightExpression": {
             "argumentTypes": null,
             "id": 1130,
             "name": "COMMITMENT_NON_EXISTENT",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 146,
             "src": "17014:23:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "src": "16974:63:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "636f6d6d69746d656e74206d757374206e6f7420616c7265616479206578697374",
            "id": 1132,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "17039:35:2",
            "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": 1125,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "16966:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1133,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "16966:109:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1134,
         "nodeType": "ExpressionStatement",
         "src": "16966:109:2"
        },
        {
         "assignments": [
          1136
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1136,
           "name": "commitment_timeout",
           "nodeType": "VariableDeclaration",
           "scope": 1157,
           "src": "17086:25:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           },
           "typeName": {
            "id": 1135,
            "name": "uint32",
            "nodeType": "ElementaryTypeName",
            "src": "17086:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1143,
         "initialValue": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          },
          "id": 1142,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1137,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "17114:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1139,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1138,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1120,
             "src": "17124:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "17114:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1140,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "timeout",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 253,
           "src": "17114:30:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "/",
          "rightExpression": {
           "argumentTypes": null,
           "id": 1141,
           "name": "COMMITMENT_TIMEOUT_RATIO",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 149,
           "src": "17147:24:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "src": "17114:57:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "17086:85:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1154,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1144,
             "name": "commitments",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 303,
             "src": "17181:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$273_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
             }
            },
            "id": 1146,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1145,
             "name": "commitment_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1122,
             "src": "17193:13:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "17181:26:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Commitment_$273_storage",
             "typeString": "struct RealitioERC20.Commitment storage ref"
            }
           },
           "id": 1147,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "reveal_ts",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 268,
           "src": "17181:36:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "id": 1152,
             "name": "commitment_timeout",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1136,
             "src": "17236:18:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            ],
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1149,
               "name": "now",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2464,
               "src": "17227:3:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 1148,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "ElementaryTypeNameExpression",
              "src": "17220:6:2",
              "typeDescriptions": {
               "typeIdentifier": "t_type$_t_uint32_$",
               "typeString": "type(uint32)"
              },
              "typeName": "uint32"
             },
             "id": 1150,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "typeConversion",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "17220:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "id": 1151,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "add",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 2446,
            "src": "17220:15:2",
            "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": 1153,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "17220:35:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "src": "17181:74:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "id": 1155,
         "nodeType": "ExpressionStatement",
         "src": "17181:74:2"
        }
       ]
      },
      "documentation": null,
      "id": 1157,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "_storeCommitment",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1123,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1120,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1157,
         "src": "16894:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1119,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "16894:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1122,
         "name": "commitment_id",
         "nodeType": "VariableDeclaration",
         "scope": 1157,
         "src": "16915:21:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1121,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "16915:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "16893:44:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1124,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "16956:0:2"
      },
      "scope": 2322,
      "src": "16868:394:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 1220,
       "nodeType": "Block",
       "src": "18538:361:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1182,
            "name": "tokens",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1167,
            "src": "18571:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           ],
           "id": 1181,
           "name": "_deductTokensOrRevert",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 918,
           "src": "18549:21:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
            "typeString": "function (uint256)"
           }
          },
          "id": 1183,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "18549:29:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1184,
         "nodeType": "ExpressionStatement",
         "src": "18549:29:2"
        },
        {
         "assignments": [
          1186
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1186,
           "name": "commitment_id",
           "nodeType": "VariableDeclaration",
           "scope": 1221,
           "src": "18589:21:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1185,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "18589:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1195,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 1190,
              "name": "question_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1159,
              "src": "18640:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1191,
              "name": "answer_hash",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1161,
              "src": "18653:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1192,
              "name": "tokens",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1167,
              "src": "18666:6:2",
              "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": 1188,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2449,
              "src": "18623:3:2",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 1189,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "18623:16:2",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 1193,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "18623:50:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 1187,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2456,
           "src": "18613:9:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 1194,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "18613:61:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "18589:85:2"
        },
        {
         "assignments": [
          1197
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1197,
           "name": "answerer",
           "nodeType": "VariableDeclaration",
           "scope": 1221,
           "src": "18684:16:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           },
           "typeName": {
            "id": 1196,
            "name": "address",
            "nodeType": "ElementaryTypeName",
            "src": "18684:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1206,
         "initialValue": {
          "argumentTypes": null,
          "condition": {
           "argumentTypes": null,
           "components": [
            {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             },
             "id": 1200,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 1198,
              "name": "_answerer",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1165,
              "src": "18704:9:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "==",
             "rightExpression": {
              "argumentTypes": null,
              "id": 1199,
              "name": "NULL_ADDRESS",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 135,
              "src": "18717:12:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "src": "18704:25:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            }
           ],
           "id": 1201,
           "isConstant": false,
           "isInlineArray": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "TupleExpression",
           "src": "18703:27:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           }
          },
          "falseExpression": {
           "argumentTypes": null,
           "id": 1204,
           "name": "_answerer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1165,
           "src": "18746:9:2",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "id": 1205,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "nodeType": "Conditional",
          "src": "18703:52:2",
          "trueExpression": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "id": 1202,
            "name": "msg",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2462,
            "src": "18733:3:2",
            "typeDescriptions": {
             "typeIdentifier": "t_magic_message",
             "typeString": "msg"
            }
           },
           "id": 1203,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "sender",
           "nodeType": "MemberAccess",
           "referencedDeclaration": null,
           "src": "18733:10:2",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "18684:71:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1208,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1159,
            "src": "18783:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1209,
            "name": "commitment_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1186,
            "src": "18796:13:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           ],
           "id": 1207,
           "name": "_storeCommitment",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1157,
           "src": "18766:16:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
            "typeString": "function (bytes32,bytes32)"
           }
          },
          "id": 1210,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "18766:44:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1211,
         "nodeType": "ExpressionStatement",
         "src": "18766:44:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1213,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1159,
            "src": "18840:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1214,
            "name": "commitment_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1186,
            "src": "18853:13:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1215,
            "name": "answerer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1197,
            "src": "18868:8:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 1216,
            "name": "tokens",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1167,
            "src": "18878:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "74727565",
            "id": 1217,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "bool",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "18886:4:2",
            "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": 1212,
           "name": "_addAnswerToHistory",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1378,
           "src": "18820:19:2",
           "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": 1218,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "18820:71:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1219,
         "nodeType": "ExpressionStatement",
         "src": "18820:71:2"
        }
       ]
      },
      "documentation": "@notice Submit the hash of an answer, laying your claim to that answer if you reveal it in a subsequent transaction.\n @dev Creates a hash, commitment_id, uniquely identifying this answer, to this question, with this bond.\n The commitment_id is stored in the answer history where the answer would normally go.\n Does not update the current best answer - this is left to the later submitAnswerReveal() transaction.\n @param question_id The ID of the question\n @param answer_hash The hash of your answer, plus a nonce that you will later reveal\n @param max_previous If specified, reverts if a bond higher than this was submitted after you sent your transaction.\n @param _answerer If specified, the address to be given as the question answerer. Defaults to the sender.\n @param tokens Number of tokens sent\n @dev Specifying the answerer is useful if you want to delegate the commit-and-reveal to a third-party.",
      "id": 1221,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1170,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1159,
          "src": "18398:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1171,
        "modifierName": {
         "argumentTypes": null,
         "id": 1169,
         "name": "stateOpen",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 409,
         "src": "18388:9:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "18388:22:2"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1173,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1159,
          "src": "18434:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         {
          "argumentTypes": null,
          "id": 1174,
          "name": "tokens",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1167,
          "src": "18447:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         }
        ],
        "id": 1175,
        "modifierName": {
         "argumentTypes": null,
         "id": 1172,
         "name": "bondMustDouble",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 521,
         "src": "18419:14:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
          "typeString": "modifier (bytes32,uint256)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "18419:35:2"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1177,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1159,
          "src": "18498:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         {
          "argumentTypes": null,
          "id": 1178,
          "name": "max_previous",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1163,
          "src": "18511:12:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         }
        ],
        "id": 1179,
        "modifierName": {
         "argumentTypes": null,
         "id": 1176,
         "name": "previousBondMustNotBeatMaxPrevious",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 544,
         "src": "18463:34:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
          "typeString": "modifier (bytes32,uint256)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "18463:61:2"
       }
      ],
      "name": "submitAnswerCommitmentERC20",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1168,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1159,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1221,
         "src": "18280:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1158,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "18280:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1161,
         "name": "answer_hash",
         "nodeType": "VariableDeclaration",
         "scope": 1221,
         "src": "18301:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1160,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "18301:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1163,
         "name": "max_previous",
         "nodeType": "VariableDeclaration",
         "scope": 1221,
         "src": "18322:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1162,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "18322:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1165,
         "name": "_answerer",
         "nodeType": "VariableDeclaration",
         "scope": 1221,
         "src": "18344:17:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1164,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "18344:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1167,
         "name": "tokens",
         "nodeType": "VariableDeclaration",
         "scope": 1221,
         "src": "18363:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1166,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "18363:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "18279:99:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1180,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "18538:0:2"
      },
      "scope": 2322,
      "src": "18243:656:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1318,
       "nodeType": "Block",
       "src": "20033:746:2",
       "statements": [
        {
         "assignments": [
          1236
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1236,
           "name": "answer_hash",
           "nodeType": "VariableDeclaration",
           "scope": 1319,
           "src": "20044:19:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1235,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "20044:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1244,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 1240,
              "name": "answer",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1225,
              "src": "20093:6:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1241,
              "name": "nonce",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1227,
              "src": "20101:5:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             }
            ],
            "expression": {
             "argumentTypes": [
              {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              },
              {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             ],
             "expression": {
              "argumentTypes": null,
              "id": 1238,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2449,
              "src": "20076:3:2",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 1239,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "20076:16:2",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 1242,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "20076:31:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 1237,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2456,
           "src": "20066:9:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 1243,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "20066:42:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "20044:64:2"
        },
        {
         "assignments": [
          1246
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1246,
           "name": "commitment_id",
           "nodeType": "VariableDeclaration",
           "scope": 1319,
           "src": "20118:21:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1245,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "20118:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1255,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "id": 1250,
              "name": "question_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1223,
              "src": "20169:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1251,
              "name": "answer_hash",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1236,
              "src": "20182:11:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1252,
              "name": "bond",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1229,
              "src": "20195:4:2",
              "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": 1248,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2449,
              "src": "20152:3:2",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 1249,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "20152:16:2",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 1253,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "20152:48:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 1247,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2456,
           "src": "20142:9:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 1254,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "20142:59:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "20118:83:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1261,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "UnaryOperation",
            "operator": "!",
            "prefix": true,
            "src": "20220:39:2",
            "subExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1257,
               "name": "commitments",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 303,
               "src": "20221:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$273_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
               }
              },
              "id": 1259,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1258,
               "name": "commitment_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1246,
               "src": "20233:13:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "20221:26:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Commitment_$273_storage",
               "typeString": "struct RealitioERC20.Commitment storage ref"
              }
             },
             "id": 1260,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "is_revealed",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 270,
             "src": "20221:38:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "636f6d6d69746d656e74206d757374206e6f742068617665206265656e2072657665616c656420796574",
            "id": 1262,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "20261:44:2",
            "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": 1256,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "20212:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1263,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "20212:94:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1264,
         "nodeType": "ExpressionStatement",
         "src": "20212:94:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 1273,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1266,
               "name": "commitments",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 303,
               "src": "20324:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$273_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
               }
              },
              "id": 1268,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1267,
               "name": "commitment_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1246,
               "src": "20336:13:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "20324:26:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Commitment_$273_storage",
               "typeString": "struct RealitioERC20.Commitment storage ref"
              }
             },
             "id": 1269,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "reveal_ts",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 268,
             "src": "20324:36:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1271,
               "name": "now",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2464,
               "src": "20370:3:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 1270,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "ElementaryTypeNameExpression",
              "src": "20363:6:2",
              "typeDescriptions": {
               "typeIdentifier": "t_type$_t_uint32_$",
               "typeString": "type(uint32)"
              },
              "typeName": "uint32"
             },
             "id": 1272,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "typeConversion",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "20363:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "src": "20324:50:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "72657665616c20646561646c696e65206d757374206e6f74206861766520706173736564",
            "id": 1274,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "20376:38:2",
            "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": 1265,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "20316:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1275,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "20316:99:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1276,
         "nodeType": "ExpressionStatement",
         "src": "20316:99:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1282,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1277,
             "name": "commitments",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 303,
             "src": "20426:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$273_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
             }
            },
            "id": 1279,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1278,
             "name": "commitment_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1246,
             "src": "20438:13:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "20426:26:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Commitment_$273_storage",
             "typeString": "struct RealitioERC20.Commitment storage ref"
            }
           },
           "id": 1280,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "revealed_answer",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 272,
           "src": "20426:42:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1281,
           "name": "answer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1225,
           "src": "20471:6:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "20426:51:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "id": 1283,
         "nodeType": "ExpressionStatement",
         "src": "20426:51:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1289,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1284,
             "name": "commitments",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 303,
             "src": "20487:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$273_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
             }
            },
            "id": 1286,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1285,
             "name": "commitment_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1246,
             "src": "20499:13:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "20487:26:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Commitment_$273_storage",
             "typeString": "struct RealitioERC20.Commitment storage ref"
            }
           },
           "id": 1287,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "is_revealed",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 270,
           "src": "20487:38:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "hexValue": "74727565",
           "id": 1288,
           "isConstant": false,
           "isLValue": false,
           "isPure": true,
           "kind": "bool",
           "lValueRequested": false,
           "nodeType": "Literal",
           "src": "20528:4:2",
           "subdenomination": null,
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           },
           "value": "true"
          },
          "src": "20487:45:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "id": 1290,
         "nodeType": "ExpressionStatement",
         "src": "20487:45:2"
        },
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          },
          "id": 1296,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 1291,
           "name": "bond",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1229,
           "src": "20547:4:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "==",
          "rightExpression": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1292,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "20555:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1294,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1293,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1223,
             "src": "20565:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "20555:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1295,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "bond",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 265,
           "src": "20555:27:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "20547:35:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 1307,
         "nodeType": "IfStatement",
         "src": "20543:139:2",
         "trueBody": {
          "id": 1306,
          "nodeType": "Block",
          "src": "20584:98:2",
          "statements": [
           {
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1298,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1223,
               "src": "20619:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 1299,
               "name": "answer",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1225,
               "src": "20632:6:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "expression": {
                "argumentTypes": null,
                "baseExpression": {
                 "argumentTypes": null,
                 "id": 1300,
                 "name": "questions",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 295,
                 "src": "20640:9:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                  "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                 }
                },
                "id": 1302,
                "indexExpression": {
                 "argumentTypes": null,
                 "id": 1301,
                 "name": "question_id",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1223,
                 "src": "20650:11:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "IndexAccess",
                "src": "20640:22:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_struct$_Question_$266_storage",
                 "typeString": "struct RealitioERC20.Question storage ref"
                }
               },
               "id": 1303,
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "memberName": "timeout",
               "nodeType": "MemberAccess",
               "referencedDeclaration": 253,
               "src": "20640:30:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               },
               {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               },
               {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
               }
              ],
              "id": 1297,
              "name": "_updateCurrentAnswer",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1407,
              "src": "20598:20:2",
              "typeDescriptions": {
               "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
               "typeString": "function (bytes32,bytes32,uint32)"
              }
             },
             "id": 1304,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "20598:73:2",
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 1305,
            "nodeType": "ExpressionStatement",
            "src": "20598:73:2"
           }
          ]
         }
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1309,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1223,
            "src": "20713:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "expression": {
             "argumentTypes": null,
             "id": 1310,
             "name": "msg",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 2462,
             "src": "20726:3:2",
             "typeDescriptions": {
              "typeIdentifier": "t_magic_message",
              "typeString": "msg"
             }
            },
            "id": 1311,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "sender",
            "nodeType": "MemberAccess",
            "referencedDeclaration": null,
            "src": "20726:10:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 1312,
            "name": "answer_hash",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1236,
            "src": "20738:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1313,
            "name": "answer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1225,
            "src": "20751:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1314,
            "name": "nonce",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1227,
            "src": "20759:5:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 1315,
            "name": "bond",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1229,
            "src": "20766:4:2",
            "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": 1308,
           "name": "LogAnswerReveal",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 225,
           "src": "20697:15:2",
           "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": 1316,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "20697:74:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1317,
         "nodeType": "EmitStatement",
         "src": "20692:79:2"
        }
       ]
      },
      "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": 1319,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1232,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1223,
          "src": "20007:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1233,
        "modifierName": {
         "argumentTypes": null,
         "id": 1231,
         "name": "stateOpenOrPendingArbitration",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 479,
         "src": "19977:29:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "19977:42:2"
       }
      ],
      "name": "submitAnswerReveal",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1230,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1223,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1319,
         "src": "19902:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1222,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "19902:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1225,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 1319,
         "src": "19923:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1224,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "19923:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1227,
         "name": "nonce",
         "nodeType": "VariableDeclaration",
         "scope": 1319,
         "src": "19939:13:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1226,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "19939:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1229,
         "name": "bond",
         "nodeType": "VariableDeclaration",
         "scope": 1319,
         "src": "19954:12:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1228,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "19954:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "19901:66:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1234,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "20033:0:2"
      },
      "scope": 2322,
      "src": "19874:905:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1377,
       "nodeType": "Block",
       "src": "20939:524:2",
       "statements": [
        {
         "assignments": [
          1333
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1333,
           "name": "new_history_hash",
           "nodeType": "VariableDeclaration",
           "scope": 1378,
           "src": "20949:24:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1332,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "20949:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1347,
         "initialValue": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "arguments": [
             {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1337,
                "name": "questions",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 295,
                "src": "21003:9:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                 "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                }
               },
               "id": 1339,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1338,
                "name": "question_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1321,
                "src": "21013:11:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "21003:22:2",
               "typeDescriptions": {
                "typeIdentifier": "t_struct$_Question_$266_storage",
                "typeString": "struct RealitioERC20.Question storage ref"
               }
              },
              "id": 1340,
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "memberName": "history_hash",
              "nodeType": "MemberAccess",
              "referencedDeclaration": 263,
              "src": "21003:35:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1341,
              "name": "answer_or_commitment_id",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1323,
              "src": "21040:23:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             {
              "argumentTypes": null,
              "id": 1342,
              "name": "bond",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1327,
              "src": "21065:4:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             {
              "argumentTypes": null,
              "id": 1343,
              "name": "answerer",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1325,
              "src": "21071:8:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             {
              "argumentTypes": null,
              "id": 1344,
              "name": "is_commitment",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1329,
              "src": "21081:13:2",
              "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": 1335,
              "name": "abi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2449,
              "src": "20986:3:2",
              "typeDescriptions": {
               "typeIdentifier": "t_magic_abi",
               "typeString": "abi"
              }
             },
             "id": 1336,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "lValueRequested": false,
             "memberName": "encodePacked",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "20986:16:2",
             "typeDescriptions": {
              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
              "typeString": "function () pure returns (bytes memory)"
             }
            },
            "id": 1345,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "kind": "functionCall",
            "lValueRequested": false,
            "names": [],
            "nodeType": "FunctionCall",
            "src": "20986:109:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes_memory_ptr",
             "typeString": "bytes memory"
            }
           ],
           "id": 1334,
           "name": "keccak256",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2456,
           "src": "20976:9:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
            "typeString": "function () pure returns (bytes32)"
           }
          },
          "id": 1346,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "20976:120:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "20949:147:2"
        },
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          },
          "id": 1350,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 1348,
           "name": "bond",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1327,
           "src": "21204:4:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": ">",
          "rightExpression": {
           "argumentTypes": null,
           "hexValue": "30",
           "id": 1349,
           "isConstant": false,
           "isLValue": false,
           "isPure": true,
           "kind": "number",
           "lValueRequested": false,
           "nodeType": "Literal",
           "src": "21211:1:2",
           "subdenomination": null,
           "typeDescriptions": {
            "typeIdentifier": "t_rational_0_by_1",
            "typeString": "int_const 0"
           },
           "value": "0"
          },
          "src": "21204:8:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 1359,
         "nodeType": "IfStatement",
         "src": "21200:73:2",
         "trueBody": {
          "id": 1358,
          "nodeType": "Block",
          "src": "21214:59:2",
          "statements": [
           {
            "expression": {
             "argumentTypes": null,
             "id": 1356,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1351,
                "name": "questions",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 295,
                "src": "21228:9:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                 "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                }
               },
               "id": 1353,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1352,
                "name": "question_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1321,
                "src": "21238:11:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "21228:22:2",
               "typeDescriptions": {
                "typeIdentifier": "t_struct$_Question_$266_storage",
                "typeString": "struct RealitioERC20.Question storage ref"
               }
              },
              "id": 1354,
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "memberName": "bond",
              "nodeType": "MemberAccess",
              "referencedDeclaration": 265,
              "src": "21228:27:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "id": 1355,
              "name": "bond",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1327,
              "src": "21258:4:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "21228:34:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1357,
            "nodeType": "ExpressionStatement",
            "src": "21228:34:2"
           }
          ]
         }
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1365,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1360,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "21282:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1362,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1361,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1321,
             "src": "21292:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "21282:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1363,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "history_hash",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 263,
           "src": "21282:35:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1364,
           "name": "new_history_hash",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1333,
           "src": "21320:16:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "21282:54:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "id": 1366,
         "nodeType": "ExpressionStatement",
         "src": "21282:54:2"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1368,
            "name": "answer_or_commitment_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1323,
            "src": "21365:23:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1369,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1321,
            "src": "21390:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1370,
            "name": "new_history_hash",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1333,
            "src": "21403:16:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1371,
            "name": "answerer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1325,
            "src": "21421:8:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 1372,
            "name": "bond",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1327,
            "src": "21431:4:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 1373,
            "name": "now",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2464,
            "src": "21437:3:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 1374,
            "name": "is_commitment",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1329,
            "src": "21442:13:2",
            "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": 1367,
           "name": "LogNewAnswer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 211,
           "src": "21352:12:2",
           "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": 1375,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "21352:104:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1376,
         "nodeType": "EmitStatement",
         "src": "21347:109:2"
        }
       ]
      },
      "documentation": null,
      "id": 1378,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "_addAnswerToHistory",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1330,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1321,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1378,
         "src": "20814:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1320,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "20814:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1323,
         "name": "answer_or_commitment_id",
         "nodeType": "VariableDeclaration",
         "scope": 1378,
         "src": "20835:31:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1322,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "20835:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1325,
         "name": "answerer",
         "nodeType": "VariableDeclaration",
         "scope": 1378,
         "src": "20868:16:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1324,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "20868:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1327,
         "name": "bond",
         "nodeType": "VariableDeclaration",
         "scope": 1378,
         "src": "20886:12:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1326,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "20886:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1329,
         "name": "is_commitment",
         "nodeType": "VariableDeclaration",
         "scope": 1378,
         "src": "20900:18:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         },
         "typeName": {
          "id": 1328,
          "name": "bool",
          "nodeType": "ElementaryTypeName",
          "src": "20900:4:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "20813:106:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1331,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "20939:0:2"
      },
      "scope": 2322,
      "src": "20785:678:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 1406,
       "nodeType": "Block",
       "src": "21570:136:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "id": 1392,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1387,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "21580:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1389,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1388,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1380,
             "src": "21590:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "21580:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1390,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "best_answer",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 261,
           "src": "21580:34:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1391,
           "name": "answer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1382,
           "src": "21617:6:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "21580:43:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "id": 1393,
         "nodeType": "ExpressionStatement",
         "src": "21580:43:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1404,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1394,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "21633:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1396,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1395,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1380,
             "src": "21643:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "21633:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1397,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "finalize_ts",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 255,
           "src": "21633:34:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "id": 1402,
             "name": "timeout_secs",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1384,
             "src": "21686:12:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            ],
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1399,
               "name": "now",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2464,
               "src": "21677:3:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 1398,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "ElementaryTypeNameExpression",
              "src": "21670:6:2",
              "typeDescriptions": {
               "typeIdentifier": "t_type$_t_uint32_$",
               "typeString": "type(uint32)"
              },
              "typeName": "uint32"
             },
             "id": 1400,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "typeConversion",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "21670:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "id": 1401,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "add",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 2446,
            "src": "21670:15:2",
            "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": 1403,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "21670:29:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           }
          },
          "src": "21633:66:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "id": 1405,
         "nodeType": "ExpressionStatement",
         "src": "21633:66:2"
        }
       ]
      },
      "documentation": null,
      "id": 1407,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "_updateCurrentAnswer",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1385,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1380,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1407,
         "src": "21499:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1379,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "21499:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1382,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 1407,
         "src": "21520:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1381,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "21520:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1384,
         "name": "timeout_secs",
         "nodeType": "VariableDeclaration",
         "scope": 1407,
         "src": "21536:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 1383,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "21536:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "21498:58:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1386,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "21570:0:2"
      },
      "scope": 2322,
      "src": "21469:237:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 1448,
       "nodeType": "Block",
       "src": "22436:257:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 1432,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1427,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 295,
               "src": "22454:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
               }
              },
              "id": 1429,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1428,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1409,
               "src": "22464:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "22454:22:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$266_storage",
               "typeString": "struct RealitioERC20.Question storage ref"
              }
             },
             "id": 1430,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "bond",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 265,
             "src": "22454:27:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 1431,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "22484:1:2",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "22454:31:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "5175657374696f6e206d75737420616c7265616479206861766520616e20616e73776572207768656e206172626974726174696f6e20697320726571756573746564",
            "id": 1433,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "22487:68:2",
            "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": 1426,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "22446:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1434,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "22446:110:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1435,
         "nodeType": "ExpressionStatement",
         "src": "22446:110:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1441,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1436,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "22566:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1438,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1437,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1409,
             "src": "22576:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "22566:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1439,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "is_pending_arbitration",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 257,
           "src": "22566:45:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "hexValue": "74727565",
           "id": 1440,
           "isConstant": false,
           "isLValue": false,
           "isPure": true,
           "kind": "bool",
           "lValueRequested": false,
           "nodeType": "Literal",
           "src": "22614:4:2",
           "subdenomination": null,
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           },
           "value": "true"
          },
          "src": "22566:52:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "id": 1442,
         "nodeType": "ExpressionStatement",
         "src": "22566:52:2"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1444,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1409,
            "src": "22663:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1445,
            "name": "requester",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1411,
            "src": "22676:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           ],
           "id": 1443,
           "name": "LogNotifyOfArbitrationRequest",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 231,
           "src": "22633:29:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
            "typeString": "function (bytes32,address)"
           }
          },
          "id": 1446,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "22633:53:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1447,
         "nodeType": "EmitStatement",
         "src": "22628:58:2"
        }
       ]
      },
      "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": 1449,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1416,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1409,
          "src": "22309:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1417,
        "modifierName": {
         "argumentTypes": null,
         "id": 1415,
         "name": "onlyArbitrator",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 324,
         "src": "22294:14:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "22294:27:2"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1419,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1409,
          "src": "22340:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1420,
        "modifierName": {
         "argumentTypes": null,
         "id": 1418,
         "name": "stateOpen",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 409,
         "src": "22330:9:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "22330:22:2"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1422,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1409,
          "src": "22396:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         {
          "argumentTypes": null,
          "id": 1423,
          "name": "max_previous",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1413,
          "src": "22409:12:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         }
        ],
        "id": 1424,
        "modifierName": {
         "argumentTypes": null,
         "id": 1421,
         "name": "previousBondMustNotBeatMaxPrevious",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 544,
         "src": "22361:34:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$_t_uint256_$",
          "typeString": "modifier (bytes32,uint256)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "22361:61:2"
       }
      ],
      "name": "notifyOfArbitrationRequest",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1414,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1409,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1449,
         "src": "22223:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1408,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "22223:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1411,
         "name": "requester",
         "nodeType": "VariableDeclaration",
         "scope": 1449,
         "src": "22244:17:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1410,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "22244:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1413,
         "name": "max_previous",
         "nodeType": "VariableDeclaration",
         "scope": 1449,
         "src": "22263:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1412,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "22263:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "22222:62:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1425,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "22436:0:2"
      },
      "scope": 2322,
      "src": "22187:506:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1497,
       "nodeType": "Block",
       "src": "23473:316:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            "id": 1467,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 1465,
             "name": "answerer",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1455,
             "src": "23492:8:2",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "!=",
            "rightExpression": {
             "argumentTypes": null,
             "id": 1466,
             "name": "NULL_ADDRESS",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 135,
             "src": "23504:12:2",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "src": "23492:24:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "616e737765726572206d7573742062652070726f7669646564",
            "id": 1468,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "23518:27:2",
            "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": 1464,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "23484:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1469,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "23484:62:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1470,
         "nodeType": "ExpressionStatement",
         "src": "23484:62:2"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1472,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1451,
            "src": "23573:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1473,
            "name": "answer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1453,
            "src": "23586:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           ],
           "id": 1471,
           "name": "LogFinalize",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 237,
           "src": "23561:11:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
            "typeString": "function (bytes32,bytes32)"
           }
          },
          "id": 1474,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "23561:32:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1475,
         "nodeType": "EmitStatement",
         "src": "23556:37:2"
        },
        {
         "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": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "23604:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1478,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1477,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1451,
             "src": "23614:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "23604:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1479,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "is_pending_arbitration",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 257,
           "src": "23604:45:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "hexValue": "66616c7365",
           "id": 1480,
           "isConstant": false,
           "isLValue": false,
           "isPure": true,
           "kind": "bool",
           "lValueRequested": false,
           "nodeType": "Literal",
           "src": "23652:5:2",
           "subdenomination": null,
           "typeDescriptions": {
            "typeIdentifier": "t_bool",
            "typeString": "bool"
           },
           "value": "false"
          },
          "src": "23604:53:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "id": 1482,
         "nodeType": "ExpressionStatement",
         "src": "23604:53:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1484,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1451,
            "src": "23687:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1485,
            "name": "answer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1453,
            "src": "23700:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1486,
            "name": "answerer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1455,
            "src": "23708:8:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "30",
            "id": 1487,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "number",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "23718:1:2",
            "subdenomination": null,
            "typeDescriptions": {
             "typeIdentifier": "t_rational_0_by_1",
             "typeString": "int_const 0"
            },
            "value": "0"
           },
           {
            "argumentTypes": null,
            "hexValue": "66616c7365",
            "id": 1488,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "bool",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "23721:5:2",
            "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": 1483,
           "name": "_addAnswerToHistory",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1378,
           "src": "23667:19:2",
           "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": 1489,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "23667:60:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1490,
         "nodeType": "ExpressionStatement",
         "src": "23667:60:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1492,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1451,
            "src": "23758:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1493,
            "name": "answer",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1453,
            "src": "23771:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "30",
            "id": 1494,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "number",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "23779:1:2",
            "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": 1491,
           "name": "_updateCurrentAnswer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1407,
           "src": "23737:20:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint32_$returns$__$",
            "typeString": "function (bytes32,bytes32,uint32)"
           }
          },
          "id": 1495,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "23737:44:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1496,
         "nodeType": "ExpressionStatement",
         "src": "23737:44:2"
        }
       ]
      },
      "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": 1498,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1458,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1451,
          "src": "23402:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1459,
        "modifierName": {
         "argumentTypes": null,
         "id": 1457,
         "name": "onlyArbitrator",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 324,
         "src": "23387:14:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "23387:27:2"
       },
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1461,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1451,
          "src": "23447:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1462,
        "modifierName": {
         "argumentTypes": null,
         "id": 1460,
         "name": "statePendingArbitration",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 423,
         "src": "23423:23:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "23423:36:2"
       }
      ],
      "name": "submitAnswerByArbitrator",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1456,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1451,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1498,
         "src": "23323:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1450,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "23323:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1453,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 1498,
         "src": "23344:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1452,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "23344:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1455,
         "name": "answerer",
         "nodeType": "VariableDeclaration",
         "scope": 1498,
         "src": "23360:16:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1454,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "23360:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "23322:55:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1463,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "23473:0:2"
      },
      "scope": 2322,
      "src": "23289:500:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1531,
       "nodeType": "Block",
       "src": "24041:201:2",
       "statements": [
        {
         "assignments": [
          1506
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1506,
           "name": "finalize_ts",
           "nodeType": "VariableDeclaration",
           "scope": 1532,
           "src": "24051:18:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint32",
            "typeString": "uint32"
           },
           "typeName": {
            "id": 1505,
            "name": "uint32",
            "nodeType": "ElementaryTypeName",
            "src": "24051:6:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1511,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1507,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "24072:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 1509,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1508,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1500,
            "src": "24082:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "24072:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 1510,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "finalize_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 255,
          "src": "24072:34:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "24051:55:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "components": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            },
            "id": 1528,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             },
             "id": 1521,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 1516,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "UnaryOperation",
              "operator": "!",
              "prefix": true,
              "src": "24125:46:2",
              "subExpression": {
               "argumentTypes": null,
               "expression": {
                "argumentTypes": null,
                "baseExpression": {
                 "argumentTypes": null,
                 "id": 1512,
                 "name": "questions",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 295,
                 "src": "24126:9:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                  "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                 }
                },
                "id": 1514,
                "indexExpression": {
                 "argumentTypes": null,
                 "id": 1513,
                 "name": "question_id",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1500,
                 "src": "24136:11:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "IndexAccess",
                "src": "24126:22:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_struct$_Question_$266_storage",
                 "typeString": "struct RealitioERC20.Question storage ref"
                }
               },
               "id": 1515,
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "memberName": "is_pending_arbitration",
               "nodeType": "MemberAccess",
               "referencedDeclaration": 257,
               "src": "24126:45:2",
               "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": 1519,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftExpression": {
                 "argumentTypes": null,
                 "id": 1517,
                 "name": "finalize_ts",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1506,
                 "src": "24176:11:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                 }
                },
                "nodeType": "BinaryOperation",
                "operator": ">",
                "rightExpression": {
                 "argumentTypes": null,
                 "id": 1518,
                 "name": "UNANSWERED",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 143,
                 "src": "24190:10:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                 }
                },
                "src": "24176:24:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bool",
                 "typeString": "bool"
                }
               }
              ],
              "id": 1520,
              "isConstant": false,
              "isInlineArray": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "TupleExpression",
              "src": "24175:26:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bool",
               "typeString": "bool"
              }
             },
             "src": "24125:76:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "&&",
            "rightExpression": {
             "argumentTypes": null,
             "components": [
              {
               "argumentTypes": null,
               "commonType": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
               },
               "id": 1526,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "lValueRequested": false,
               "leftExpression": {
                "argumentTypes": null,
                "id": 1522,
                "name": "finalize_ts",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1506,
                "src": "24206:11:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint32",
                 "typeString": "uint32"
                }
               },
               "nodeType": "BinaryOperation",
               "operator": "<=",
               "rightExpression": {
                "argumentTypes": null,
                "arguments": [
                 {
                  "argumentTypes": null,
                  "id": 1524,
                  "name": "now",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2464,
                  "src": "24228:3:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 }
                ],
                "expression": {
                 "argumentTypes": [
                  {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 ],
                 "id": 1523,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": true,
                 "lValueRequested": false,
                 "nodeType": "ElementaryTypeNameExpression",
                 "src": "24221:6:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_uint32_$",
                  "typeString": "type(uint32)"
                 },
                 "typeName": "uint32"
                },
                "id": 1525,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "kind": "typeConversion",
                "lValueRequested": false,
                "names": [],
                "nodeType": "FunctionCall",
                "src": "24221:11:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint32",
                 "typeString": "uint32"
                }
               },
               "src": "24206:26:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
               }
              }
             ],
             "id": 1527,
             "isConstant": false,
             "isInlineArray": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "TupleExpression",
             "src": "24205:28:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "src": "24125:108:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           }
          ],
          "id": 1529,
          "isConstant": false,
          "isInlineArray": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "nodeType": "TupleExpression",
          "src": "24123:112:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "functionReturnParameters": 1504,
         "id": 1530,
         "nodeType": "Return",
         "src": "24116:119:2"
        }
       ]
      },
      "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": 1532,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "isFinalized",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1501,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1500,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1532,
         "src": "23988:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1499,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "23988:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "23987:21:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1504,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1503,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 1532,
         "src": "24035:4:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         },
         "typeName": {
          "id": 1502,
          "name": "bool",
          "nodeType": "ElementaryTypeName",
          "src": "24035:4:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "24034:6:2"
      },
      "scope": 2322,
      "src": "23967:275:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 1547,
       "nodeType": "Block",
       "src": "24575:58:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1542,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "24592:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 1544,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1543,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1534,
            "src": "24602:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "24592:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 1545,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "best_answer",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 261,
          "src": "24592:34:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 1541,
         "id": 1546,
         "nodeType": "Return",
         "src": "24585:41:2"
        }
       ]
      },
      "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": 1548,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1537,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1534,
          "src": "24526:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1538,
        "modifierName": {
         "argumentTypes": null,
         "id": 1536,
         "name": "stateFinalized",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 492,
         "src": "24511:14:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "24511:27:2"
       }
      ],
      "name": "getFinalAnswer",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1535,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1534,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1548,
         "src": "24481:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1533,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "24481:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "24480:21:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1541,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1540,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 1548,
         "src": "24566:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1539,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "24566:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "24565:9:2"
      },
      "scope": 2322,
      "src": "24457:176:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1563,
       "nodeType": "Block",
       "src": "24948:58:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1558,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "24965:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 1560,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1559,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1550,
            "src": "24975:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "24965:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 1561,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "best_answer",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 261,
          "src": "24965:34:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 1557,
         "id": 1562,
         "nodeType": "Return",
         "src": "24958:41:2"
        }
       ]
      },
      "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": 1564,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1553,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1550,
          "src": "24899:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1554,
        "modifierName": {
         "argumentTypes": null,
         "id": 1552,
         "name": "stateFinalized",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 492,
         "src": "24884:14:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "24884:27:2"
       }
      ],
      "name": "resultFor",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1551,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1550,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1564,
         "src": "24854:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1549,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "24854:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "24853:21:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1557,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1556,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 1564,
         "src": "24939:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1555,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "24939:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "24938:9:2"
      },
      "scope": 2322,
      "src": "24835:171:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1627,
       "nodeType": "Block",
       "src": "25984:427:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            "id": 1588,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 1583,
             "name": "content_hash",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1568,
             "src": "26002:12:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "==",
            "rightExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1584,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 295,
               "src": "26018:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
               }
              },
              "id": 1586,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1585,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1566,
               "src": "26028:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "26018:22:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$266_storage",
               "typeString": "struct RealitioERC20.Question storage ref"
              }
             },
             "id": 1587,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "content_hash",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 247,
             "src": "26018:35:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "src": "26002:51:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "636f6e74656e742068617368206d757374206d61746368",
            "id": 1589,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "26055:25:2",
            "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": 1582,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "25994:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1590,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "25994:87:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1591,
         "nodeType": "ExpressionStatement",
         "src": "25994:87:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            "id": 1598,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 1593,
             "name": "arbitrator",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1570,
             "src": "26099:10:2",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "==",
            "rightExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1594,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 295,
               "src": "26113:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
               }
              },
              "id": 1596,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1595,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1566,
               "src": "26123:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "26113:22:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$266_storage",
               "typeString": "struct RealitioERC20.Question storage ref"
              }
             },
             "id": 1597,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "arbitrator",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 249,
             "src": "26113:33:2",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "src": "26099:47:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "61726269747261746f72206d757374206d61746368",
            "id": 1599,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "26148:23:2",
            "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": 1592,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "26091:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1600,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "26091:81:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1601,
         "nodeType": "ExpressionStatement",
         "src": "26091:81:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint32",
             "typeString": "uint32"
            },
            "id": 1608,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 1603,
             "name": "min_timeout",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1572,
             "src": "26190:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "<=",
            "rightExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1604,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 295,
               "src": "26205:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
               }
              },
              "id": 1606,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1605,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1566,
               "src": "26215:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "26205:22:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$266_storage",
               "typeString": "struct RealitioERC20.Question storage ref"
              }
             },
             "id": 1607,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "timeout",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 253,
             "src": "26205:30:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
             }
            },
            "src": "26190:45:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "74696d656f7574206d757374206265206c6f6e6720656e6f756768",
            "id": 1609,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "26237:29:2",
            "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": 1602,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "26182:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1610,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "26182:85:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1611,
         "nodeType": "ExpressionStatement",
         "src": "26182:85:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 1618,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "id": 1613,
             "name": "min_bond",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1574,
             "src": "26285:8:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": "<=",
            "rightExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1614,
               "name": "questions",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 295,
               "src": "26297:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
               }
              },
              "id": 1616,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1615,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1566,
               "src": "26307:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "26297:22:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Question_$266_storage",
               "typeString": "struct RealitioERC20.Question storage ref"
              }
             },
             "id": 1617,
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "bond",
             "nodeType": "MemberAccess",
             "referencedDeclaration": 265,
             "src": "26297:27:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "src": "26285:39:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "626f6e64206d757374206265206869676820656e6f756768",
            "id": 1619,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "26326:26:2",
            "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": 1612,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "26277:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1620,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "26277:76:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1621,
         "nodeType": "ExpressionStatement",
         "src": "26277:76:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1622,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "26370:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 1624,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1623,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1566,
            "src": "26380:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "26370:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 1625,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "best_answer",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 261,
          "src": "26370:34:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 1581,
         "id": 1626,
         "nodeType": "Return",
         "src": "26363:41:2"
        }
       ]
      },
      "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": 1628,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1577,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1566,
          "src": "25935:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1578,
        "modifierName": {
         "argumentTypes": null,
         "id": 1576,
         "name": "stateFinalized",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 492,
         "src": "25920:14:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "25920:27:2"
       }
      ],
      "name": "getFinalAnswerIfMatches",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1575,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1566,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1628,
         "src": "25796:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1565,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "25796:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1568,
         "name": "content_hash",
         "nodeType": "VariableDeclaration",
         "scope": 1628,
         "src": "25826:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1567,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "25826:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1570,
         "name": "arbitrator",
         "nodeType": "VariableDeclaration",
         "scope": 1628,
         "src": "25848:18:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1569,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "25848:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1572,
         "name": "min_timeout",
         "nodeType": "VariableDeclaration",
         "scope": 1628,
         "src": "25868:18:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 1571,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "25868:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1574,
         "name": "min_bond",
         "nodeType": "VariableDeclaration",
         "scope": 1628,
         "src": "25888:16:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1573,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "25888:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "25786:124:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1581,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1580,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 1628,
         "src": "25975:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1579,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "25975:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "25974:9:2"
      },
      "scope": 2322,
      "src": "25754:657:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "external"
     },
     {
      "body": {
       "id": 1828,
       "nodeType": "Block",
       "src": "27923:2585:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "commonType": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            },
            "id": 1652,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "leftExpression": {
             "argumentTypes": null,
             "expression": {
              "argumentTypes": null,
              "id": 1649,
              "name": "history_hashes",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1633,
              "src": "27942:14:2",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
               "typeString": "bytes32[] memory"
              }
             },
             "id": 1650,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "memberName": "length",
             "nodeType": "MemberAccess",
             "referencedDeclaration": null,
             "src": "27942:21:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "BinaryOperation",
            "operator": ">",
            "rightExpression": {
             "argumentTypes": null,
             "hexValue": "30",
             "id": 1651,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "number",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "27966:1:2",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_rational_0_by_1",
              "typeString": "int_const 0"
             },
             "value": "0"
            },
            "src": "27942:25:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bool",
             "typeString": "bool"
            }
           },
           {
            "argumentTypes": null,
            "hexValue": "6174206c65617374206f6e6520686973746f7279206861736820656e747279206d7573742062652070726f7669646564",
            "id": 1653,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "27969:50:2",
            "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": 1648,
           "name": "require",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2465,
            2466
           ],
           "referencedDeclaration": 2466,
           "src": "27934:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (bool,string memory) pure"
           }
          },
          "id": 1654,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "27934:86:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1655,
         "nodeType": "ExpressionStatement",
         "src": "27934:86:2"
        },
        {
         "assignments": [
          1657
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1657,
           "name": "payee",
           "nodeType": "VariableDeclaration",
           "scope": 1829,
           "src": "28111:13:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           },
           "typeName": {
            "id": 1656,
            "name": "address",
            "nodeType": "ElementaryTypeName",
            "src": "28111:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1662,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1658,
            "name": "question_claims",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 299,
            "src": "28127:15:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$280_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
            }
           },
           "id": 1660,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1659,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1630,
            "src": "28143:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "28127:28:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Claim_$280_storage",
            "typeString": "struct RealitioERC20.Claim storage ref"
           }
          },
          "id": 1661,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "payee",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 275,
          "src": "28127:34:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "28111:50:2"
        },
        {
         "assignments": [
          1664
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1664,
           "name": "last_bond",
           "nodeType": "VariableDeclaration",
           "scope": 1829,
           "src": "28172:17:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 1663,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "28172:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1669,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1665,
            "name": "question_claims",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 299,
            "src": "28192:15:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$280_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
            }
           },
           "id": 1667,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1666,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1630,
            "src": "28208:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "28192:28:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Claim_$280_storage",
            "typeString": "struct RealitioERC20.Claim storage ref"
           }
          },
          "id": 1668,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "last_bond",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 277,
          "src": "28192:38:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "28172:58:2"
        },
        {
         "assignments": [
          1671
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1671,
           "name": "queued_funds",
           "nodeType": "VariableDeclaration",
           "scope": 1829,
           "src": "28241:20:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 1670,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "28241:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1676,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1672,
            "name": "question_claims",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 299,
            "src": "28264:15:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$280_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
            }
           },
           "id": 1674,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1673,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1630,
            "src": "28280:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "28264:28:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Claim_$280_storage",
            "typeString": "struct RealitioERC20.Claim storage ref"
           }
          },
          "id": 1675,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "queued_funds",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 279,
          "src": "28264:41:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "28241:64:2"
        },
        {
         "assignments": [
          1678
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1678,
           "name": "last_history_hash",
           "nodeType": "VariableDeclaration",
           "scope": 1829,
           "src": "28526:25:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1677,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "28526:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1683,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1679,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "28554:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 1681,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1680,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1630,
            "src": "28564:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "28554:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 1682,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "history_hash",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 263,
          "src": "28554:35:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "28526:63:2"
        },
        {
         "assignments": [
          1685
         ],
         "declarations": [
          {
           "constant": false,
           "id": 1685,
           "name": "best_answer",
           "nodeType": "VariableDeclaration",
           "scope": 1829,
           "src": "28600:19:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           },
           "typeName": {
            "id": 1684,
            "name": "bytes32",
            "nodeType": "ElementaryTypeName",
            "src": "28600:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1690,
         "initialValue": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1686,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "28622:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 1688,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1687,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1630,
            "src": "28632:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "28622:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 1689,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "best_answer",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 261,
          "src": "28622:34:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "nodeType": "VariableDeclarationStatement",
         "src": "28600:56:2"
        },
        {
         "assignments": [],
         "declarations": [
          {
           "constant": false,
           "id": 1692,
           "name": "i",
           "nodeType": "VariableDeclaration",
           "scope": 1829,
           "src": "28667:9:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 1691,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "28667:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 1693,
         "initialValue": null,
         "nodeType": "VariableDeclarationStatement",
         "src": "28667:9:2"
        },
        {
         "body": {
          "id": 1763,
          "nodeType": "Block",
          "src": "28730:702:2",
          "statements": [
           {
            "assignments": [
             1706
            ],
            "declarations": [
             {
              "constant": false,
              "id": 1706,
              "name": "is_commitment",
              "nodeType": "VariableDeclaration",
              "scope": 1829,
              "src": "28864:18:2",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
               "typeIdentifier": "t_bool",
               "typeString": "bool"
              },
              "typeName": {
               "id": 1705,
               "name": "bool",
               "nodeType": "ElementaryTypeName",
               "src": "28864:4:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 1722,
            "initialValue": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1708,
               "name": "last_history_hash",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1678,
               "src": "28913:17:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1709,
                "name": "history_hashes",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1633,
                "src": "28932:14:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                 "typeString": "bytes32[] memory"
                }
               },
               "id": 1711,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1710,
                "name": "i",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1692,
                "src": "28947:1:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "28932:17:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1712,
                "name": "answers",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1642,
                "src": "28951:7:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                 "typeString": "bytes32[] memory"
                }
               },
               "id": 1714,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1713,
                "name": "i",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1692,
                "src": "28959:1:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "28951:10:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1715,
                "name": "bonds",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1639,
                "src": "28963:5:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                 "typeString": "uint256[] memory"
                }
               },
               "id": 1717,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1716,
                "name": "i",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1692,
                "src": "28969:1:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "28963:8:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1718,
                "name": "addrs",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1636,
                "src": "28973:5:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                 "typeString": "address[] memory"
                }
               },
               "id": 1720,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1719,
                "name": "i",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1692,
                "src": "28979:1:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "28973:8:2",
               "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": 1707,
              "name": "_verifyHistoryInputOrRevert",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1908,
              "src": "28885:27:2",
              "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": 1721,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "28885:97:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "28864:118:2"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1728,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "id": 1723,
              "name": "queued_funds",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1671,
              "src": "29009:12:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 1726,
                "name": "last_bond",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1664,
                "src": "29041:9:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               }
              ],
              "expression": {
               "argumentTypes": [
                {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               ],
               "expression": {
                "argumentTypes": null,
                "id": 1724,
                "name": "queued_funds",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1671,
                "src": "29024:12:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 1725,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "lValueRequested": false,
               "memberName": "add",
               "nodeType": "MemberAccess",
               "referencedDeclaration": 2419,
               "src": "29024:16:2",
               "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": 1727,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "29024:27:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "29009:42:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1729,
            "nodeType": "ExpressionStatement",
            "src": "29009:42:2"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1749,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "components": [
               {
                "argumentTypes": null,
                "id": 1730,
                "name": "queued_funds",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1671,
                "src": "29067:12:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               {
                "argumentTypes": null,
                "id": 1731,
                "name": "payee",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1657,
                "src": "29081:5:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               }
              ],
              "id": 1732,
              "isConstant": false,
              "isInlineArray": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "nodeType": "TupleExpression",
              "src": "29066:21:2",
              "typeDescriptions": {
               "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
               "typeString": "tuple(uint256,address)"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "arguments": [
               {
                "argumentTypes": null,
                "id": 1734,
                "name": "question_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1630,
                "src": "29127:11:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               {
                "argumentTypes": null,
                "id": 1735,
                "name": "best_answer",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1685,
                "src": "29140:11:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               {
                "argumentTypes": null,
                "id": 1736,
                "name": "queued_funds",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1671,
                "src": "29153:12:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               {
                "argumentTypes": null,
                "id": 1737,
                "name": "payee",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1657,
                "src": "29167:5:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               },
               {
                "argumentTypes": null,
                "baseExpression": {
                 "argumentTypes": null,
                 "id": 1738,
                 "name": "addrs",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1636,
                 "src": "29191:5:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                  "typeString": "address[] memory"
                 }
                },
                "id": 1740,
                "indexExpression": {
                 "argumentTypes": null,
                 "id": 1739,
                 "name": "i",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1692,
                 "src": "29197:1:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "IndexAccess",
                "src": "29191:8:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               },
               {
                "argumentTypes": null,
                "baseExpression": {
                 "argumentTypes": null,
                 "id": 1741,
                 "name": "bonds",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1639,
                 "src": "29201:5:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                  "typeString": "uint256[] memory"
                 }
                },
                "id": 1743,
                "indexExpression": {
                 "argumentTypes": null,
                 "id": 1742,
                 "name": "i",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1692,
                 "src": "29207:1:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "IndexAccess",
                "src": "29201:8:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               {
                "argumentTypes": null,
                "baseExpression": {
                 "argumentTypes": null,
                 "id": 1744,
                 "name": "answers",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1642,
                 "src": "29211:7:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                  "typeString": "bytes32[] memory"
                 }
                },
                "id": 1746,
                "indexExpression": {
                 "argumentTypes": null,
                 "id": 1745,
                 "name": "i",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1692,
                 "src": "29219:1:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "isConstant": false,
                "isLValue": true,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "IndexAccess",
                "src": "29211:10:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               {
                "argumentTypes": null,
                "id": 1747,
                "name": "is_commitment",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1706,
                "src": "29223:13:2",
                "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": 1733,
               "name": "_processHistoryItem",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2035,
               "src": "29090:19:2",
               "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": 1748,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "kind": "functionCall",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "29090:147:2",
              "typeDescriptions": {
               "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
               "typeString": "tuple(uint256,address)"
              }
             },
             "src": "29066:171:2",
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 1750,
            "nodeType": "ExpressionStatement",
            "src": "29066:171:2"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1755,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "id": 1751,
              "name": "last_bond",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1664,
              "src": "29349:9:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1752,
               "name": "bonds",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1639,
               "src": "29361:5:2",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                "typeString": "uint256[] memory"
               }
              },
              "id": 1754,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1753,
               "name": "i",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1692,
               "src": "29367:1:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "29361:8:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "29349:20:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1756,
            "nodeType": "ExpressionStatement",
            "src": "29349:20:2"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1761,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "id": 1757,
              "name": "last_history_hash",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1678,
              "src": "29383:17:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1758,
               "name": "history_hashes",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1633,
               "src": "29403:14:2",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                "typeString": "bytes32[] memory"
               }
              },
              "id": 1760,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1759,
               "name": "i",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1692,
               "src": "29418:1:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "IndexAccess",
              "src": "29403:17:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              }
             },
             "src": "29383:37:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "id": 1762,
            "nodeType": "ExpressionStatement",
            "src": "29383:37:2"
           }
          ]
         },
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          },
          "id": 1701,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 1698,
           "name": "i",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1692,
           "src": "28698:1:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "<",
          "rightExpression": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "id": 1699,
            "name": "history_hashes",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1633,
            "src": "28702:14:2",
            "typeDescriptions": {
             "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
             "typeString": "bytes32[] memory"
            }
           },
           "id": 1700,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "length",
           "nodeType": "MemberAccess",
           "referencedDeclaration": null,
           "src": "28702:21:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "28698:25:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "id": 1764,
         "initializationExpression": {
          "expression": {
           "argumentTypes": null,
           "id": 1696,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "leftHandSide": {
            "argumentTypes": null,
            "id": 1694,
            "name": "i",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1692,
            "src": "28691:1:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "nodeType": "Assignment",
           "operator": "=",
           "rightHandSide": {
            "argumentTypes": null,
            "hexValue": "30",
            "id": 1695,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "number",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "28695:1:2",
            "subdenomination": null,
            "typeDescriptions": {
             "typeIdentifier": "t_rational_0_by_1",
             "typeString": "int_const 0"
            },
            "value": "0"
           },
           "src": "28691:5:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 1697,
          "nodeType": "ExpressionStatement",
          "src": "28691:5:2"
         },
         "loopExpression": {
          "expression": {
           "argumentTypes": null,
           "id": 1703,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "UnaryOperation",
           "operator": "++",
           "prefix": false,
           "src": "28725:3:2",
           "subExpression": {
            "argumentTypes": null,
            "id": 1702,
            "name": "i",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1692,
            "src": "28725:1:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 1704,
          "nodeType": "ExpressionStatement",
          "src": "28725:3:2"
         },
         "nodeType": "ForStatement",
         "src": "28686:746:2"
        },
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          },
          "id": 1767,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 1765,
           "name": "last_history_hash",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1678,
           "src": "29447:17:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "!=",
          "rightExpression": {
           "argumentTypes": null,
           "id": 1766,
           "name": "NULL_HASH",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 140,
           "src": "29468:9:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "29447:30:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": {
          "id": 1819,
          "nodeType": "Block",
          "src": "30222:213:2",
          "statements": [
           {
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1806,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1630,
               "src": "30327:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 1807,
               "name": "payee",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1657,
               "src": "30340:5:2",
               "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
               }
              },
              {
               "argumentTypes": null,
               "arguments": [
                {
                 "argumentTypes": null,
                 "id": 1810,
                 "name": "last_bond",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1664,
                 "src": "30364:9:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                }
               ],
               "expression": {
                "argumentTypes": [
                 {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                ],
                "expression": {
                 "argumentTypes": null,
                 "id": 1808,
                 "name": "queued_funds",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1671,
                 "src": "30347:12:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "id": 1809,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "memberName": "add",
                "nodeType": "MemberAccess",
                "referencedDeclaration": 2419,
                "src": "30347:16:2",
                "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": 1811,
               "isConstant": false,
               "isLValue": false,
               "isPure": false,
               "kind": "functionCall",
               "lValueRequested": false,
               "names": [],
               "nodeType": "FunctionCall",
               "src": "30347:27:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               },
               {
                "typeIdentifier": "t_address",
                "typeString": "address"
               },
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 1805,
              "name": "_payPayee",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1856,
              "src": "30317:9:2",
              "typeDescriptions": {
               "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
               "typeString": "function (bytes32,address,uint256)"
              }
             },
             "id": 1812,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "30317:58:2",
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 1813,
            "nodeType": "ExpressionStatement",
            "src": "30317:58:2"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1817,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "UnaryOperation",
             "operator": "delete",
             "prefix": true,
             "src": "30389:35:2",
             "subExpression": {
              "argumentTypes": null,
              "baseExpression": {
               "argumentTypes": null,
               "id": 1814,
               "name": "question_claims",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 299,
               "src": "30396:15:2",
               "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$280_storage_$",
                "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
               }
              },
              "id": 1816,
              "indexExpression": {
               "argumentTypes": null,
               "id": 1815,
               "name": "question_id",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1630,
               "src": "30412:11:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "nodeType": "IndexAccess",
              "src": "30396:28:2",
              "typeDescriptions": {
               "typeIdentifier": "t_struct$_Claim_$280_storage",
               "typeString": "struct RealitioERC20.Claim storage ref"
              }
             },
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 1818,
            "nodeType": "ExpressionStatement",
            "src": "30389:35:2"
           }
          ]
         },
         "id": 1820,
         "nodeType": "IfStatement",
         "src": "29443:992:2",
         "trueBody": {
          "id": 1804,
          "nodeType": "Block",
          "src": "29479:737:2",
          "statements": [
           {
            "condition": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             },
             "id": 1770,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 1768,
              "name": "payee",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1657,
              "src": "29882:5:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "!=",
             "rightExpression": {
              "argumentTypes": null,
              "id": 1769,
              "name": "NULL_ADDRESS",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 135,
              "src": "29891:12:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "src": "29882:21:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "falseBody": null,
            "id": 1782,
            "nodeType": "IfStatement",
            "src": "29878:137:2",
            "trueBody": {
             "id": 1781,
             "nodeType": "Block",
             "src": "29905:110:2",
             "statements": [
              {
               "expression": {
                "argumentTypes": null,
                "arguments": [
                 {
                  "argumentTypes": null,
                  "id": 1772,
                  "name": "question_id",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1630,
                  "src": "29933:11:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_bytes32",
                   "typeString": "bytes32"
                  }
                 },
                 {
                  "argumentTypes": null,
                  "id": 1773,
                  "name": "payee",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1657,
                  "src": "29946:5:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_address",
                   "typeString": "address"
                  }
                 },
                 {
                  "argumentTypes": null,
                  "id": 1774,
                  "name": "queued_funds",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1671,
                  "src": "29953:12:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 }
                ],
                "expression": {
                 "argumentTypes": [
                  {
                   "typeIdentifier": "t_bytes32",
                   "typeString": "bytes32"
                  },
                  {
                   "typeIdentifier": "t_address",
                   "typeString": "address"
                  },
                  {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 ],
                 "id": 1771,
                 "name": "_payPayee",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1856,
                 "src": "29923:9:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                  "typeString": "function (bytes32,address,uint256)"
                 }
                },
                "id": 1775,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "kind": "functionCall",
                "lValueRequested": false,
                "names": [],
                "nodeType": "FunctionCall",
                "src": "29923:43:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_tuple$__$",
                 "typeString": "tuple()"
                }
               },
               "id": 1776,
               "nodeType": "ExpressionStatement",
               "src": "29923:43:2"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 1779,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "id": 1777,
                 "name": "queued_funds",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1671,
                 "src": "29984:12:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "hexValue": "30",
                 "id": 1778,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": true,
                 "kind": "number",
                 "lValueRequested": false,
                 "nodeType": "Literal",
                 "src": "29999:1:2",
                 "subdenomination": null,
                 "typeDescriptions": {
                  "typeIdentifier": "t_rational_0_by_1",
                  "typeString": "int_const 0"
                 },
                 "value": "0"
                },
                "src": "29984:16:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 1780,
               "nodeType": "ExpressionStatement",
               "src": "29984:16:2"
              }
             ]
            }
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1788,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1783,
                "name": "question_claims",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 299,
                "src": "30029:15:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$280_storage_$",
                 "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                }
               },
               "id": 1785,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1784,
                "name": "question_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1630,
                "src": "30045:11:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "30029:28:2",
               "typeDescriptions": {
                "typeIdentifier": "t_struct$_Claim_$280_storage",
                "typeString": "struct RealitioERC20.Claim storage ref"
               }
              },
              "id": 1786,
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "memberName": "payee",
              "nodeType": "MemberAccess",
              "referencedDeclaration": 275,
              "src": "30029:34:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "id": 1787,
              "name": "payee",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1657,
              "src": "30066:5:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "src": "30029:42:2",
             "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             }
            },
            "id": 1789,
            "nodeType": "ExpressionStatement",
            "src": "30029:42:2"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1795,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1790,
                "name": "question_claims",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 299,
                "src": "30085:15:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$280_storage_$",
                 "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                }
               },
               "id": 1792,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1791,
                "name": "question_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1630,
                "src": "30101:11:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "30085:28:2",
               "typeDescriptions": {
                "typeIdentifier": "t_struct$_Claim_$280_storage",
                "typeString": "struct RealitioERC20.Claim storage ref"
               }
              },
              "id": 1793,
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "memberName": "last_bond",
              "nodeType": "MemberAccess",
              "referencedDeclaration": 277,
              "src": "30085:38:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "id": 1794,
              "name": "last_bond",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1664,
              "src": "30126:9:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "30085:50:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1796,
            "nodeType": "ExpressionStatement",
            "src": "30085:50:2"
           },
           {
            "expression": {
             "argumentTypes": null,
             "id": 1802,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftHandSide": {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1797,
                "name": "question_claims",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 299,
                "src": "30149:15:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$280_storage_$",
                 "typeString": "mapping(bytes32 => struct RealitioERC20.Claim storage ref)"
                }
               },
               "id": 1799,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1798,
                "name": "question_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1630,
                "src": "30165:11:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "30149:28:2",
               "typeDescriptions": {
                "typeIdentifier": "t_struct$_Claim_$280_storage",
                "typeString": "struct RealitioERC20.Claim storage ref"
               }
              },
              "id": 1800,
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": true,
              "memberName": "queued_funds",
              "nodeType": "MemberAccess",
              "referencedDeclaration": 279,
              "src": "30149:41:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "Assignment",
             "operator": "=",
             "rightHandSide": {
              "argumentTypes": null,
              "id": 1801,
              "name": "queued_funds",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1671,
              "src": "30193:12:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "30149:56:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1803,
            "nodeType": "ExpressionStatement",
            "src": "30149:56:2"
           }
          ]
         }
        },
        {
         "expression": {
          "argumentTypes": null,
          "id": 1826,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "baseExpression": {
             "argumentTypes": null,
             "id": 1821,
             "name": "questions",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 295,
             "src": "30445:9:2",
             "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
              "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
             }
            },
            "id": 1823,
            "indexExpression": {
             "argumentTypes": null,
             "id": 1822,
             "name": "question_id",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1630,
             "src": "30455:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "isConstant": false,
            "isLValue": true,
            "isPure": false,
            "lValueRequested": false,
            "nodeType": "IndexAccess",
            "src": "30445:22:2",
            "typeDescriptions": {
             "typeIdentifier": "t_struct$_Question_$266_storage",
             "typeString": "struct RealitioERC20.Question storage ref"
            }
           },
           "id": 1824,
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "memberName": "history_hash",
           "nodeType": "MemberAccess",
           "referencedDeclaration": 263,
           "src": "30445:35:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "id": 1825,
           "name": "last_history_hash",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1678,
           "src": "30483:17:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "30445:55:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "id": 1827,
         "nodeType": "ExpressionStatement",
         "src": "30445:55:2"
        }
       ]
      },
      "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": 1829,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [
         {
          "argumentTypes": null,
          "id": 1645,
          "name": "question_id",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1630,
          "src": "27899:11:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         }
        ],
        "id": 1646,
        "modifierName": {
         "argumentTypes": null,
         "id": 1644,
         "name": "stateFinalized",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 492,
         "src": "27884:14:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$_t_bytes32_$",
          "typeString": "modifier (bytes32)"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "27884:27:2"
       }
      ],
      "name": "claimWinnings",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1643,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1630,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1829,
         "src": "27761:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1629,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "27761:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1633,
         "name": "history_hashes",
         "nodeType": "VariableDeclaration",
         "scope": 1829,
         "src": "27791:24:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
          "typeString": "bytes32[]"
         },
         "typeName": {
          "baseType": {
           "id": 1631,
           "name": "bytes32",
           "nodeType": "ElementaryTypeName",
           "src": "27791:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "id": 1632,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "27791:9:2",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
           "typeString": "bytes32[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1636,
         "name": "addrs",
         "nodeType": "VariableDeclaration",
         "scope": 1829,
         "src": "27817:15:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
          "typeString": "address[]"
         },
         "typeName": {
          "baseType": {
           "id": 1634,
           "name": "address",
           "nodeType": "ElementaryTypeName",
           "src": "27817:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "id": 1635,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "27817:9:2",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
           "typeString": "address[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1639,
         "name": "bonds",
         "nodeType": "VariableDeclaration",
         "scope": 1829,
         "src": "27834:15:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
          "typeString": "uint256[]"
         },
         "typeName": {
          "baseType": {
           "id": 1637,
           "name": "uint256",
           "nodeType": "ElementaryTypeName",
           "src": "27834:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 1638,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "27834:9:2",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
           "typeString": "uint256[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1642,
         "name": "answers",
         "nodeType": "VariableDeclaration",
         "scope": 1829,
         "src": "27851:17:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
          "typeString": "bytes32[]"
         },
         "typeName": {
          "baseType": {
           "id": 1640,
           "name": "bytes32",
           "nodeType": "ElementaryTypeName",
           "src": "27851:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "id": 1641,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "27851:9:2",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
           "typeString": "bytes32[]"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "27751:123:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1647,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "27923:0:2"
      },
      "scope": 2322,
      "src": "27729:2779:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 1855,
       "nodeType": "Block",
       "src": "30598:113:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "id": 1847,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftHandSide": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 1838,
            "name": "balanceOf",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 8,
            "src": "30608:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
             "typeString": "mapping(address => uint256)"
            }
           },
           "id": 1840,
           "indexExpression": {
            "argumentTypes": null,
            "id": 1839,
            "name": "payee",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1833,
            "src": "30618:5:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": true,
           "nodeType": "IndexAccess",
           "src": "30608:16:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "Assignment",
          "operator": "=",
          "rightHandSide": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "id": 1845,
             "name": "value",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1835,
             "src": "30648:5:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            ],
            "expression": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 1841,
              "name": "balanceOf",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 8,
              "src": "30627:9:2",
              "typeDescriptions": {
               "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
               "typeString": "mapping(address => uint256)"
              }
             },
             "id": 1843,
             "indexExpression": {
              "argumentTypes": null,
              "id": 1842,
              "name": "payee",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1833,
              "src": "30637:5:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "30627:16:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "id": 1844,
            "isConstant": false,
            "isLValue": false,
            "isPure": false,
            "lValueRequested": false,
            "memberName": "add",
            "nodeType": "MemberAccess",
            "referencedDeclaration": 2419,
            "src": "30627:20:2",
            "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": 1846,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "30627:27:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "30608:46:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "id": 1848,
         "nodeType": "ExpressionStatement",
         "src": "30608:46:2"
        },
        {
         "eventCall": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "id": 1850,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1831,
            "src": "30678:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           {
            "argumentTypes": null,
            "id": 1851,
            "name": "payee",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1833,
            "src": "30691:5:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           },
           {
            "argumentTypes": null,
            "id": 1852,
            "name": "value",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1835,
            "src": "30698:5:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           }
          ],
          "expression": {
           "argumentTypes": [
            {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            },
            {
             "typeIdentifier": "t_address",
             "typeString": "address"
            },
            {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           ],
           "id": 1849,
           "name": "LogClaim",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 245,
           "src": "30669:8:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
            "typeString": "function (bytes32,address,uint256)"
           }
          },
          "id": 1853,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "30669:35:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1854,
         "nodeType": "EmitStatement",
         "src": "30664:40:2"
        }
       ]
      },
      "documentation": null,
      "id": 1856,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "_payPayee",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1836,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1831,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 1856,
         "src": "30533:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1830,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "30533:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1833,
         "name": "payee",
         "nodeType": "VariableDeclaration",
         "scope": 1856,
         "src": "30554:13:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1832,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "30554:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1835,
         "name": "value",
         "nodeType": "VariableDeclaration",
         "scope": 1856,
         "src": "30569:13:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1834,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "30569:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "30532:51:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1837,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "30598:0:2"
      },
      "scope": 2322,
      "src": "30514:197:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 1907,
       "nodeType": "Block",
       "src": "30902:364:2",
       "statements": [
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          },
          "id": 1882,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 1871,
           "name": "last_history_hash",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1858,
           "src": "30916:17:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "==",
          "rightExpression": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1875,
               "name": "history_hash",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1860,
               "src": "30964:12:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 1876,
               "name": "answer",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1862,
               "src": "30978:6:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 1877,
               "name": "bond",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1864,
               "src": "30986:4:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              {
               "argumentTypes": null,
               "id": 1878,
               "name": "addr",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1866,
               "src": "30992:4:2",
               "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
               }
              },
              {
               "argumentTypes": null,
               "hexValue": "74727565",
               "id": 1879,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "kind": "bool",
               "lValueRequested": false,
               "nodeType": "Literal",
               "src": "30998:4:2",
               "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": 1873,
               "name": "abi",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2449,
               "src": "30947:3:2",
               "typeDescriptions": {
                "typeIdentifier": "t_magic_abi",
                "typeString": "abi"
               }
              },
              "id": 1874,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "memberName": "encodePacked",
              "nodeType": "MemberAccess",
              "referencedDeclaration": null,
              "src": "30947:16:2",
              "typeDescriptions": {
               "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
               "typeString": "function () pure returns (bytes memory)"
              }
             },
             "id": 1880,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "30947:56:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes_memory_ptr",
              "typeString": "bytes memory"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_bytes_memory_ptr",
              "typeString": "bytes memory"
             }
            ],
            "id": 1872,
            "name": "keccak256",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2456,
            "src": "30937:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
             "typeString": "function () pure returns (bytes32)"
            }
           },
           "id": 1881,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "30937:67:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "30916:88:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 1886,
         "nodeType": "IfStatement",
         "src": "30912:131:2",
         "trueBody": {
          "id": 1885,
          "nodeType": "Block",
          "src": "31007:36:2",
          "statements": [
           {
            "expression": {
             "argumentTypes": null,
             "hexValue": "74727565",
             "id": 1883,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "bool",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "31028:4:2",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             },
             "value": "true"
            },
            "functionReturnParameters": 1870,
            "id": 1884,
            "nodeType": "Return",
            "src": "31021:11:2"
           }
          ]
         }
        },
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          },
          "id": 1898,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 1887,
           "name": "last_history_hash",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1858,
           "src": "31056:17:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "==",
          "rightExpression": {
           "argumentTypes": null,
           "arguments": [
            {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 1891,
               "name": "history_hash",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1860,
               "src": "31104:12:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 1892,
               "name": "answer",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1862,
               "src": "31118:6:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 1893,
               "name": "bond",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1864,
               "src": "31126:4:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              {
               "argumentTypes": null,
               "id": 1894,
               "name": "addr",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1866,
               "src": "31132:4:2",
               "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
               }
              },
              {
               "argumentTypes": null,
               "hexValue": "66616c7365",
               "id": 1895,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "kind": "bool",
               "lValueRequested": false,
               "nodeType": "Literal",
               "src": "31138:5:2",
               "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": 1889,
               "name": "abi",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2449,
               "src": "31087:3:2",
               "typeDescriptions": {
                "typeIdentifier": "t_magic_abi",
                "typeString": "abi"
               }
              },
              "id": 1890,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "memberName": "encodePacked",
              "nodeType": "MemberAccess",
              "referencedDeclaration": null,
              "src": "31087:16:2",
              "typeDescriptions": {
               "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
               "typeString": "function () pure returns (bytes memory)"
              }
             },
             "id": 1896,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "31087:57:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes_memory_ptr",
              "typeString": "bytes memory"
             }
            }
           ],
           "expression": {
            "argumentTypes": [
             {
              "typeIdentifier": "t_bytes_memory_ptr",
              "typeString": "bytes memory"
             }
            ],
            "id": 1888,
            "name": "keccak256",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2456,
            "src": "31077:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
             "typeString": "function () pure returns (bytes32)"
            }
           },
           "id": 1897,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "kind": "functionCall",
           "lValueRequested": false,
           "names": [],
           "nodeType": "FunctionCall",
           "src": "31077:68:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "31056:89:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 1902,
         "nodeType": "IfStatement",
         "src": "31052:133:2",
         "trueBody": {
          "id": 1901,
          "nodeType": "Block",
          "src": "31148:37:2",
          "statements": [
           {
            "expression": {
             "argumentTypes": null,
             "hexValue": "66616c7365",
             "id": 1899,
             "isConstant": false,
             "isLValue": false,
             "isPure": true,
             "kind": "bool",
             "lValueRequested": false,
             "nodeType": "Literal",
             "src": "31169:5:2",
             "subdenomination": null,
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             },
             "value": "false"
            },
            "functionReturnParameters": 1870,
            "id": 1900,
            "nodeType": "Return",
            "src": "31162:12:2"
           }
          ]
         }
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [
           {
            "argumentTypes": null,
            "hexValue": "486973746f727920696e7075742070726f766964656420646964206e6f74206d61746368207468652065787065637465642068617368",
            "id": 1904,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "string",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "31202:56:2",
            "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": 1903,
           "name": "revert",
           "nodeType": "Identifier",
           "overloadedDeclarations": [
            2467,
            2468
           ],
           "referencedDeclaration": 2468,
           "src": "31195:6:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
            "typeString": "function (string memory) pure"
           }
          },
          "id": 1905,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "31195:64:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 1906,
         "nodeType": "ExpressionStatement",
         "src": "31195:64:2"
        }
       ]
      },
      "documentation": null,
      "id": 1908,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "_verifyHistoryInputOrRevert",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1867,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1858,
         "name": "last_history_hash",
         "nodeType": "VariableDeclaration",
         "scope": 1908,
         "src": "30763:25:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1857,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "30763:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1860,
         "name": "history_hash",
         "nodeType": "VariableDeclaration",
         "scope": 1908,
         "src": "30798:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1859,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "30798:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1862,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 1908,
         "src": "30820:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1861,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "30820:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1864,
         "name": "bond",
         "nodeType": "VariableDeclaration",
         "scope": 1908,
         "src": "30836:12:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1863,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "30836:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1866,
         "name": "addr",
         "nodeType": "VariableDeclaration",
         "scope": 1908,
         "src": "30850:12:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1865,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "30850:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "30753:115:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1870,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1869,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 1908,
         "src": "30896:4:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         },
         "typeName": {
          "id": 1868,
          "name": "bool",
          "nodeType": "ElementaryTypeName",
          "src": "30896:4:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "30895:6:2"
      },
      "scope": 2322,
      "src": "30717:549:2",
      "stateMutability": "pure",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 2034,
       "nodeType": "Block",
       "src": "31516:2168:2",
       "statements": [
        {
         "condition": {
          "argumentTypes": null,
          "id": 1931,
          "name": "is_commitment",
          "nodeType": "Identifier",
          "overloadedDeclarations": [],
          "referencedDeclaration": 1924,
          "src": "31715:13:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 1966,
         "nodeType": "IfStatement",
         "src": "31711:482:2",
         "trueBody": {
          "id": 1965,
          "nodeType": "Block",
          "src": "31730:463:2",
          "statements": [
           {
            "assignments": [
             1933
            ],
            "declarations": [
             {
              "constant": false,
              "id": 1933,
              "name": "commitment_id",
              "nodeType": "VariableDeclaration",
              "scope": 2035,
              "src": "31744:21:2",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              },
              "typeName": {
               "id": 1932,
               "name": "bytes32",
               "nodeType": "ElementaryTypeName",
               "src": "31744:7:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 1935,
            "initialValue": {
             "argumentTypes": null,
             "id": 1934,
             "name": "answer",
             "nodeType": "Identifier",
             "overloadedDeclarations": [],
             "referencedDeclaration": 1922,
             "src": "31768:6:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "31744:30:2"
           },
           {
            "condition": {
             "argumentTypes": null,
             "id": 1940,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "UnaryOperation",
             "operator": "!",
             "prefix": true,
             "src": "31889:39:2",
             "subExpression": {
              "argumentTypes": null,
              "expression": {
               "argumentTypes": null,
               "baseExpression": {
                "argumentTypes": null,
                "id": 1936,
                "name": "commitments",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 303,
                "src": "31890:11:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$273_storage_$",
                 "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                }
               },
               "id": 1938,
               "indexExpression": {
                "argumentTypes": null,
                "id": 1937,
                "name": "commitment_id",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 1933,
                "src": "31902:13:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "isConstant": false,
               "isLValue": true,
               "isPure": false,
               "lValueRequested": false,
               "nodeType": "IndexAccess",
               "src": "31890:26:2",
               "typeDescriptions": {
                "typeIdentifier": "t_struct$_Commitment_$273_storage",
                "typeString": "struct RealitioERC20.Commitment storage ref"
               }
              },
              "id": 1939,
              "isConstant": false,
              "isLValue": true,
              "isPure": false,
              "lValueRequested": false,
              "memberName": "is_revealed",
              "nodeType": "MemberAccess",
              "referencedDeclaration": 270,
              "src": "31890:38:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bool",
               "typeString": "bool"
              }
             },
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "falseBody": {
             "id": 1963,
             "nodeType": "Block",
             "src": "32048:135:2",
             "statements": [
              {
               "expression": {
                "argumentTypes": null,
                "id": 1956,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "id": 1951,
                 "name": "answer",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1922,
                 "src": "32066:6:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "expression": {
                  "argumentTypes": null,
                  "baseExpression": {
                   "argumentTypes": null,
                   "id": 1952,
                   "name": "commitments",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 303,
                   "src": "32075:11:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$273_storage_$",
                    "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                   }
                  },
                  "id": 1954,
                  "indexExpression": {
                   "argumentTypes": null,
                   "id": 1953,
                   "name": "commitment_id",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 1933,
                   "src": "32087:13:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                   }
                  },
                  "isConstant": false,
                  "isLValue": true,
                  "isPure": false,
                  "lValueRequested": false,
                  "nodeType": "IndexAccess",
                  "src": "32075:26:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_struct$_Commitment_$273_storage",
                   "typeString": "struct RealitioERC20.Commitment storage ref"
                  }
                 },
                 "id": 1955,
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "memberName": "revealed_answer",
                 "nodeType": "MemberAccess",
                 "referencedDeclaration": 272,
                 "src": "32075:42:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "src": "32066:51:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 1957,
               "nodeType": "ExpressionStatement",
               "src": "32066:51:2"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 1961,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "UnaryOperation",
                "operator": "delete",
                "prefix": true,
                "src": "32135:33:2",
                "subExpression": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 1958,
                  "name": "commitments",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 303,
                  "src": "32142:11:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$273_storage_$",
                   "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                  }
                 },
                 "id": 1960,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 1959,
                  "name": "commitment_id",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1933,
                  "src": "32154:13:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_bytes32",
                   "typeString": "bytes32"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "32142:26:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Commitment_$273_storage",
                  "typeString": "struct RealitioERC20.Commitment storage ref"
                 }
                },
                "typeDescriptions": {
                 "typeIdentifier": "t_tuple$__$",
                 "typeString": "tuple()"
                }
               },
               "id": 1962,
               "nodeType": "ExpressionStatement",
               "src": "32135:33:2"
              }
             ]
            },
            "id": 1964,
            "nodeType": "IfStatement",
            "src": "31885:298:2",
            "trueBody": {
             "id": 1950,
             "nodeType": "Block",
             "src": "31930:112:2",
             "statements": [
              {
               "expression": {
                "argumentTypes": null,
                "id": 1944,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "UnaryOperation",
                "operator": "delete",
                "prefix": true,
                "src": "31948:33:2",
                "subExpression": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 1941,
                  "name": "commitments",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 303,
                  "src": "31955:11:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Commitment_$273_storage_$",
                   "typeString": "mapping(bytes32 => struct RealitioERC20.Commitment storage ref)"
                  }
                 },
                 "id": 1943,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 1942,
                  "name": "commitment_id",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1933,
                  "src": "31967:13:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_bytes32",
                   "typeString": "bytes32"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "31955:26:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Commitment_$273_storage",
                  "typeString": "struct RealitioERC20.Commitment storage ref"
                 }
                },
                "typeDescriptions": {
                 "typeIdentifier": "t_tuple$__$",
                 "typeString": "tuple()"
                }
               },
               "id": 1945,
               "nodeType": "ExpressionStatement",
               "src": "31948:33:2"
              },
              {
               "expression": {
                "argumentTypes": null,
                "components": [
                 {
                  "argumentTypes": null,
                  "id": 1946,
                  "name": "queued_funds",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1914,
                  "src": "32007:12:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 {
                  "argumentTypes": null,
                  "id": 1947,
                  "name": "payee",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1916,
                  "src": "32021:5:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_address",
                   "typeString": "address"
                  }
                 }
                ],
                "id": 1948,
                "isConstant": false,
                "isInlineArray": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "TupleExpression",
                "src": "32006:21:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
                 "typeString": "tuple(uint256,address)"
                }
               },
               "functionReturnParameters": 1930,
               "id": 1949,
               "nodeType": "Return",
               "src": "31999:28:2"
              }
             ]
            }
           }
          ]
         }
        },
        {
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          },
          "id": 1969,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 1967,
           "name": "answer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1922,
           "src": "32207:6:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "==",
          "rightExpression": {
           "argumentTypes": null,
           "id": 1968,
           "name": "best_answer",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 1912,
           "src": "32217:11:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "src": "32207:21:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "falseBody": null,
         "id": 2029,
         "nodeType": "IfStatement",
         "src": "32203:1435:2",
         "trueBody": {
          "id": 2028,
          "nodeType": "Block",
          "src": "32230:1408:2",
          "statements": [
           {
            "condition": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_address",
              "typeString": "address"
             },
             "id": 1972,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 1970,
              "name": "payee",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1916,
              "src": "32249:5:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "==",
             "rightExpression": {
              "argumentTypes": null,
              "id": 1971,
              "name": "NULL_ADDRESS",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 135,
              "src": "32258:12:2",
              "typeDescriptions": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              }
             },
             "src": "32249:21:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "falseBody": {
             "condition": {
              "argumentTypes": null,
              "commonType": {
               "typeIdentifier": "t_address",
               "typeString": "address"
              },
              "id": 1997,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "leftExpression": {
               "argumentTypes": null,
               "id": 1995,
               "name": "addr",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1918,
               "src": "32588:4:2",
               "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
               }
              },
              "nodeType": "BinaryOperation",
              "operator": "!=",
              "rightExpression": {
               "argumentTypes": null,
               "id": 1996,
               "name": "payee",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 1916,
               "src": "32596:5:2",
               "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
               }
              },
              "src": "32588:13:2",
              "typeDescriptions": {
               "typeIdentifier": "t_bool",
               "typeString": "bool"
              }
             },
             "falseBody": null,
             "id": 2026,
             "nodeType": "IfStatement",
             "src": "32584:1043:2",
             "trueBody": {
              "id": 2025,
              "nodeType": "Block",
              "src": "32603:1024:2",
              "statements": [
               {
                "assignments": [
                 1999
                ],
                "declarations": [
                 {
                  "constant": false,
                  "id": 1999,
                  "name": "answer_takeover_fee",
                  "nodeType": "VariableDeclaration",
                  "scope": 2035,
                  "src": "33222:27:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  },
                  "typeName": {
                   "id": 1998,
                   "name": "uint256",
                   "nodeType": "ElementaryTypeName",
                   "src": "33222:7:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  },
                  "value": null,
                  "visibility": "internal"
                 }
                ],
                "id": 2007,
                "initialValue": {
                 "argumentTypes": null,
                 "condition": {
                  "argumentTypes": null,
                  "components": [
                   {
                    "argumentTypes": null,
                    "commonType": {
                     "typeIdentifier": "t_uint256",
                     "typeString": "uint256"
                    },
                    "id": 2002,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                     "argumentTypes": null,
                     "id": 2000,
                     "name": "queued_funds",
                     "nodeType": "Identifier",
                     "overloadedDeclarations": [],
                     "referencedDeclaration": 1914,
                     "src": "33253:12:2",
                     "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                     }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                     "argumentTypes": null,
                     "id": 2001,
                     "name": "bond",
                     "nodeType": "Identifier",
                     "overloadedDeclarations": [],
                     "referencedDeclaration": 1920,
                     "src": "33269:4:2",
                     "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                     }
                    },
                    "src": "33253:20:2",
                    "typeDescriptions": {
                     "typeIdentifier": "t_bool",
                     "typeString": "bool"
                    }
                   }
                  ],
                  "id": 2003,
                  "isConstant": false,
                  "isInlineArray": false,
                  "isLValue": false,
                  "isPure": false,
                  "lValueRequested": false,
                  "nodeType": "TupleExpression",
                  "src": "33252:22:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_bool",
                   "typeString": "bool"
                  }
                 },
                 "falseExpression": {
                  "argumentTypes": null,
                  "id": 2005,
                  "name": "queued_funds",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1914,
                  "src": "33284:12:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "id": 2006,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": false,
                 "lValueRequested": false,
                 "nodeType": "Conditional",
                 "src": "33252:44:2",
                 "trueExpression": {
                  "argumentTypes": null,
                  "id": 2004,
                  "name": "bond",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1920,
                  "src": "33277:4:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "nodeType": "VariableDeclarationStatement",
                "src": "33222:74:2"
               },
               {
                "expression": {
                 "argumentTypes": null,
                 "arguments": [
                  {
                   "argumentTypes": null,
                   "id": 2009,
                   "name": "question_id",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 1910,
                   "src": "33389:11:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                   }
                  },
                  {
                   "argumentTypes": null,
                   "id": 2010,
                   "name": "payee",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 1916,
                   "src": "33402:5:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                   }
                  },
                  {
                   "argumentTypes": null,
                   "arguments": [
                    {
                     "argumentTypes": null,
                     "id": 2013,
                     "name": "answer_takeover_fee",
                     "nodeType": "Identifier",
                     "overloadedDeclarations": [],
                     "referencedDeclaration": 1999,
                     "src": "33426:19:2",
                     "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                     }
                    }
                   ],
                   "expression": {
                    "argumentTypes": [
                     {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                     }
                    ],
                    "expression": {
                     "argumentTypes": null,
                     "id": 2011,
                     "name": "queued_funds",
                     "nodeType": "Identifier",
                     "overloadedDeclarations": [],
                     "referencedDeclaration": 1914,
                     "src": "33409:12:2",
                     "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                     }
                    },
                    "id": 2012,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "sub",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 2395,
                    "src": "33409:16:2",
                    "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": 2014,
                   "isConstant": false,
                   "isLValue": false,
                   "isPure": false,
                   "kind": "functionCall",
                   "lValueRequested": false,
                   "names": [],
                   "nodeType": "FunctionCall",
                   "src": "33409:37:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  }
                 ],
                 "expression": {
                  "argumentTypes": [
                   {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                   },
                   {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                   },
                   {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  ],
                  "id": 2008,
                  "name": "_payPayee",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1856,
                  "src": "33379:9:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                   "typeString": "function (bytes32,address,uint256)"
                  }
                 },
                 "id": 2015,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": false,
                 "kind": "functionCall",
                 "lValueRequested": false,
                 "names": [],
                 "nodeType": "FunctionCall",
                 "src": "33379:68:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_tuple$__$",
                  "typeString": "tuple()"
                 }
                },
                "id": 2016,
                "nodeType": "ExpressionStatement",
                "src": "33379:68:2"
               },
               {
                "expression": {
                 "argumentTypes": null,
                 "id": 2019,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": false,
                 "lValueRequested": false,
                 "leftHandSide": {
                  "argumentTypes": null,
                  "id": 2017,
                  "name": "payee",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1916,
                  "src": "33547:5:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_address",
                   "typeString": "address"
                  }
                 },
                 "nodeType": "Assignment",
                 "operator": "=",
                 "rightHandSide": {
                  "argumentTypes": null,
                  "id": 2018,
                  "name": "addr",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1918,
                  "src": "33555:4:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_address",
                   "typeString": "address"
                  }
                 },
                 "src": "33547:12:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                 }
                },
                "id": 2020,
                "nodeType": "ExpressionStatement",
                "src": "33547:12:2"
               },
               {
                "expression": {
                 "argumentTypes": null,
                 "id": 2023,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": false,
                 "lValueRequested": false,
                 "leftHandSide": {
                  "argumentTypes": null,
                  "id": 2021,
                  "name": "queued_funds",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1914,
                  "src": "33577:12:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "nodeType": "Assignment",
                 "operator": "=",
                 "rightHandSide": {
                  "argumentTypes": null,
                  "id": 2022,
                  "name": "answer_takeover_fee",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1999,
                  "src": "33592:19:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "src": "33577:34:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "id": 2024,
                "nodeType": "ExpressionStatement",
                "src": "33577:34:2"
               }
              ]
             }
            },
            "id": 2027,
            "nodeType": "IfStatement",
            "src": "32245:1382:2",
            "trueBody": {
             "id": 1994,
             "nodeType": "Block",
             "src": "32272:306:2",
             "statements": [
              {
               "expression": {
                "argumentTypes": null,
                "id": 1975,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "id": 1973,
                 "name": "payee",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1916,
                 "src": "32419:5:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "id": 1974,
                 "name": "addr",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1918,
                 "src": "32427:4:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                 }
                },
                "src": "32419:12:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               },
               "id": 1976,
               "nodeType": "ExpressionStatement",
               "src": "32419:12:2"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 1985,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "id": 1977,
                 "name": "queued_funds",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 1914,
                 "src": "32449:12:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "arguments": [
                  {
                   "argumentTypes": null,
                   "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                     "argumentTypes": null,
                     "id": 1980,
                     "name": "questions",
                     "nodeType": "Identifier",
                     "overloadedDeclarations": [],
                     "referencedDeclaration": 295,
                     "src": "32481:9:2",
                     "typeDescriptions": {
                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                      "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                     }
                    },
                    "id": 1982,
                    "indexExpression": {
                     "argumentTypes": null,
                     "id": 1981,
                     "name": "question_id",
                     "nodeType": "Identifier",
                     "overloadedDeclarations": [],
                     "referencedDeclaration": 1910,
                     "src": "32491:11:2",
                     "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                     }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "32481:22:2",
                    "typeDescriptions": {
                     "typeIdentifier": "t_struct$_Question_$266_storage",
                     "typeString": "struct RealitioERC20.Question storage ref"
                    }
                   },
                   "id": 1983,
                   "isConstant": false,
                   "isLValue": true,
                   "isPure": false,
                   "lValueRequested": false,
                   "memberName": "bounty",
                   "nodeType": "MemberAccess",
                   "referencedDeclaration": 259,
                   "src": "32481:29:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  }
                 ],
                 "expression": {
                  "argumentTypes": [
                   {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  ],
                  "expression": {
                   "argumentTypes": null,
                   "id": 1978,
                   "name": "queued_funds",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 1914,
                   "src": "32464:12:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                   }
                  },
                  "id": 1979,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": false,
                  "lValueRequested": false,
                  "memberName": "add",
                  "nodeType": "MemberAccess",
                  "referencedDeclaration": 2419,
                  "src": "32464:16:2",
                  "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": 1984,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": false,
                 "kind": "functionCall",
                 "lValueRequested": false,
                 "names": [],
                 "nodeType": "FunctionCall",
                 "src": "32464:47:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "src": "32449:62:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 1986,
               "nodeType": "ExpressionStatement",
               "src": "32449:62:2"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 1992,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "expression": {
                  "argumentTypes": null,
                  "baseExpression": {
                   "argumentTypes": null,
                   "id": 1987,
                   "name": "questions",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 295,
                   "src": "32529:9:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
                    "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
                   }
                  },
                  "id": 1989,
                  "indexExpression": {
                   "argumentTypes": null,
                   "id": 1988,
                   "name": "question_id",
                   "nodeType": "Identifier",
                   "overloadedDeclarations": [],
                   "referencedDeclaration": 1910,
                   "src": "32539:11:2",
                   "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                   }
                  },
                  "isConstant": false,
                  "isLValue": true,
                  "isPure": false,
                  "lValueRequested": false,
                  "nodeType": "IndexAccess",
                  "src": "32529:22:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_struct$_Question_$266_storage",
                   "typeString": "struct RealitioERC20.Question storage ref"
                  }
                 },
                 "id": 1990,
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "memberName": "bounty",
                 "nodeType": "MemberAccess",
                 "referencedDeclaration": 259,
                 "src": "32529:29:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "hexValue": "30",
                 "id": 1991,
                 "isConstant": false,
                 "isLValue": false,
                 "isPure": true,
                 "kind": "number",
                 "lValueRequested": false,
                 "nodeType": "Literal",
                 "src": "32561:1:2",
                 "subdenomination": null,
                 "typeDescriptions": {
                  "typeIdentifier": "t_rational_0_by_1",
                  "typeString": "int_const 0"
                 },
                 "value": "0"
                },
                "src": "32529:33:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 1993,
               "nodeType": "ExpressionStatement",
               "src": "32529:33:2"
              }
             ]
            }
           }
          ]
         }
        },
        {
         "expression": {
          "argumentTypes": null,
          "components": [
           {
            "argumentTypes": null,
            "id": 2030,
            "name": "queued_funds",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1914,
            "src": "33656:12:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           {
            "argumentTypes": null,
            "id": 2031,
            "name": "payee",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 1916,
            "src": "33670:5:2",
            "typeDescriptions": {
             "typeIdentifier": "t_address",
             "typeString": "address"
            }
           }
          ],
          "id": 2032,
          "isConstant": false,
          "isInlineArray": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "nodeType": "TupleExpression",
          "src": "33655:21:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$",
           "typeString": "tuple(uint256,address)"
          }
         },
         "functionReturnParameters": 1930,
         "id": 2033,
         "nodeType": "Return",
         "src": "33648:28:2"
        }
       ]
      },
      "documentation": null,
      "id": 2035,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [],
      "name": "_processHistoryItem",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 1925,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1910,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2035,
         "src": "31310:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1909,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "31310:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1912,
         "name": "best_answer",
         "nodeType": "VariableDeclaration",
         "scope": 2035,
         "src": "31331:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1911,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "31331:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1914,
         "name": "queued_funds",
         "nodeType": "VariableDeclaration",
         "scope": 2035,
         "src": "31361:20:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1913,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "31361:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1916,
         "name": "payee",
         "nodeType": "VariableDeclaration",
         "scope": 2035,
         "src": "31383:13:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1915,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "31383:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1918,
         "name": "addr",
         "nodeType": "VariableDeclaration",
         "scope": 2035,
         "src": "31407:12:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1917,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "31407:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1920,
         "name": "bond",
         "nodeType": "VariableDeclaration",
         "scope": 2035,
         "src": "31421:12:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1919,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "31421:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1922,
         "name": "answer",
         "nodeType": "VariableDeclaration",
         "scope": 2035,
         "src": "31435:14:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 1921,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "31435:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1924,
         "name": "is_commitment",
         "nodeType": "VariableDeclaration",
         "scope": 2035,
         "src": "31451:18:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         },
         "typeName": {
          "id": 1923,
          "name": "bool",
          "nodeType": "ElementaryTypeName",
          "src": "31451:4:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "31300:175:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 1930,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 1927,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2035,
         "src": "31498:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 1926,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "31498:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 1929,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2035,
         "src": "31507:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 1928,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "31507:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "31497:18:2"
      },
      "scope": 2322,
      "src": "31272:2412:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "internal"
     },
     {
      "body": {
       "id": 2190,
       "nodeType": "Block",
       "src": "34909:723:2",
       "statements": [
        {
         "assignments": [],
         "declarations": [
          {
           "constant": false,
           "id": 2059,
           "name": "qi",
           "nodeType": "VariableDeclaration",
           "scope": 2191,
           "src": "34928:10:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 2058,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "34928:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 2060,
         "initialValue": null,
         "nodeType": "VariableDeclarationStatement",
         "src": "34928:10:2"
        },
        {
         "assignments": [],
         "declarations": [
          {
           "constant": false,
           "id": 2062,
           "name": "i",
           "nodeType": "VariableDeclaration",
           "scope": 2191,
           "src": "34948:9:2",
           "stateVariable": false,
           "storageLocation": "default",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           },
           "typeName": {
            "id": 2061,
            "name": "uint256",
            "nodeType": "ElementaryTypeName",
            "src": "34948:7:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "value": null,
           "visibility": "internal"
          }
         ],
         "id": 2063,
         "initialValue": null,
         "nodeType": "VariableDeclarationStatement",
         "src": "34948:9:2"
        },
        {
         "body": {
          "id": 2185,
          "nodeType": "Block",
          "src": "35012:594:2",
          "statements": [
           {
            "assignments": [
             2076
            ],
            "declarations": [
             {
              "constant": false,
              "id": 2076,
              "name": "qid",
              "nodeType": "VariableDeclaration",
              "scope": 2191,
              "src": "35026:11:2",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
               "typeIdentifier": "t_bytes32",
               "typeString": "bytes32"
              },
              "typeName": {
               "id": 2075,
               "name": "bytes32",
               "nodeType": "ElementaryTypeName",
               "src": "35026:7:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2080,
            "initialValue": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 2077,
              "name": "question_ids",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2038,
              "src": "35040:12:2",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
               "typeString": "bytes32[] memory"
              }
             },
             "id": 2079,
             "indexExpression": {
              "argumentTypes": null,
              "id": 2078,
              "name": "qi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2059,
              "src": "35053:2:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "35040:16:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "35026:30:2"
           },
           {
            "assignments": [
             2082
            ],
            "declarations": [
             {
              "constant": false,
              "id": 2082,
              "name": "ln",
              "nodeType": "VariableDeclaration",
              "scope": 2191,
              "src": "35070:10:2",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              },
              "typeName": {
               "id": 2081,
               "name": "uint256",
               "nodeType": "ElementaryTypeName",
               "src": "35070:7:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2086,
            "initialValue": {
             "argumentTypes": null,
             "baseExpression": {
              "argumentTypes": null,
              "id": 2083,
              "name": "lengths",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2041,
              "src": "35083:7:2",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
               "typeString": "uint256[] memory"
              }
             },
             "id": 2085,
             "indexExpression": {
              "argumentTypes": null,
              "id": 2084,
              "name": "qi",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2059,
              "src": "35091:2:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "isConstant": false,
             "isLValue": true,
             "isPure": false,
             "lValueRequested": false,
             "nodeType": "IndexAccess",
             "src": "35083:11:2",
             "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "35070:24:2"
           },
           {
            "assignments": [
             2090
            ],
            "declarations": [
             {
              "constant": false,
              "id": 2090,
              "name": "hh",
              "nodeType": "VariableDeclaration",
              "scope": 2191,
              "src": "35108:19:2",
              "stateVariable": false,
              "storageLocation": "memory",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
               "typeString": "bytes32[]"
              },
              "typeName": {
               "baseType": {
                "id": 2088,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "35108:7:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 2089,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "35108:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                "typeString": "bytes32[]"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2096,
            "initialValue": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 2094,
               "name": "ln",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2082,
               "src": "35144:2:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 2093,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "NewExpression",
              "src": "35130:13:2",
              "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": 2091,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "35134:7:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 2092,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "35134:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                "typeString": "bytes32[]"
               }
              }
             },
             "id": 2095,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "35130:17:2",
             "typeDescriptions": {
              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
              "typeString": "bytes32[] memory"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "35108:39:2"
           },
           {
            "assignments": [
             2100
            ],
            "declarations": [
             {
              "constant": false,
              "id": 2100,
              "name": "ad",
              "nodeType": "VariableDeclaration",
              "scope": 2191,
              "src": "35161:19:2",
              "stateVariable": false,
              "storageLocation": "memory",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
               "typeString": "address[]"
              },
              "typeName": {
               "baseType": {
                "id": 2098,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "35161:7:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               },
               "id": 2099,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "35161:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                "typeString": "address[]"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2106,
            "initialValue": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 2104,
               "name": "ln",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2082,
               "src": "35197:2:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 2103,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "NewExpression",
              "src": "35183:13:2",
              "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": 2101,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "35187:7:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               },
               "id": 2102,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "35187:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                "typeString": "address[]"
               }
              }
             },
             "id": 2105,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "35183:17:2",
             "typeDescriptions": {
              "typeIdentifier": "t_array$_t_address_$dyn_memory",
              "typeString": "address[] memory"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "35161:39:2"
           },
           {
            "assignments": [
             2110
            ],
            "declarations": [
             {
              "constant": false,
              "id": 2110,
              "name": "bo",
              "nodeType": "VariableDeclaration",
              "scope": 2191,
              "src": "35214:19:2",
              "stateVariable": false,
              "storageLocation": "memory",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
               "typeString": "uint256[]"
              },
              "typeName": {
               "baseType": {
                "id": 2108,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "35214:7:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 2109,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "35214:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                "typeString": "uint256[]"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2116,
            "initialValue": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 2114,
               "name": "ln",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2082,
               "src": "35250:2:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 2113,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "NewExpression",
              "src": "35236:13:2",
              "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": 2111,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "35240:7:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 2112,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "35240:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                "typeString": "uint256[]"
               }
              }
             },
             "id": 2115,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "35236:17:2",
             "typeDescriptions": {
              "typeIdentifier": "t_array$_t_uint256_$dyn_memory",
              "typeString": "uint256[] memory"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "35214:39:2"
           },
           {
            "assignments": [
             2120
            ],
            "declarations": [
             {
              "constant": false,
              "id": 2120,
              "name": "an",
              "nodeType": "VariableDeclaration",
              "scope": 2191,
              "src": "35267:19:2",
              "stateVariable": false,
              "storageLocation": "memory",
              "typeDescriptions": {
               "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
               "typeString": "bytes32[]"
              },
              "typeName": {
               "baseType": {
                "id": 2118,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "35267:7:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 2119,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "35267:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                "typeString": "bytes32[]"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2126,
            "initialValue": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 2124,
               "name": "ln",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2082,
               "src": "35303:2:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              }
             ],
             "expression": {
              "argumentTypes": [
               {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              ],
              "id": 2123,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "NewExpression",
              "src": "35289:13:2",
              "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": 2121,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "35293:7:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 2122,
               "length": null,
               "nodeType": "ArrayTypeName",
               "src": "35293:9:2",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                "typeString": "bytes32[]"
               }
              }
             },
             "id": 2125,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "35289:17:2",
             "typeDescriptions": {
              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory",
              "typeString": "bytes32[] memory"
             }
            },
            "nodeType": "VariableDeclarationStatement",
            "src": "35267:39:2"
           },
           {
            "assignments": [],
            "declarations": [
             {
              "constant": false,
              "id": 2128,
              "name": "j",
              "nodeType": "VariableDeclaration",
              "scope": 2191,
              "src": "35320:9:2",
              "stateVariable": false,
              "storageLocation": "default",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              },
              "typeName": {
               "id": 2127,
               "name": "uint256",
               "nodeType": "ElementaryTypeName",
               "src": "35320:7:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "value": null,
              "visibility": "internal"
             }
            ],
            "id": 2129,
            "initialValue": null,
            "nodeType": "VariableDeclarationStatement",
            "src": "35320:9:2"
           },
           {
            "body": {
             "id": 2175,
             "nodeType": "Block",
             "src": "35368:180:2",
             "statements": [
              {
               "expression": {
                "argumentTypes": null,
                "id": 2146,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2140,
                  "name": "hh",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2090,
                  "src": "35386:2:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                   "typeString": "bytes32[] memory"
                  }
                 },
                 "id": 2142,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2141,
                  "name": "j",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2128,
                  "src": "35389:1:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "35386:5:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2143,
                  "name": "hist_hashes",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2044,
                  "src": "35394:11:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                   "typeString": "bytes32[] memory"
                  }
                 },
                 "id": 2145,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2144,
                  "name": "i",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2062,
                  "src": "35406:1:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "nodeType": "IndexAccess",
                 "src": "35394:14:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "src": "35386:22:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 2147,
               "nodeType": "ExpressionStatement",
               "src": "35386:22:2"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 2154,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2148,
                  "name": "ad",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2100,
                  "src": "35426:2:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                   "typeString": "address[] memory"
                  }
                 },
                 "id": 2150,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2149,
                  "name": "j",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2128,
                  "src": "35429:1:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "35426:5:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2151,
                  "name": "addrs",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2047,
                  "src": "35434:5:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                   "typeString": "address[] memory"
                  }
                 },
                 "id": 2153,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2152,
                  "name": "i",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2062,
                  "src": "35440:1:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "nodeType": "IndexAccess",
                 "src": "35434:8:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                 }
                },
                "src": "35426:16:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_address",
                 "typeString": "address"
                }
               },
               "id": 2155,
               "nodeType": "ExpressionStatement",
               "src": "35426:16:2"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 2162,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2156,
                  "name": "bo",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2110,
                  "src": "35460:2:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                   "typeString": "uint256[] memory"
                  }
                 },
                 "id": 2158,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2157,
                  "name": "j",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2128,
                  "src": "35463:1:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "35460:5:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2159,
                  "name": "bonds",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2050,
                  "src": "35468:5:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                   "typeString": "uint256[] memory"
                  }
                 },
                 "id": 2161,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2160,
                  "name": "i",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2062,
                  "src": "35474:1:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "nodeType": "IndexAccess",
                 "src": "35468:8:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "src": "35460:16:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 2163,
               "nodeType": "ExpressionStatement",
               "src": "35460:16:2"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 2170,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "leftHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2164,
                  "name": "an",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2120,
                  "src": "35494:2:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                   "typeString": "bytes32[] memory"
                  }
                 },
                 "id": 2166,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2165,
                  "name": "j",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2128,
                  "src": "35497:1:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": true,
                 "nodeType": "IndexAccess",
                 "src": "35494:5:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "nodeType": "Assignment",
                "operator": "=",
                "rightHandSide": {
                 "argumentTypes": null,
                 "baseExpression": {
                  "argumentTypes": null,
                  "id": 2167,
                  "name": "answers",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2053,
                  "src": "35502:7:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                   "typeString": "bytes32[] memory"
                  }
                 },
                 "id": 2169,
                 "indexExpression": {
                  "argumentTypes": null,
                  "id": 2168,
                  "name": "i",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 2062,
                  "src": "35510:1:2",
                  "typeDescriptions": {
                   "typeIdentifier": "t_uint256",
                   "typeString": "uint256"
                  }
                 },
                 "isConstant": false,
                 "isLValue": true,
                 "isPure": false,
                 "lValueRequested": false,
                 "nodeType": "IndexAccess",
                 "src": "35502:10:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                 }
                },
                "src": "35494:18:2",
                "typeDescriptions": {
                 "typeIdentifier": "t_bytes32",
                 "typeString": "bytes32"
                }
               },
               "id": 2171,
               "nodeType": "ExpressionStatement",
               "src": "35494:18:2"
              },
              {
               "expression": {
                "argumentTypes": null,
                "id": 2173,
                "isConstant": false,
                "isLValue": false,
                "isPure": false,
                "lValueRequested": false,
                "nodeType": "UnaryOperation",
                "operator": "++",
                "prefix": false,
                "src": "35530:3:2",
                "subExpression": {
                 "argumentTypes": null,
                 "id": 2172,
                 "name": "i",
                 "nodeType": "Identifier",
                 "overloadedDeclarations": [],
                 "referencedDeclaration": 2062,
                 "src": "35530:1:2",
                 "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                 }
                },
                "typeDescriptions": {
                 "typeIdentifier": "t_uint256",
                 "typeString": "uint256"
                }
               },
               "id": 2174,
               "nodeType": "ExpressionStatement",
               "src": "35530:3:2"
              }
             ]
            },
            "condition": {
             "argumentTypes": null,
             "commonType": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
             },
             "id": 2136,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "lValueRequested": false,
             "leftExpression": {
              "argumentTypes": null,
              "id": 2134,
              "name": "j",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2128,
              "src": "35355:1:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "nodeType": "BinaryOperation",
             "operator": "<",
             "rightExpression": {
              "argumentTypes": null,
              "id": 2135,
              "name": "ln",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2082,
              "src": "35359:2:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "src": "35355:6:2",
             "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
             }
            },
            "id": 2176,
            "initializationExpression": {
             "expression": {
              "argumentTypes": null,
              "id": 2132,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "leftHandSide": {
               "argumentTypes": null,
               "id": 2130,
               "name": "j",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2128,
               "src": "35348:1:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "nodeType": "Assignment",
              "operator": "=",
              "rightHandSide": {
               "argumentTypes": null,
               "hexValue": "30",
               "id": 2131,
               "isConstant": false,
               "isLValue": false,
               "isPure": true,
               "kind": "number",
               "lValueRequested": false,
               "nodeType": "Literal",
               "src": "35352:1:2",
               "subdenomination": null,
               "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
               },
               "value": "0"
              },
              "src": "35348:5:2",
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "id": 2133,
             "nodeType": "ExpressionStatement",
             "src": "35348:5:2"
            },
            "loopExpression": {
             "expression": {
              "argumentTypes": null,
              "id": 2138,
              "isConstant": false,
              "isLValue": false,
              "isPure": false,
              "lValueRequested": false,
              "nodeType": "UnaryOperation",
              "operator": "++",
              "prefix": false,
              "src": "35363:3:2",
              "subExpression": {
               "argumentTypes": null,
               "id": 2137,
               "name": "j",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2128,
               "src": "35363:1:2",
               "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
               }
              },
              "typeDescriptions": {
               "typeIdentifier": "t_uint256",
               "typeString": "uint256"
              }
             },
             "id": 2139,
             "nodeType": "ExpressionStatement",
             "src": "35363:3:2"
            },
            "nodeType": "ForStatement",
            "src": "35343:205:2"
           },
           {
            "expression": {
             "argumentTypes": null,
             "arguments": [
              {
               "argumentTypes": null,
               "id": 2178,
               "name": "qid",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2076,
               "src": "35575:3:2",
               "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
               }
              },
              {
               "argumentTypes": null,
               "id": 2179,
               "name": "hh",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2090,
               "src": "35580:2:2",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                "typeString": "bytes32[] memory"
               }
              },
              {
               "argumentTypes": null,
               "id": 2180,
               "name": "ad",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2100,
               "src": "35584:2:2",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                "typeString": "address[] memory"
               }
              },
              {
               "argumentTypes": null,
               "id": 2181,
               "name": "bo",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2110,
               "src": "35588:2:2",
               "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                "typeString": "uint256[] memory"
               }
              },
              {
               "argumentTypes": null,
               "id": 2182,
               "name": "an",
               "nodeType": "Identifier",
               "overloadedDeclarations": [],
               "referencedDeclaration": 2120,
               "src": "35592:2:2",
               "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": 2177,
              "name": "claimWinnings",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1829,
              "src": "35561:13:2",
              "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": 2183,
             "isConstant": false,
             "isLValue": false,
             "isPure": false,
             "kind": "functionCall",
             "lValueRequested": false,
             "names": [],
             "nodeType": "FunctionCall",
             "src": "35561:34:2",
             "typeDescriptions": {
              "typeIdentifier": "t_tuple$__$",
              "typeString": "tuple()"
             }
            },
            "id": 2184,
            "nodeType": "ExpressionStatement",
            "src": "35561:34:2"
           }
          ]
         },
         "condition": {
          "argumentTypes": null,
          "commonType": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          },
          "id": 2071,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "lValueRequested": false,
          "leftExpression": {
           "argumentTypes": null,
           "id": 2068,
           "name": "qi",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 2059,
           "src": "34980:2:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "nodeType": "BinaryOperation",
          "operator": "<",
          "rightExpression": {
           "argumentTypes": null,
           "expression": {
            "argumentTypes": null,
            "id": 2069,
            "name": "question_ids",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2038,
            "src": "34985:12:2",
            "typeDescriptions": {
             "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
             "typeString": "bytes32[] memory"
            }
           },
           "id": 2070,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "memberName": "length",
           "nodeType": "MemberAccess",
           "referencedDeclaration": null,
           "src": "34985:19:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "src": "34980:24:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "id": 2186,
         "initializationExpression": {
          "expression": {
           "argumentTypes": null,
           "id": 2066,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "leftHandSide": {
            "argumentTypes": null,
            "id": 2064,
            "name": "qi",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2059,
            "src": "34972:2:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "nodeType": "Assignment",
           "operator": "=",
           "rightHandSide": {
            "argumentTypes": null,
            "hexValue": "30",
            "id": 2065,
            "isConstant": false,
            "isLValue": false,
            "isPure": true,
            "kind": "number",
            "lValueRequested": false,
            "nodeType": "Literal",
            "src": "34977:1:2",
            "subdenomination": null,
            "typeDescriptions": {
             "typeIdentifier": "t_rational_0_by_1",
             "typeString": "int_const 0"
            },
            "value": "0"
           },
           "src": "34972:6:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 2067,
          "nodeType": "ExpressionStatement",
          "src": "34972:6:2"
         },
         "loopExpression": {
          "expression": {
           "argumentTypes": null,
           "id": 2073,
           "isConstant": false,
           "isLValue": false,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "UnaryOperation",
           "operator": "++",
           "prefix": false,
           "src": "35006:4:2",
           "subExpression": {
            "argumentTypes": null,
            "id": 2072,
            "name": "qi",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2059,
            "src": "35006:2:2",
            "typeDescriptions": {
             "typeIdentifier": "t_uint256",
             "typeString": "uint256"
            }
           },
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 2074,
          "nodeType": "ExpressionStatement",
          "src": "35006:4:2"
         },
         "nodeType": "ForStatement",
         "src": "34967:639:2"
        },
        {
         "expression": {
          "argumentTypes": null,
          "arguments": [],
          "expression": {
           "argumentTypes": [],
           "id": 2187,
           "name": "withdraw",
           "nodeType": "Identifier",
           "overloadedDeclarations": [],
           "referencedDeclaration": 47,
           "src": "35615:8:2",
           "typeDescriptions": {
            "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
            "typeString": "function ()"
           }
          },
          "id": 2188,
          "isConstant": false,
          "isLValue": false,
          "isPure": false,
          "kind": "functionCall",
          "lValueRequested": false,
          "names": [],
          "nodeType": "FunctionCall",
          "src": "35615:10:2",
          "typeDescriptions": {
           "typeIdentifier": "t_tuple$__$",
           "typeString": "tuple()"
          }
         },
         "id": 2189,
         "nodeType": "ExpressionStatement",
         "src": "35615:10:2"
        }
       ]
      },
      "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": 2191,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": false,
      "modifiers": [
       {
        "arguments": [],
        "id": 2056,
        "modifierName": {
         "argumentTypes": null,
         "id": 2055,
         "name": "stateAny",
         "nodeType": "Identifier",
         "overloadedDeclarations": [],
         "referencedDeclaration": 328,
         "src": "34821:8:2",
         "typeDescriptions": {
          "typeIdentifier": "t_modifier$__$",
          "typeString": "modifier ()"
         }
        },
        "nodeType": "ModifierInvocation",
        "src": "34821:10:2"
       }
      ],
      "name": "claimMultipleAndWithdrawBalance",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2054,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2038,
         "name": "question_ids",
         "nodeType": "VariableDeclaration",
         "scope": 2191,
         "src": "34679:22:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
          "typeString": "bytes32[]"
         },
         "typeName": {
          "baseType": {
           "id": 2036,
           "name": "bytes32",
           "nodeType": "ElementaryTypeName",
           "src": "34679:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "id": 2037,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "34679:9:2",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
           "typeString": "bytes32[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2041,
         "name": "lengths",
         "nodeType": "VariableDeclaration",
         "scope": 2191,
         "src": "34703:17:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
          "typeString": "uint256[]"
         },
         "typeName": {
          "baseType": {
           "id": 2039,
           "name": "uint256",
           "nodeType": "ElementaryTypeName",
           "src": "34703:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 2040,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "34703:9:2",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
           "typeString": "uint256[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2044,
         "name": "hist_hashes",
         "nodeType": "VariableDeclaration",
         "scope": 2191,
         "src": "34731:21:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
          "typeString": "bytes32[]"
         },
         "typeName": {
          "baseType": {
           "id": 2042,
           "name": "bytes32",
           "nodeType": "ElementaryTypeName",
           "src": "34731:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "id": 2043,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "34731:9:2",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
           "typeString": "bytes32[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2047,
         "name": "addrs",
         "nodeType": "VariableDeclaration",
         "scope": 2191,
         "src": "34754:15:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
          "typeString": "address[]"
         },
         "typeName": {
          "baseType": {
           "id": 2045,
           "name": "address",
           "nodeType": "ElementaryTypeName",
           "src": "34754:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_address",
            "typeString": "address"
           }
          },
          "id": 2046,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "34754:9:2",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
           "typeString": "address[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2050,
         "name": "bonds",
         "nodeType": "VariableDeclaration",
         "scope": 2191,
         "src": "34771:15:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
          "typeString": "uint256[]"
         },
         "typeName": {
          "baseType": {
           "id": 2048,
           "name": "uint256",
           "nodeType": "ElementaryTypeName",
           "src": "34771:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_uint256",
            "typeString": "uint256"
           }
          },
          "id": 2049,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "34771:9:2",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
           "typeString": "uint256[]"
          }
         },
         "value": null,
         "visibility": "internal"
        },
        {
         "constant": false,
         "id": 2053,
         "name": "answers",
         "nodeType": "VariableDeclaration",
         "scope": 2191,
         "src": "34788:17:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
          "typeString": "bytes32[]"
         },
         "typeName": {
          "baseType": {
           "id": 2051,
           "name": "bytes32",
           "nodeType": "ElementaryTypeName",
           "src": "34788:7:2",
           "typeDescriptions": {
            "typeIdentifier": "t_bytes32",
            "typeString": "bytes32"
           }
          },
          "id": 2052,
          "length": null,
          "nodeType": "ArrayTypeName",
          "src": "34788:9:2",
          "typeDescriptions": {
           "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
           "typeString": "bytes32[]"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "34669:142:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 2057,
       "nodeType": "ParameterList",
       "parameters": [],
       "src": "34909:0:2"
      },
      "scope": 2322,
      "src": "34629:1003:2",
      "stateMutability": "nonpayable",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2203,
       "nodeType": "Block",
       "src": "35855:59:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2198,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "35872:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 2200,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2199,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2193,
            "src": "35882:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "35872:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 2201,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "content_hash",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 247,
          "src": "35872:35:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 2197,
         "id": 2202,
         "nodeType": "Return",
         "src": "35865:42:2"
        }
       ]
      },
      "documentation": "@notice Returns the questions's content hash, identifying the question content\n @param question_id The ID of the question ",
      "id": 2204,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getContentHash",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2194,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2193,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2204,
         "src": "35800:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2192,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "35800:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "35799:21:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 2197,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2196,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2204,
         "src": "35846:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2195,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "35846:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "35845:9:2"
      },
      "scope": 2322,
      "src": "35776:138:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2216,
       "nodeType": "Block",
       "src": "36113:57:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2211,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "36130:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 2213,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2212,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2206,
            "src": "36140:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "36130:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 2214,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "arbitrator",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 249,
          "src": "36130:33:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "functionReturnParameters": 2210,
         "id": 2215,
         "nodeType": "Return",
         "src": "36123:40:2"
        }
       ]
      },
      "documentation": "@notice Returns the arbitrator address for the question\n @param question_id The ID of the question ",
      "id": 2217,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getArbitrator",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2207,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2206,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2217,
         "src": "36058:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2205,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "36058:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "36057:21:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 2210,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2209,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2217,
         "src": "36104:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_address",
          "typeString": "address"
         },
         "typeName": {
          "id": 2208,
          "name": "address",
          "nodeType": "ElementaryTypeName",
          "src": "36104:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_address",
           "typeString": "address"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "36103:9:2"
      },
      "scope": 2322,
      "src": "36035:135:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2229,
       "nodeType": "Block",
       "src": "36381:57:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2224,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "36398:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 2226,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2225,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2219,
            "src": "36408:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "36398:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 2227,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "opening_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 251,
          "src": "36398:33:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "functionReturnParameters": 2223,
         "id": 2228,
         "nodeType": "Return",
         "src": "36391:40:2"
        }
       ]
      },
      "documentation": "@notice Returns the timestamp when the question can first be answered\n @param question_id The ID of the question ",
      "id": 2230,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getOpeningTS",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2220,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2219,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2230,
         "src": "36327:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2218,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "36327:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "36326:21:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 2223,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2222,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2230,
         "src": "36373:6:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 2221,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "36373:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "36372:8:2"
      },
      "scope": 2322,
      "src": "36305:133:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2242,
       "nodeType": "Block",
       "src": "36639:54:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2237,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "36656:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 2239,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2238,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2232,
            "src": "36666:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "36656:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 2240,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "timeout",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 253,
          "src": "36656:30:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "functionReturnParameters": 2236,
         "id": 2241,
         "nodeType": "Return",
         "src": "36649:37:2"
        }
       ]
      },
      "documentation": "@notice Returns the timeout in seconds used after each answer\n @param question_id The ID of the question ",
      "id": 2243,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getTimeout",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2233,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2232,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2243,
         "src": "36585:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2231,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "36585:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "36584:21:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 2236,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2235,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2243,
         "src": "36631:6:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 2234,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "36631:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "36630:8:2"
      },
      "scope": 2322,
      "src": "36565:128:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2255,
       "nodeType": "Block",
       "src": "36909:58:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2250,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "36926:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 2252,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2251,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2245,
            "src": "36936:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "36926:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 2253,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "finalize_ts",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 255,
          "src": "36926:34:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "functionReturnParameters": 2249,
         "id": 2254,
         "nodeType": "Return",
         "src": "36919:41:2"
        }
       ]
      },
      "documentation": "@notice Returns the timestamp at which the question will be/was finalized\n @param question_id The ID of the question ",
      "id": 2256,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getFinalizeTS",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2246,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2245,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2256,
         "src": "36855:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2244,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "36855:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "36854:21:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 2249,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2248,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2256,
         "src": "36901:6:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint32",
          "typeString": "uint32"
         },
         "typeName": {
          "id": 2247,
          "name": "uint32",
          "nodeType": "ElementaryTypeName",
          "src": "36901:6:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint32",
           "typeString": "uint32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "36900:8:2"
      },
      "scope": 2322,
      "src": "36832:135:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2268,
       "nodeType": "Block",
       "src": "37174:69:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2263,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "37191:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 2265,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2264,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2258,
            "src": "37201:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "37191:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 2266,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "is_pending_arbitration",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 257,
          "src": "37191:45:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "functionReturnParameters": 2262,
         "id": 2267,
         "nodeType": "Return",
         "src": "37184:52:2"
        }
       ]
      },
      "documentation": "@notice Returns whether the question is pending arbitration\n @param question_id The ID of the question ",
      "id": 2269,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "isPendingArbitration",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2259,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2258,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2269,
         "src": "37122:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2257,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "37122:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "37121:21:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 2262,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2261,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2269,
         "src": "37168:4:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bool",
          "typeString": "bool"
         },
         "typeName": {
          "id": 2260,
          "name": "bool",
          "nodeType": "ElementaryTypeName",
          "src": "37168:4:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bool",
           "typeString": "bool"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "37167:6:2"
      },
      "scope": 2322,
      "src": "37092:151:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2281,
       "nodeType": "Block",
       "src": "37496:53:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2276,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "37513:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 2278,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2277,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2271,
            "src": "37523:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "37513:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 2279,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "bounty",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 259,
          "src": "37513:29:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "functionReturnParameters": 2275,
         "id": 2280,
         "nodeType": "Return",
         "src": "37506:36:2"
        }
       ]
      },
      "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": 2282,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getBounty",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2272,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2271,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2282,
         "src": "37441:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2270,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "37441:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "37440:21:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 2275,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2274,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2282,
         "src": "37487:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 2273,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "37487:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "37486:9:2"
      },
      "scope": 2322,
      "src": "37422:127:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2294,
       "nodeType": "Block",
       "src": "37732:58:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2289,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "37749:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 2291,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2290,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2284,
            "src": "37759:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "37749:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 2292,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "best_answer",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 261,
          "src": "37749:34:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 2288,
         "id": 2293,
         "nodeType": "Return",
         "src": "37742:41:2"
        }
       ]
      },
      "documentation": "@notice Returns the current best answer\n @param question_id The ID of the question ",
      "id": 2295,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getBestAnswer",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2285,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2284,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2295,
         "src": "37677:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2283,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "37677:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "37676:21:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 2288,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2287,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2295,
         "src": "37723:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2286,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "37723:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "37722:9:2"
      },
      "scope": 2322,
      "src": "37654:136:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2307,
       "nodeType": "Block",
       "src": "38053:59:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2302,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "38070:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 2304,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2303,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2297,
            "src": "38080:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "38070:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 2305,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "history_hash",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 263,
          "src": "38070:35:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "functionReturnParameters": 2301,
         "id": 2306,
         "nodeType": "Return",
         "src": "38063:42:2"
        }
       ]
      },
      "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": 2308,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getHistoryHash",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2298,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2297,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2308,
         "src": "37998:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2296,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "37998:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "37997:21:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 2301,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2300,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2308,
         "src": "38044:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2299,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "38044:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "38043:9:2"
      },
      "scope": 2322,
      "src": "37974:138:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     },
     {
      "body": {
       "id": 2320,
       "nodeType": "Block",
       "src": "38311:51:2",
       "statements": [
        {
         "expression": {
          "argumentTypes": null,
          "expression": {
           "argumentTypes": null,
           "baseExpression": {
            "argumentTypes": null,
            "id": 2315,
            "name": "questions",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 295,
            "src": "38328:9:2",
            "typeDescriptions": {
             "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Question_$266_storage_$",
             "typeString": "mapping(bytes32 => struct RealitioERC20.Question storage ref)"
            }
           },
           "id": 2317,
           "indexExpression": {
            "argumentTypes": null,
            "id": 2316,
            "name": "question_id",
            "nodeType": "Identifier",
            "overloadedDeclarations": [],
            "referencedDeclaration": 2310,
            "src": "38338:11:2",
            "typeDescriptions": {
             "typeIdentifier": "t_bytes32",
             "typeString": "bytes32"
            }
           },
           "isConstant": false,
           "isLValue": true,
           "isPure": false,
           "lValueRequested": false,
           "nodeType": "IndexAccess",
           "src": "38328:22:2",
           "typeDescriptions": {
            "typeIdentifier": "t_struct$_Question_$266_storage",
            "typeString": "struct RealitioERC20.Question storage ref"
           }
          },
          "id": 2318,
          "isConstant": false,
          "isLValue": true,
          "isPure": false,
          "lValueRequested": false,
          "memberName": "bond",
          "nodeType": "MemberAccess",
          "referencedDeclaration": 265,
          "src": "38328:27:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "functionReturnParameters": 2314,
         "id": 2319,
         "nodeType": "Return",
         "src": "38321:34:2"
        }
       ]
      },
      "documentation": "@notice Returns the highest bond posted so far for a question\n @param question_id The ID of the question ",
      "id": 2321,
      "implemented": true,
      "isConstructor": false,
      "isDeclaredConst": true,
      "modifiers": [],
      "name": "getBond",
      "nodeType": "FunctionDefinition",
      "parameters": {
       "id": 2311,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2310,
         "name": "question_id",
         "nodeType": "VariableDeclaration",
         "scope": 2321,
         "src": "38256:19:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_bytes32",
          "typeString": "bytes32"
         },
         "typeName": {
          "id": 2309,
          "name": "bytes32",
          "nodeType": "ElementaryTypeName",
          "src": "38256:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_bytes32",
           "typeString": "bytes32"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "38255:21:2"
      },
      "payable": false,
      "returnParameters": {
       "id": 2314,
       "nodeType": "ParameterList",
       "parameters": [
        {
         "constant": false,
         "id": 2313,
         "name": "",
         "nodeType": "VariableDeclaration",
         "scope": 2321,
         "src": "38302:7:2",
         "stateVariable": false,
         "storageLocation": "default",
         "typeDescriptions": {
          "typeIdentifier": "t_uint256",
          "typeString": "uint256"
         },
         "typeName": {
          "id": 2312,
          "name": "uint256",
          "nodeType": "ElementaryTypeName",
          "src": "38302:7:2",
          "typeDescriptions": {
           "typeIdentifier": "t_uint256",
           "typeString": "uint256"
          }
         },
         "value": null,
         "visibility": "internal"
        }
       ],
       "src": "38301:9:2"
      },
      "scope": 2322,
      "src": "38239:123:2",
      "stateMutability": "view",
      "superFunction": null,
      "visibility": "public"
     }
    ],
    "scope": 2323,
    "src": "133:38232:2"
   }
  ],
  "src": "0:38366:2"
 },
 "compiler": {
  "name": "solc",
  "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
 },
 "networks": {
  "1": {
   "events": {},
   "links": {},
   "address": "0x3D3B51b1091d1F6491AeB1916C94BAfe57f6Cc9d",
   "transactionHash": ""
  },
  "4": {
   "events": {},
   "links": {},
   "address": "0xa4dA771Bbd6e93bB8e714Fe97b388fe88eec8288",
   "transactionHash": ""
  }
 },
 "schemaVersion": "2.0.2",
 "updatedAt": "2019-06-07T22:14:37.044Z"
}