{
  "contractName": "IntermediateResultsStorage",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "resolver",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "key",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_key",
          "type": "bytes32"
        }
      ],
      "name": "get_contract",
      "outputs": [
        {
          "name": "_contract",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "CONTRACT_ADDRESS",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_resolver",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_key",
          "type": "bytes32"
        }
      ],
      "name": "getIntermediateResults",
      "outputs": [
        {
          "name": "_countedUntil",
          "type": "address"
        },
        {
          "name": "_currentForCount",
          "type": "uint256"
        },
        {
          "name": "_currentAgainstCount",
          "type": "uint256"
        },
        {
          "name": "_currentSumOfEffectiveBalance",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_key",
          "type": "bytes32"
        }
      ],
      "name": "resetIntermediateResults",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_key",
          "type": "bytes32"
        },
        {
          "name": "_countedUntil",
          "type": "address"
        },
        {
          "name": "_currentForCount",
          "type": "uint256"
        },
        {
          "name": "_currentAgainstCount",
          "type": "uint256"
        },
        {
          "name": "_currentSumOfEffectiveBalance",
          "type": "uint256"
        }
      ],
      "name": "setIntermediateResults",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405260006001026003906000191690556000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f70726f706f73616c5f73746174655f70726570726f706f73616c0000000000006005906000191690557f70726f706f73616c5f73746174655f64726166740000000000000000000000006006906000191690557f70726f706f73616c5f73746174655f6d6f6465726174656400000000000000006007906000191690557f70726f706f73616c5f73746174655f6f6e676f696e67000000000000000000006008906000191690557f70726f706f73616c5f73746174655f636c6f73656400000000000000000000006009906000191690557f70726f706f73616c5f73746174655f6172636869766564000000000000000000600a906000191690556001600b556002600c556003600d556001600e556002600f5560036010557f696e7465725f6467645f696400000000000000000000000000000000000000006011906000191690557f696e7465725f6d6f645f6467645f6964000000000000000000000000000000006012906000191690557f696e7465725f626f6e75735f63616c63756c6174696f6e5f69640000000000006013906000191690557f64616f00000000000000000000000000000000000000000000000000000000006014906000191690557f64616f3a7370656369616c3a70726f706f73616c0000000000000000000000006015906000191690557f64616f3a7374616b652d6c6f636b696e670000000000000000000000000000006016906000191690557f64616f3a766f74696e67000000000000000000000000000000000000000000006017906000191690557f64616f3a766f74696e673a636c61696d730000000000000000000000000000006018906000191690557f64616f3a73766f74696e673a636c61696d7300000000000000000000000000006019906000191690557f64616f3a6964656e746974790000000000000000000000000000000000000000601a906000191690557f64616f3a726577617264732d6d616e6167657200000000000000000000000000601b906000191690557f64616f3a726577617264732d6578747261730000000000000000000000000000601c906000191690557f64616f3a726f6c65730000000000000000000000000000000000000000000000601d906000191690557f64616f3a66756e64696e672d6d616e6167657200000000000000000000000000601e906000191690557f64616f3a77686974656c697374696e6700000000000000000000000000000000601f906000191690557f64616f3a696e666f726d6174696f6e00000000000000000000000000000000006020906000191690557f736572766963653a726f6c6500000000000000000000000000000000000000006021906000191690557f736572766963653a64616f3a696e666f000000000000000000000000000000006022906000191690557f736572766963653a64616f3a6c697374696e67000000000000000000000000006023906000191690557f736572766963653a64616f3a63616c63756c61746f72000000000000000000006024906000191690557f73746f726167653a64616f0000000000000000000000000000000000000000006025906000191690557f73746f726167653a64616f3a636f756e746572000000000000000000000000006026906000191690557f73746f726167653a64616f3a75706772616465000000000000000000000000006027906000191690557f73746f726167653a64616f3a6964656e746974790000000000000000000000006028906000191690557f73746f726167653a64616f3a706f696e747300000000000000000000000000006029906000191690557f73746f726167653a64616f3a7370656369616c00000000000000000000000000602a906000191690557f73746f726167653a64616f3a636f6e6669670000000000000000000000000000602b906000191690557f73746f726167653a64616f3a7374616b65000000000000000000000000000000602c906000191690557f73746f726167653a64616f3a7265776172647300000000000000000000000000602d906000191690557f73746f726167653a64616f3a77686974656c697374696e670000000000000000602e906000191690557f73746f726167653a696e7465726d6564696174653a726573756c747300000000602f906000191690557f743a6467640000000000000000000000000000000000000000000000000000006030906000191690557f743a6467780000000000000000000000000000000000000000000000000000006031906000191690557f743a6261646765000000000000000000000000000000000000000000000000006032906000191690556001603360006101000a81548160ff021916908360ff1602179055506002603360016101000a81548160ff021916908360ff1602179055506003603360026101000a81548160ff021916908360ff1602179055506004603360036101000a81548160ff021916908360ff1602179055506276a7006034557f6d696e5f6467645f7061727469636970616e74000000000000000000000000006035906000191690557f6d696e5f6467645f6d6f64657261746f720000000000000000000000000000006036906000191690557f6d696e5f72657075746174696f6e5f6d6f64657261746f7200000000000000006037906000191690557f6c6f636b696e675f70686173655f6475726174696f6e000000000000000000006038906000191690557f717561727465725f6475726174696f6e000000000000000000000000000000006039906000191690557f766f74696e675f636f6d6d69745f706861736500000000000000000000000000603a906000191690557f766f74696e675f70686173655f746f74616c0000000000000000000000000000603b906000191690557f696e746572696d5f766f74696e675f636f6d6d69745f70686173650000000000603c906000191690557f696e746572696d5f766f74696e675f70686173655f746f74616c000000000000603d906000191690557f64726166745f71756f72756d5f66697865645f6e756d657261746f7200000000603e906000191690557f64726166745f71756f72756d5f66697865645f64656e6f6d696e61746f720000603f906000191690557f64726166745f71756f72756d5f73666163746f725f6e756d657261746f7200006040906000191690557f64726166745f71756f72756d5f73666163746f725f64656e6f6d696e61746f726041906000191690557f766f74655f71756f72756d5f66697865645f6e756d657261746f7200000000006042906000191690557f766f74655f71756f72756d5f66697865645f64656e6f6d696e61746f720000006043906000191690557f766f74655f71756f72756d5f73666163746f725f6e756d657261746f720000006044906000191690557f766f74655f71756f72756d5f73666163746f725f64656e6f6d696e61746f72006045906000191690557f66696e616c5f7265776172645f73666163746f725f6e756d657261746f7200006046906000191690557f66696e616c5f7265776172645f73666163746f725f64656e6f6d696e61746f726047906000191690557f64726166745f71756f74615f6e756d657261746f7200000000000000000000006048906000191690557f64726166745f71756f74615f64656e6f6d696e61746f720000000000000000006049906000191690557f766f74696e675f71756f74615f6e756d657261746f7200000000000000000000604a906000191690557f766f74696e675f71756f74615f64656e6f6d696e61746f720000000000000000604b906000191690557f6d696e696d616c5f717000000000000000000000000000000000000000000000604c906000191690557f717561727465725f706f696e745f7363616c696e675f666163746f7200000000604d906000191690557f7265705f706f696e745f7363616c696e675f666163746f720000000000000000604e906000191690557f6d696e696d616c5f6d6f645f7170000000000000000000000000000000000000604f906000191690557f6d6f645f71705f7363616c696e675f666163746f7200000000000000000000006050906000191690557f6d6f645f7265705f706f696e745f7363616c696e675f666163746f72000000006051906000191690557f717561727465725f706f696e745f64726166745f766f746500000000000000006052906000191690557f717561727465725f706f696e745f766f746500000000000000000000000000006053906000191690557f717561727465725f706f696e745f696e746572696d5f766f74650000000000006054906000191690557f715f705f6d696c6573746f6e655f636f6d706c6574696f6e00000000000000006055906000191690557f626f6e75735f72657075746174696f6e5f6e756d657261746f720000000000006056906000191690557f626f6e75735f72657075746174696f6e5f64656e6f6d696e61746f72000000006057906000191690557f7370656369616c5f70726f706f73616c5f636f6d6d69745f70686173650000006058906000191690557f7370656369616c5f70726f706f73616c5f70686173655f746f74616c000000006059906000191690557f636f6e6669675f7370656369616c5f71756f74615f6e756d657261746f720000605a906000191690557f636f6e6669675f7370656369616c5f71756f74615f64656e6f6d696e61746f72605b906000191690557f7370656369616c5f71756f72756d5f6e756d657261746f720000000000000000605c906000191690557f7370656369616c5f71756f72756d5f64656e6f6d696e61746f72000000000000605d906000191690557f636f6e6669675f6d61785f72657075746174696f6e5f646564756374696f6e00605e906000191690557f636f6e6669675f70756e6973686d656e745f6e6f745f6c6f636b696e67000000605f906000191690557f636f6e6669675f7265705f7065725f65787472615f71705f6e756d00000000006060906000191690557f636f6e6669675f7265705f7065725f65787472615f71705f64656e00000000006061906000191690557f636f6e6669675f6d61785f6d5f72705f646564756374696f6e000000000000006062906000191690557f636f6e6669675f7265705f7065725f65787472615f6d5f71705f6e756d0000006063906000191690557f636f6e6669675f7265705f7065725f65787472615f6d5f71705f64656e0000006064906000191690557f636f6e6669675f6d6f645f706f7274696f6e5f6e756d000000000000000000006065906000191690557f636f6e6669675f6d6f645f706f7274696f6e5f64656e000000000000000000006066906000191690557f636f6e6669675f64726166745f766f74696e675f7068617365000000000000006067906000191690557f636f6e6669675f72705f626f6f73745f7065725f6261646765000000000000006068906000191690557f636f6e6669675f636c61696d696e675f646561646c696e6500000000000000006069906000191690557f636f6e6669675f70726570726f706f73616c5f636f6c6c61746572616c000000606a906000191690557f636f6e6669675f6d61785f66756e64696e675f6e6f6e44696769780000000000606b906000191690557f636f6e6669675f6d61785f6d696c6573746f6e65735f6e6f6e44696769780000606c906000191690557f636f6e6669675f6e6f6e44696769785f70726f706f73616c5f63617000000000606d906000191690557f636f6e6669675f646561645f6475726174696f6e000000000000000000000000606e906000191690557f636f6e6669675f63765f72657075746174696f6e000000000000000000000000606f9060001916905534801561113357600080fd5b50604051602080611c6283398101806040528101908080519060200190929190505050611171602f5482611182640100000000026401000000009004565b151561117c57600080fd5b5061140a565b6000808273ffffffffffffffffffffffffffffffffffffffff16636d19a8826040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156111e957600080fd5b505af11580156111fd573d6000803e3d6000fd5b505050506040513d602081101561121357600080fd5b810190808051906020019092919050505090506000151581151514156113fe5730600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600181600019169055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c0f6ef4a600154600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156113af57600080fd5b505af11580156113c3573d6000803e3d6000fd5b505050506040513d60208110156113d957600080fd5b810190808051906020019092919050505015156113f557600080fd5b60019150611403565b600091505b5092915050565b610849806114196000396000f300608060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304f3bcec1461008857806312d0c13b146100df5780633943380c146101655780633f83acff146101985780636e3f777c14610209578063d590f4ab14610278578063db4ecbc1146102a9575b600080fd5b34801561009457600080fd5b5061009d610300565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100eb57600080fd5b5061010e6004803603810190808035600019169060200190929190505050610325565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200194505050505060405180910390f35b34801561017157600080fd5b5061017a6103d6565b60405180826000191660001916815260200191505060405180910390f35b3480156101a457600080fd5b506101c760048036038101908080356000191690602001909291905050506103dc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021557600080fd5b506102766004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001909291905050506104b8565b005b34801561028457600080fd5b506102a760048036038101908080356000191690602001909291905050506105d2565b005b3480156102b557600080fd5b506102be610680565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060706000866000191660001916815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1693506070600086600019166000191681526020019081526020016000206000015492506070600086600019166000191681526020019081526020016000206001015491506070600086600019166000191681526020019081526020016000206002015490509193509193565b60015481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561047657600080fd5b505af115801561048a573d6000803e3d6000fd5b505050506040513d60208110156104a057600080fd5b81019080805190602001909291905050509050919050565b6104fa606060405190810160405280601b54600019166000191681526020016018546000191660001916815260200160195460001916600019168152506106a6565b151561050557600080fd5b8360706000876000191660001916815260200190815260200160002060030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260706000876000191660001916815260200190815260200160002060000181905550816070600087600019166000191681526020019081526020016000206001018190555080607060008760001916600019168152602001908152602001600020600201819055505050505050565b610614606060405190810160405280601b54600019166000191681526020016018546000191660001916815260200160195460001916600019168152506106a6565b151561061f57600080fd5b600060706000836000191660001916815260200190815260200160002060030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600060039150600090505b818110156108165760006001026000191684826003811015156106d357fe5b60200201516000191614156106e757610809565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff858360038110151561073257fe5b60200201516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561079157600080fd5b505af11580156107a5573d6000803e3d6000fd5b505050506040513d60208110156107bb57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156108085760019250610816565b5b80806001019150506106b4565b50509190505600a165627a7a7230582068586d37ec4b2a65757b35d5ac48bf4d1c7cff1d6e04b03dc8c43f7bdb431a880029",
  "deployedBytecode": "0x608060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304f3bcec1461008857806312d0c13b146100df5780633943380c146101655780633f83acff146101985780636e3f777c14610209578063d590f4ab14610278578063db4ecbc1146102a9575b600080fd5b34801561009457600080fd5b5061009d610300565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100eb57600080fd5b5061010e6004803603810190808035600019169060200190929190505050610325565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200194505050505060405180910390f35b34801561017157600080fd5b5061017a6103d6565b60405180826000191660001916815260200191505060405180910390f35b3480156101a457600080fd5b506101c760048036038101908080356000191690602001909291905050506103dc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021557600080fd5b506102766004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001909291905050506104b8565b005b34801561028457600080fd5b506102a760048036038101908080356000191690602001909291905050506105d2565b005b3480156102b557600080fd5b506102be610680565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060706000866000191660001916815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1693506070600086600019166000191681526020019081526020016000206000015492506070600086600019166000191681526020019081526020016000206001015491506070600086600019166000191681526020019081526020016000206002015490509193509193565b60015481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561047657600080fd5b505af115801561048a573d6000803e3d6000fd5b505050506040513d60208110156104a057600080fd5b81019080805190602001909291905050509050919050565b6104fa606060405190810160405280601b54600019166000191681526020016018546000191660001916815260200160195460001916600019168152506106a6565b151561050557600080fd5b8360706000876000191660001916815260200190815260200160002060030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260706000876000191660001916815260200190815260200160002060000181905550816070600087600019166000191681526020019081526020016000206001018190555080607060008760001916600019168152602001908152602001600020600201819055505050505050565b610614606060405190810160405280601b54600019166000191681526020016018546000191660001916815260200160195460001916600019168152506106a6565b151561061f57600080fd5b600060706000836000191660001916815260200190815260200160002060030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600060039150600090505b818110156108165760006001026000191684826003811015156106d357fe5b60200201516000191614156106e757610809565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff858360038110151561073257fe5b60200201516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561079157600080fd5b505af11580156107a5573d6000803e3d6000fd5b505050506040513d60208110156107bb57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156108085760019250610816565b5b80806001019150506106b4565b50509190505600a165627a7a7230582068586d37ec4b2a65757b35d5ac48bf4d1c7cff1d6e04b03dc8c43f7bdb431a880029",
  "sourceMap": "161:2469:63:-;;;177:3:3;169:12;;147:34;;;;;;;219:3;187:36;;;;;;;;;;;;;;;;;;;;230:65;;;;;;;;301:53;;;;;;;;360:61;;;;;;;;427:57;;;;;;;;490:55;;;;;;;;551:59;;;;;;;;643:1;617:27;;677:1;650:28;;713:1;684:30;;758:1;721:38;;800:1;765:36;;843:1;807:37;;851:52;;;;;;;;909:66;;;;;;;;981:80;;;;;;;;1097:28;;;;;;;;1131:62;;;;;;;;1199:56;;;;;;;;1261:42;;;;;;;;1309:56;;;;;;;;1371:65;;;;;;;;1442:46;;;;;;;;1494:60;;;;;;;;1560:66;;;;;;;;1632:40;;;;;;;;1678:60;;;;;;;;1744:54;;;;;;;;1804:52;;;;;;;;1888:46;;;;;;;;1940:54;;;;;;;;2000:60;;;;;;;;2066:66;;;;;;;;2164:44;;;;;;;;2214:60;;;;;;;;2280;;;;;;;;2346:62;;;;;;;;2414:58;;;;;;;;2478:60;;;;;;;;2544:58;;;;;;;;2608:56;;;;;;;;2670:60;;;;;;;;2736:70;;;;;;;;2812:78;;;;;;;;2897:36;;;;;;;;2939;;;;;;;;2981:40;;;;;;;;3047:1;3028:20;;;;;;;;;;;;;;;;;;;;3077:1;3054:24;;;;;;;;;;;;;;;;;;;;3103:1;3084:20;;;;;;;;;;;;;;;;;;;;3135:1;3110:26;;;;;;;;;;;;;;;;;;;;3170:7;3143:34;;3184:57;;;;;;;;3247:62;;;;;;;;3315:76;;;;;;;;3398:64;;;;;;;;3468:52;;;;;;;;3526:58;;;;;;;;3590:56;;;;;;;;3652:67;;;;;;;;3725:65;;;;;;;;3797:84;;;;;;;;3887:88;;;;;;;;3981:87;;;;;;;;4074:91;;;;;;;;4171:84;;;;;;;;4261:88;;;;;;;;4355:87;;;;;;;;4448:91;;;;;;;;4545:87;;;;;;;;4638:91;;;;;;;;4736:62;;;;;;;;4804:66;;;;;;;;4876:64;;;;;;;;4946:68;;;;;;;;5021:51;;;;;;;;5078:76;;;;;;;;5160:75;;;;;;;;5242:65;;;;;;;;5313:79;;;;;;;;5398:89;;;;;;;;5494:68;;;;;;;;5568:56;;;;;;;;5630:72;;;;;;;;5740:91;;;;;;;;5838:72;;;;;;;;5916:76;;;;;;;;5999:78;;;;;;;;6083:76;;;;;;;;6166:73;;;;;;;;6245:77;;;;;;;;6329;;;;;;;;6412:81;;;;;;;;6500:79;;;;;;;;6585:75;;;;;;;;6667:74;;;;;;;;6747;;;;;;;;6828:83;;;;;;;;6917:86;;;;;;;;7009;;;;;;;;7102:67;;;;;;;;7175;;;;;;;;7249:63;;;;;;;;7319:77;;;;;;;;7403:66;;;;;;;;7476:71;;;;;;;;7554:72;;;;;;;;7632:78;;;;;;;;7716:82;;;;;;;;7805:62;;;;;;;;7873:68;;;;;;;;293:118:63;8:9:-1;5:2;;;30:1;27;20:12;5:2;293:118:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;349:54;354:37;;393:9;349:4;;;:54;;;:::i;:::-;341:63;;;;;;;;293:118;161:2469;;1530:450:67;1617:13;1640:15;1675:9;1658:42;;;:44;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1658:44:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1658:44:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1658:44:67;;;;;;;;;;;;;;;;1640:62;;1726:5;1712:19;;:10;:19;;;1708:268;;;1768:4;1741:16;;:32;;;;;;;;;;;;;;;;;;1792:9;1781:8;;:20;;;;;;;;;;;;;;;;;;1815:4;1809:3;:10;;;;;;;1852:8;;;;;;;;;;;1835:49;;;1885:3;;1890:16;;;;;;;;;;;1835:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1835:72:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1835:72:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1835:72:67;;;;;;;;;;;;;;;;1827:81;;;;;;;;1927:4;1916:15;;1708:268;;;1964:5;1953:16;;1708:268;1530:450;;;;;:::o;161:2469:63:-;;;;;;;",
  "deployedSourceMap": "161:2469:63:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;237:23:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;237:23:67;;;;;;;;;;;;;;;;;;;;;;;;;;;1064:598:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1064:598:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;264:18:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;264:18:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2380:179;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2380:179:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1943:685:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1943:685:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1668:269;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1668:269:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;344:31:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;344:31:67;;;;;;;;;;;;;;;;;;;;;;;;;;;237:23;;;;;;;;;;;;;:::o;1064:598:63:-;1168:21;1203:24;1241:28;1283:37;1361:22;:28;1384:4;1361:28;;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;1345:57;;1431:22;:28;1454:4;1431:28;;;;;;;;;;;;;;;;;:44;;;1412:63;;1508:22;:28;1531:4;1508:28;;;;;;;;;;;;;;;;;:48;;;1485:71;;1598:22;:28;1621:4;1598:28;;;;;;;;;;;;;;;;;:57;;;1566:89;;1064:598;;;;;:::o;264:18:67:-;;;;:::o;2380:179::-;2470:17;2526:8;;;;;;;;;;;2509:39;;;2549:4;2509:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2509:45:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2509:45:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2509:45:67;;;;;;;;;;;;;;;;2497:57;;2380:179;;;:::o;1943:685:63:-;2190:110;;;;;;;;;;2206:28;;2190:110;;;;;;;;;;2236:26;;2190:110;;;;;;;;;;2264:34;;2190:110;;;;;;;;;:14;:110::i;:::-;2182:119;;;;;;;;2355:13;2311:22;:28;2334:4;2311:28;;;;;;;;;;;;;;;;;:41;;;:57;;;;;;;;;;;;;;;;;;2425:16;2378:22;:28;2401:4;2378:28;;;;;;;;;;;;;;;;;:44;;:63;;;;2502:20;2451:22;:28;2474:4;2451:28;;;;;;;;;;;;;;;;;:48;;:71;;;;2592:29;2532:22;:28;2555:4;2532:28;;;;;;;;;;;;;;;;;:57;;:89;;;;1943:685;;;;;:::o;1668:269::-;1753:110;;;;;;;;;;1769:28;;1753:110;;;;;;;;;;1799:26;;1753:110;;;;;;;;;;1827:34;;1753:110;;;;;;;;;:14;:110::i;:::-;1745:119;;;;;;;;1926:3;1874:22;:28;1897:4;1874:28;;;;;;;;;;;;;;;;;:41;;;:56;;;;;;;;;;;;;;;;;;1668:269;:::o;344:31:67:-;;;;;;;;;;;;;:::o;881:350::-;951:12;971:10;1012:9;984:17;971:30;;1024:1;1012:13;;1007:220;1031:2;1027:1;:6;1007:220;;;1077:3;1069:12;;1052:29;;;:10;1063:1;1052:13;;;;;;;;;;;;;:29;;;;1048:43;;;1083:8;;1048:43;1134:8;;;;;;;;;;;1117:39;;;1157:10;1168:1;1157:13;;;;;;;;;;;;;1117:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1117:54:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1117:54:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1117:54:67;;;;;;;;;;;;;;;;1103:68;;:10;:68;;;1099:122;;;1193:4;1183:14;;1207:5;;1099:122;1007:220;1035:3;;;;;;;1007:220;;;881:350;;;;;:::o",
  "source": "pragma solidity ^0.4.25;\n\nimport \"@digix/cacp-contracts-dao/contracts/ResolverClient.sol\";\nimport \"../common/DaoConstants.sol\";\nimport \"../lib/DaoStructs.sol\";\n\ncontract IntermediateResultsStorage is ResolverClient, DaoConstants {\n    using DaoStructs for DaoStructs.IntermediateResults;\n\n    constructor(address _resolver) public {\n        require(init(CONTRACT_STORAGE_INTERMEDIATE_RESULTS, _resolver));\n    }\n\n    // There are scenarios in which we must loop across all participants/moderators\n    // in a function call. For a big number of operations, the function call may be short of gas\n    // To tackle this, we use an IntermediateResults struct to store the intermediate results\n    // The same function is then called multiple times until all operations are completed\n    // If the operations cannot be done in that iteration, the intermediate results are stored\n    // else, the final outcome is returned\n    // Please check the lib/DaoStructs for docs on this struct\n    mapping (bytes32 => DaoStructs.IntermediateResults) allIntermediateResults;\n\n    function getIntermediateResults(bytes32 _key)\n        public\n        view\n        returns (\n            address _countedUntil,\n            uint256 _currentForCount,\n            uint256 _currentAgainstCount,\n            uint256 _currentSumOfEffectiveBalance\n        )\n    {\n        _countedUntil = allIntermediateResults[_key].countedUntil;\n        _currentForCount = allIntermediateResults[_key].currentForCount;\n        _currentAgainstCount = allIntermediateResults[_key].currentAgainstCount;\n        _currentSumOfEffectiveBalance = allIntermediateResults[_key].currentSumOfEffectiveBalance;\n    }\n\n    function resetIntermediateResults(bytes32 _key)\n        public\n    {\n        require(sender_is_from([CONTRACT_DAO_REWARDS_MANAGER, CONTRACT_DAO_VOTING_CLAIMS, CONTRACT_DAO_SPECIAL_VOTING_CLAIMS]));\n        allIntermediateResults[_key].countedUntil = address(0x0);\n    }\n\n    function setIntermediateResults(\n        bytes32 _key,\n        address _countedUntil,\n        uint256 _currentForCount,\n        uint256 _currentAgainstCount,\n        uint256 _currentSumOfEffectiveBalance\n    )\n        public\n    {\n        require(sender_is_from([CONTRACT_DAO_REWARDS_MANAGER, CONTRACT_DAO_VOTING_CLAIMS, CONTRACT_DAO_SPECIAL_VOTING_CLAIMS]));\n        allIntermediateResults[_key].countedUntil = _countedUntil;\n        allIntermediateResults[_key].currentForCount = _currentForCount;\n        allIntermediateResults[_key].currentAgainstCount = _currentAgainstCount;\n        allIntermediateResults[_key].currentSumOfEffectiveBalance = _currentSumOfEffectiveBalance;\n    }\n}\n",
  "sourcePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/IntermediateResultsStorage.sol",
  "ast": {
    "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/IntermediateResultsStorage.sol",
    "exportedSymbols": {
      "IntermediateResultsStorage": [
        18157
      ]
    },
    "id": 18158,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 18012,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:63"
      },
      {
        "absolutePath": "@digix/cacp-contracts-dao/contracts/ResolverClient.sol",
        "file": "@digix/cacp-contracts-dao/contracts/ResolverClient.sol",
        "id": 18013,
        "nodeType": "ImportDirective",
        "scope": 18158,
        "sourceUnit": 18629,
        "src": "26:64:63",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/common/DaoConstants.sol",
        "file": "../common/DaoConstants.sol",
        "id": 18014,
        "nodeType": "ImportDirective",
        "scope": 18158,
        "sourceUnit": 1630,
        "src": "91:36:63",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/lib/DaoStructs.sol",
        "file": "../lib/DaoStructs.sol",
        "id": 18015,
        "nodeType": "ImportDirective",
        "scope": 18158,
        "sourceUnit": 8452,
        "src": "128:31:63",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 18016,
              "name": "ResolverClient",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 18628,
              "src": "200:14:63",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ResolverClient_$18628",
                "typeString": "contract ResolverClient"
              }
            },
            "id": 18017,
            "nodeType": "InheritanceSpecifier",
            "src": "200:14:63"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 18018,
              "name": "DaoConstants",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1629,
              "src": "216:12:63",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoConstants_$1629",
                "typeString": "contract DaoConstants"
              }
            },
            "id": 18019,
            "nodeType": "InheritanceSpecifier",
            "src": "216:12:63"
          }
        ],
        "contractDependencies": [
          1629,
          18628
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 18157,
        "linearizedBaseContracts": [
          18157,
          1629,
          18628
        ],
        "name": "IntermediateResultsStorage",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 18022,
            "libraryName": {
              "contractScope": null,
              "id": 18020,
              "name": "DaoStructs",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8451,
              "src": "241:10:63",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoStructs_$8451",
                "typeString": "library DaoStructs"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "235:52:63",
            "typeName": {
              "contractScope": null,
              "id": 18021,
              "name": "DaoStructs.IntermediateResults",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8450,
              "src": "256:30:63",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_IntermediateResults_$8450_storage_ptr",
                "typeString": "struct DaoStructs.IntermediateResults"
              }
            }
          },
          {
            "body": {
              "id": 18034,
              "nodeType": "Block",
              "src": "331:80:63",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 18029,
                            "name": "CONTRACT_STORAGE_INTERMEDIATE_RESULTS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1427,
                            "src": "354:37:63",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 18030,
                            "name": "_resolver",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18024,
                            "src": "393:9:63",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 18028,
                          "name": "init",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18596,
                          "src": "349:4:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$",
                            "typeString": "function (bytes32,address) returns (bool)"
                          }
                        },
                        "id": 18031,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "349:54:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 18027,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "341:7:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 18032,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "341:63:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18033,
                  "nodeType": "ExpressionStatement",
                  "src": "341:63:63"
                }
              ]
            },
            "documentation": null,
            "id": 18035,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 18025,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18024,
                  "name": "_resolver",
                  "nodeType": "VariableDeclaration",
                  "scope": 18035,
                  "src": "305:17:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18023,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "305:7:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "304:19:63"
            },
            "payable": false,
            "returnParameters": {
              "id": 18026,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "331:0:63"
            },
            "scope": 18157,
            "src": "293:118:63",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 18039,
            "name": "allIntermediateResults",
            "nodeType": "VariableDeclaration",
            "scope": 18157,
            "src": "983:74:63",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IntermediateResults_$8450_storage_$",
              "typeString": "mapping(bytes32 => struct DaoStructs.IntermediateResults)"
            },
            "typeName": {
              "id": 18038,
              "keyType": {
                "id": 18036,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "992:7:63",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "983:51:63",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IntermediateResults_$8450_storage_$",
                "typeString": "mapping(bytes32 => struct DaoStructs.IntermediateResults)"
              },
              "valueType": {
                "contractScope": null,
                "id": 18037,
                "name": "DaoStructs.IntermediateResults",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 8450,
                "src": "1003:30:63",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_IntermediateResults_$8450_storage_ptr",
                  "typeString": "struct DaoStructs.IntermediateResults"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 18080,
              "nodeType": "Block",
              "src": "1335:327:63",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 18057,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 18052,
                      "name": "_countedUntil",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18044,
                      "src": "1345:13:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 18053,
                          "name": "allIntermediateResults",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18039,
                          "src": "1361:22:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IntermediateResults_$8450_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.IntermediateResults storage ref)"
                          }
                        },
                        "id": 18055,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 18054,
                          "name": "_key",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18041,
                          "src": "1384:4:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1361:28:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IntermediateResults_$8450_storage",
                          "typeString": "struct DaoStructs.IntermediateResults storage ref"
                        }
                      },
                      "id": 18056,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "countedUntil",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8449,
                      "src": "1361:41:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1345:57:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 18058,
                  "nodeType": "ExpressionStatement",
                  "src": "1345:57:63"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 18064,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 18059,
                      "name": "_currentForCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18046,
                      "src": "1412:16:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 18060,
                          "name": "allIntermediateResults",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18039,
                          "src": "1431:22:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IntermediateResults_$8450_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.IntermediateResults storage ref)"
                          }
                        },
                        "id": 18062,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 18061,
                          "name": "_key",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18041,
                          "src": "1454:4:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1431:28:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IntermediateResults_$8450_storage",
                          "typeString": "struct DaoStructs.IntermediateResults storage ref"
                        }
                      },
                      "id": 18063,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "currentForCount",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8443,
                      "src": "1431:44:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1412:63:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 18065,
                  "nodeType": "ExpressionStatement",
                  "src": "1412:63:63"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 18071,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 18066,
                      "name": "_currentAgainstCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18048,
                      "src": "1485:20:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 18067,
                          "name": "allIntermediateResults",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18039,
                          "src": "1508:22:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IntermediateResults_$8450_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.IntermediateResults storage ref)"
                          }
                        },
                        "id": 18069,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 18068,
                          "name": "_key",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18041,
                          "src": "1531:4:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1508:28:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IntermediateResults_$8450_storage",
                          "typeString": "struct DaoStructs.IntermediateResults storage ref"
                        }
                      },
                      "id": 18070,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "currentAgainstCount",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8445,
                      "src": "1508:48:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1485:71:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 18072,
                  "nodeType": "ExpressionStatement",
                  "src": "1485:71:63"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 18078,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 18073,
                      "name": "_currentSumOfEffectiveBalance",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18050,
                      "src": "1566:29:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 18074,
                          "name": "allIntermediateResults",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18039,
                          "src": "1598:22:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IntermediateResults_$8450_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.IntermediateResults storage ref)"
                          }
                        },
                        "id": 18076,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 18075,
                          "name": "_key",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18041,
                          "src": "1621:4:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1598:28:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IntermediateResults_$8450_storage",
                          "typeString": "struct DaoStructs.IntermediateResults storage ref"
                        }
                      },
                      "id": 18077,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "currentSumOfEffectiveBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8447,
                      "src": "1598:57:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1566:89:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 18079,
                  "nodeType": "ExpressionStatement",
                  "src": "1566:89:63"
                }
              ]
            },
            "documentation": null,
            "id": 18081,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getIntermediateResults",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 18042,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18041,
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "scope": 18081,
                  "src": "1096:12:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 18040,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1096:7:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1095:14:63"
            },
            "payable": false,
            "returnParameters": {
              "id": 18051,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18044,
                  "name": "_countedUntil",
                  "nodeType": "VariableDeclaration",
                  "scope": 18081,
                  "src": "1168:21:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18043,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1168:7:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18046,
                  "name": "_currentForCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 18081,
                  "src": "1203:24:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18045,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1203:7:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18048,
                  "name": "_currentAgainstCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 18081,
                  "src": "1241:28:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18047,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1241:7:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18050,
                  "name": "_currentSumOfEffectiveBalance",
                  "nodeType": "VariableDeclaration",
                  "scope": 18081,
                  "src": "1283:37:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18049,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1283:7:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1154:176:63"
            },
            "scope": 18157,
            "src": "1064:598:63",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 18104,
              "nodeType": "Block",
              "src": "1735:202:63",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 18088,
                                "name": "CONTRACT_DAO_REWARDS_MANAGER",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1367,
                                "src": "1769:28:63",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 18089,
                                "name": "CONTRACT_DAO_VOTING_CLAIMS",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1358,
                                "src": "1799:26:63",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 18090,
                                "name": "CONTRACT_DAO_SPECIAL_VOTING_CLAIMS",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1361,
                                "src": "1827:34:63",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "id": 18091,
                            "isConstant": false,
                            "isInlineArray": true,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "1768:94:63",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          ],
                          "id": 18087,
                          "name": "sender_is_from",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18529,
                          "src": "1753:14:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_array$_t_bytes32_$3_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (bytes32[3] memory) view returns (bool)"
                          }
                        },
                        "id": 18092,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1753:110:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 18086,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "1745:7:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 18093,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1745:119:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18094,
                  "nodeType": "ExpressionStatement",
                  "src": "1745:119:63"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 18102,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 18095,
                          "name": "allIntermediateResults",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18039,
                          "src": "1874:22:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IntermediateResults_$8450_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.IntermediateResults storage ref)"
                          }
                        },
                        "id": 18097,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 18096,
                          "name": "_key",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18083,
                          "src": "1897:4:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1874:28:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IntermediateResults_$8450_storage",
                          "typeString": "struct DaoStructs.IntermediateResults storage ref"
                        }
                      },
                      "id": 18098,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "countedUntil",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8449,
                      "src": "1874:41:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "307830",
                          "id": 18100,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1926:3:63",
                          "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": 18099,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "1918:7:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 18101,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1918:12:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1874:56:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 18103,
                  "nodeType": "ExpressionStatement",
                  "src": "1874:56:63"
                }
              ]
            },
            "documentation": null,
            "id": 18105,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "resetIntermediateResults",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 18084,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18083,
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "scope": 18105,
                  "src": "1702:12:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 18082,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1702:7:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1701:14:63"
            },
            "payable": false,
            "returnParameters": {
              "id": 18085,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1735:0:63"
            },
            "scope": 18157,
            "src": "1668:269:63",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 18155,
              "nodeType": "Block",
              "src": "2172:456:63",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 18120,
                                "name": "CONTRACT_DAO_REWARDS_MANAGER",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1367,
                                "src": "2206:28:63",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 18121,
                                "name": "CONTRACT_DAO_VOTING_CLAIMS",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1358,
                                "src": "2236:26:63",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 18122,
                                "name": "CONTRACT_DAO_SPECIAL_VOTING_CLAIMS",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1361,
                                "src": "2264:34:63",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "id": 18123,
                            "isConstant": false,
                            "isInlineArray": true,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "2205:94:63",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          ],
                          "id": 18119,
                          "name": "sender_is_from",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18529,
                          "src": "2190:14:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_array$_t_bytes32_$3_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (bytes32[3] memory) view returns (bool)"
                          }
                        },
                        "id": 18124,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2190:110:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 18118,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "2182:7:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 18125,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2182:119:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18126,
                  "nodeType": "ExpressionStatement",
                  "src": "2182:119:63"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 18132,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 18127,
                          "name": "allIntermediateResults",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18039,
                          "src": "2311:22:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IntermediateResults_$8450_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.IntermediateResults storage ref)"
                          }
                        },
                        "id": 18129,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 18128,
                          "name": "_key",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18107,
                          "src": "2334:4:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2311:28:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IntermediateResults_$8450_storage",
                          "typeString": "struct DaoStructs.IntermediateResults storage ref"
                        }
                      },
                      "id": 18130,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "countedUntil",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8449,
                      "src": "2311:41:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 18131,
                      "name": "_countedUntil",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18109,
                      "src": "2355:13:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2311:57:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 18133,
                  "nodeType": "ExpressionStatement",
                  "src": "2311:57:63"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 18139,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 18134,
                          "name": "allIntermediateResults",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18039,
                          "src": "2378:22:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IntermediateResults_$8450_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.IntermediateResults storage ref)"
                          }
                        },
                        "id": 18136,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 18135,
                          "name": "_key",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18107,
                          "src": "2401:4:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2378:28:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IntermediateResults_$8450_storage",
                          "typeString": "struct DaoStructs.IntermediateResults storage ref"
                        }
                      },
                      "id": 18137,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "currentForCount",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8443,
                      "src": "2378:44:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 18138,
                      "name": "_currentForCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18111,
                      "src": "2425:16:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2378:63:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 18140,
                  "nodeType": "ExpressionStatement",
                  "src": "2378:63:63"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 18146,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 18141,
                          "name": "allIntermediateResults",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18039,
                          "src": "2451:22:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IntermediateResults_$8450_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.IntermediateResults storage ref)"
                          }
                        },
                        "id": 18143,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 18142,
                          "name": "_key",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18107,
                          "src": "2474:4:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2451:28:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IntermediateResults_$8450_storage",
                          "typeString": "struct DaoStructs.IntermediateResults storage ref"
                        }
                      },
                      "id": 18144,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "currentAgainstCount",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8445,
                      "src": "2451:48:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 18145,
                      "name": "_currentAgainstCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18113,
                      "src": "2502:20:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2451:71:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 18147,
                  "nodeType": "ExpressionStatement",
                  "src": "2451:71:63"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 18153,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 18148,
                          "name": "allIntermediateResults",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18039,
                          "src": "2532:22:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IntermediateResults_$8450_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.IntermediateResults storage ref)"
                          }
                        },
                        "id": 18150,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 18149,
                          "name": "_key",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18107,
                          "src": "2555:4:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2532:28:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IntermediateResults_$8450_storage",
                          "typeString": "struct DaoStructs.IntermediateResults storage ref"
                        }
                      },
                      "id": 18151,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "currentSumOfEffectiveBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8447,
                      "src": "2532:57:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 18152,
                      "name": "_currentSumOfEffectiveBalance",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18115,
                      "src": "2592:29:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2532:89:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 18154,
                  "nodeType": "ExpressionStatement",
                  "src": "2532:89:63"
                }
              ]
            },
            "documentation": null,
            "id": 18156,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setIntermediateResults",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 18116,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18107,
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "scope": 18156,
                  "src": "1984:12:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 18106,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1984:7:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18109,
                  "name": "_countedUntil",
                  "nodeType": "VariableDeclaration",
                  "scope": 18156,
                  "src": "2006:21:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18108,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2006:7:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18111,
                  "name": "_currentForCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 18156,
                  "src": "2037:24:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18110,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2037:7:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18113,
                  "name": "_currentAgainstCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 18156,
                  "src": "2071:28:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18112,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2071:7:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18115,
                  "name": "_currentSumOfEffectiveBalance",
                  "nodeType": "VariableDeclaration",
                  "scope": 18156,
                  "src": "2109:37:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18114,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2109:7:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1974:178:63"
            },
            "payable": false,
            "returnParameters": {
              "id": 18117,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2172:0:63"
            },
            "scope": 18157,
            "src": "1943:685:63",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 18158,
        "src": "161:2469:63"
      }
    ],
    "src": "0:2631:63"
  },
  "legacyAST": {
    "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/IntermediateResultsStorage.sol",
    "exportedSymbols": {
      "IntermediateResultsStorage": [
        18157
      ]
    },
    "id": 18158,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 18012,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:63"
      },
      {
        "absolutePath": "@digix/cacp-contracts-dao/contracts/ResolverClient.sol",
        "file": "@digix/cacp-contracts-dao/contracts/ResolverClient.sol",
        "id": 18013,
        "nodeType": "ImportDirective",
        "scope": 18158,
        "sourceUnit": 18629,
        "src": "26:64:63",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/common/DaoConstants.sol",
        "file": "../common/DaoConstants.sol",
        "id": 18014,
        "nodeType": "ImportDirective",
        "scope": 18158,
        "sourceUnit": 1630,
        "src": "91:36:63",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/lib/DaoStructs.sol",
        "file": "../lib/DaoStructs.sol",
        "id": 18015,
        "nodeType": "ImportDirective",
        "scope": 18158,
        "sourceUnit": 8452,
        "src": "128:31:63",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 18016,
              "name": "ResolverClient",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 18628,
              "src": "200:14:63",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ResolverClient_$18628",
                "typeString": "contract ResolverClient"
              }
            },
            "id": 18017,
            "nodeType": "InheritanceSpecifier",
            "src": "200:14:63"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 18018,
              "name": "DaoConstants",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1629,
              "src": "216:12:63",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoConstants_$1629",
                "typeString": "contract DaoConstants"
              }
            },
            "id": 18019,
            "nodeType": "InheritanceSpecifier",
            "src": "216:12:63"
          }
        ],
        "contractDependencies": [
          1629,
          18628
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 18157,
        "linearizedBaseContracts": [
          18157,
          1629,
          18628
        ],
        "name": "IntermediateResultsStorage",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 18022,
            "libraryName": {
              "contractScope": null,
              "id": 18020,
              "name": "DaoStructs",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8451,
              "src": "241:10:63",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoStructs_$8451",
                "typeString": "library DaoStructs"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "235:52:63",
            "typeName": {
              "contractScope": null,
              "id": 18021,
              "name": "DaoStructs.IntermediateResults",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8450,
              "src": "256:30:63",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_IntermediateResults_$8450_storage_ptr",
                "typeString": "struct DaoStructs.IntermediateResults"
              }
            }
          },
          {
            "body": {
              "id": 18034,
              "nodeType": "Block",
              "src": "331:80:63",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 18029,
                            "name": "CONTRACT_STORAGE_INTERMEDIATE_RESULTS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1427,
                            "src": "354:37:63",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 18030,
                            "name": "_resolver",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18024,
                            "src": "393:9:63",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 18028,
                          "name": "init",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18596,
                          "src": "349:4:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$",
                            "typeString": "function (bytes32,address) returns (bool)"
                          }
                        },
                        "id": 18031,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "349:54:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 18027,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "341:7:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 18032,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "341:63:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18033,
                  "nodeType": "ExpressionStatement",
                  "src": "341:63:63"
                }
              ]
            },
            "documentation": null,
            "id": 18035,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 18025,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18024,
                  "name": "_resolver",
                  "nodeType": "VariableDeclaration",
                  "scope": 18035,
                  "src": "305:17:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18023,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "305:7:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "304:19:63"
            },
            "payable": false,
            "returnParameters": {
              "id": 18026,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "331:0:63"
            },
            "scope": 18157,
            "src": "293:118:63",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 18039,
            "name": "allIntermediateResults",
            "nodeType": "VariableDeclaration",
            "scope": 18157,
            "src": "983:74:63",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IntermediateResults_$8450_storage_$",
              "typeString": "mapping(bytes32 => struct DaoStructs.IntermediateResults)"
            },
            "typeName": {
              "id": 18038,
              "keyType": {
                "id": 18036,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "992:7:63",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "983:51:63",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IntermediateResults_$8450_storage_$",
                "typeString": "mapping(bytes32 => struct DaoStructs.IntermediateResults)"
              },
              "valueType": {
                "contractScope": null,
                "id": 18037,
                "name": "DaoStructs.IntermediateResults",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 8450,
                "src": "1003:30:63",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_IntermediateResults_$8450_storage_ptr",
                  "typeString": "struct DaoStructs.IntermediateResults"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 18080,
              "nodeType": "Block",
              "src": "1335:327:63",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 18057,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 18052,
                      "name": "_countedUntil",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18044,
                      "src": "1345:13:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 18053,
                          "name": "allIntermediateResults",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18039,
                          "src": "1361:22:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IntermediateResults_$8450_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.IntermediateResults storage ref)"
                          }
                        },
                        "id": 18055,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 18054,
                          "name": "_key",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18041,
                          "src": "1384:4:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1361:28:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IntermediateResults_$8450_storage",
                          "typeString": "struct DaoStructs.IntermediateResults storage ref"
                        }
                      },
                      "id": 18056,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "countedUntil",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8449,
                      "src": "1361:41:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1345:57:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 18058,
                  "nodeType": "ExpressionStatement",
                  "src": "1345:57:63"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 18064,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 18059,
                      "name": "_currentForCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18046,
                      "src": "1412:16:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 18060,
                          "name": "allIntermediateResults",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18039,
                          "src": "1431:22:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IntermediateResults_$8450_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.IntermediateResults storage ref)"
                          }
                        },
                        "id": 18062,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 18061,
                          "name": "_key",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18041,
                          "src": "1454:4:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1431:28:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IntermediateResults_$8450_storage",
                          "typeString": "struct DaoStructs.IntermediateResults storage ref"
                        }
                      },
                      "id": 18063,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "currentForCount",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8443,
                      "src": "1431:44:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1412:63:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 18065,
                  "nodeType": "ExpressionStatement",
                  "src": "1412:63:63"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 18071,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 18066,
                      "name": "_currentAgainstCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18048,
                      "src": "1485:20:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 18067,
                          "name": "allIntermediateResults",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18039,
                          "src": "1508:22:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IntermediateResults_$8450_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.IntermediateResults storage ref)"
                          }
                        },
                        "id": 18069,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 18068,
                          "name": "_key",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18041,
                          "src": "1531:4:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1508:28:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IntermediateResults_$8450_storage",
                          "typeString": "struct DaoStructs.IntermediateResults storage ref"
                        }
                      },
                      "id": 18070,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "currentAgainstCount",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8445,
                      "src": "1508:48:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1485:71:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 18072,
                  "nodeType": "ExpressionStatement",
                  "src": "1485:71:63"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 18078,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 18073,
                      "name": "_currentSumOfEffectiveBalance",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18050,
                      "src": "1566:29:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 18074,
                          "name": "allIntermediateResults",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18039,
                          "src": "1598:22:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IntermediateResults_$8450_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.IntermediateResults storage ref)"
                          }
                        },
                        "id": 18076,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 18075,
                          "name": "_key",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18041,
                          "src": "1621:4:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1598:28:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IntermediateResults_$8450_storage",
                          "typeString": "struct DaoStructs.IntermediateResults storage ref"
                        }
                      },
                      "id": 18077,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "currentSumOfEffectiveBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8447,
                      "src": "1598:57:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1566:89:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 18079,
                  "nodeType": "ExpressionStatement",
                  "src": "1566:89:63"
                }
              ]
            },
            "documentation": null,
            "id": 18081,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getIntermediateResults",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 18042,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18041,
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "scope": 18081,
                  "src": "1096:12:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 18040,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1096:7:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1095:14:63"
            },
            "payable": false,
            "returnParameters": {
              "id": 18051,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18044,
                  "name": "_countedUntil",
                  "nodeType": "VariableDeclaration",
                  "scope": 18081,
                  "src": "1168:21:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18043,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1168:7:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18046,
                  "name": "_currentForCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 18081,
                  "src": "1203:24:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18045,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1203:7:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18048,
                  "name": "_currentAgainstCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 18081,
                  "src": "1241:28:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18047,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1241:7:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18050,
                  "name": "_currentSumOfEffectiveBalance",
                  "nodeType": "VariableDeclaration",
                  "scope": 18081,
                  "src": "1283:37:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18049,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1283:7:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1154:176:63"
            },
            "scope": 18157,
            "src": "1064:598:63",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 18104,
              "nodeType": "Block",
              "src": "1735:202:63",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 18088,
                                "name": "CONTRACT_DAO_REWARDS_MANAGER",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1367,
                                "src": "1769:28:63",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 18089,
                                "name": "CONTRACT_DAO_VOTING_CLAIMS",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1358,
                                "src": "1799:26:63",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 18090,
                                "name": "CONTRACT_DAO_SPECIAL_VOTING_CLAIMS",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1361,
                                "src": "1827:34:63",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "id": 18091,
                            "isConstant": false,
                            "isInlineArray": true,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "1768:94:63",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          ],
                          "id": 18087,
                          "name": "sender_is_from",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18529,
                          "src": "1753:14:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_array$_t_bytes32_$3_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (bytes32[3] memory) view returns (bool)"
                          }
                        },
                        "id": 18092,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1753:110:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 18086,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "1745:7:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 18093,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1745:119:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18094,
                  "nodeType": "ExpressionStatement",
                  "src": "1745:119:63"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 18102,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 18095,
                          "name": "allIntermediateResults",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18039,
                          "src": "1874:22:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IntermediateResults_$8450_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.IntermediateResults storage ref)"
                          }
                        },
                        "id": 18097,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 18096,
                          "name": "_key",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18083,
                          "src": "1897:4:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1874:28:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IntermediateResults_$8450_storage",
                          "typeString": "struct DaoStructs.IntermediateResults storage ref"
                        }
                      },
                      "id": 18098,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "countedUntil",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8449,
                      "src": "1874:41:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "307830",
                          "id": 18100,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1926:3:63",
                          "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": 18099,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "1918:7:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 18101,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1918:12:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1874:56:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 18103,
                  "nodeType": "ExpressionStatement",
                  "src": "1874:56:63"
                }
              ]
            },
            "documentation": null,
            "id": 18105,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "resetIntermediateResults",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 18084,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18083,
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "scope": 18105,
                  "src": "1702:12:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 18082,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1702:7:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1701:14:63"
            },
            "payable": false,
            "returnParameters": {
              "id": 18085,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1735:0:63"
            },
            "scope": 18157,
            "src": "1668:269:63",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 18155,
              "nodeType": "Block",
              "src": "2172:456:63",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 18120,
                                "name": "CONTRACT_DAO_REWARDS_MANAGER",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1367,
                                "src": "2206:28:63",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 18121,
                                "name": "CONTRACT_DAO_VOTING_CLAIMS",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1358,
                                "src": "2236:26:63",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 18122,
                                "name": "CONTRACT_DAO_SPECIAL_VOTING_CLAIMS",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1361,
                                "src": "2264:34:63",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "id": 18123,
                            "isConstant": false,
                            "isInlineArray": true,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "2205:94:63",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          ],
                          "id": 18119,
                          "name": "sender_is_from",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18529,
                          "src": "2190:14:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_array$_t_bytes32_$3_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (bytes32[3] memory) view returns (bool)"
                          }
                        },
                        "id": 18124,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2190:110:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 18118,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "2182:7:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 18125,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2182:119:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 18126,
                  "nodeType": "ExpressionStatement",
                  "src": "2182:119:63"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 18132,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 18127,
                          "name": "allIntermediateResults",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18039,
                          "src": "2311:22:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IntermediateResults_$8450_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.IntermediateResults storage ref)"
                          }
                        },
                        "id": 18129,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 18128,
                          "name": "_key",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18107,
                          "src": "2334:4:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2311:28:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IntermediateResults_$8450_storage",
                          "typeString": "struct DaoStructs.IntermediateResults storage ref"
                        }
                      },
                      "id": 18130,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "countedUntil",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8449,
                      "src": "2311:41:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 18131,
                      "name": "_countedUntil",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18109,
                      "src": "2355:13:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2311:57:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 18133,
                  "nodeType": "ExpressionStatement",
                  "src": "2311:57:63"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 18139,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 18134,
                          "name": "allIntermediateResults",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18039,
                          "src": "2378:22:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IntermediateResults_$8450_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.IntermediateResults storage ref)"
                          }
                        },
                        "id": 18136,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 18135,
                          "name": "_key",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18107,
                          "src": "2401:4:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2378:28:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IntermediateResults_$8450_storage",
                          "typeString": "struct DaoStructs.IntermediateResults storage ref"
                        }
                      },
                      "id": 18137,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "currentForCount",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8443,
                      "src": "2378:44:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 18138,
                      "name": "_currentForCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18111,
                      "src": "2425:16:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2378:63:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 18140,
                  "nodeType": "ExpressionStatement",
                  "src": "2378:63:63"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 18146,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 18141,
                          "name": "allIntermediateResults",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18039,
                          "src": "2451:22:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IntermediateResults_$8450_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.IntermediateResults storage ref)"
                          }
                        },
                        "id": 18143,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 18142,
                          "name": "_key",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18107,
                          "src": "2474:4:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2451:28:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IntermediateResults_$8450_storage",
                          "typeString": "struct DaoStructs.IntermediateResults storage ref"
                        }
                      },
                      "id": 18144,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "currentAgainstCount",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8445,
                      "src": "2451:48:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 18145,
                      "name": "_currentAgainstCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18113,
                      "src": "2502:20:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2451:71:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 18147,
                  "nodeType": "ExpressionStatement",
                  "src": "2451:71:63"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 18153,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 18148,
                          "name": "allIntermediateResults",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18039,
                          "src": "2532:22:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IntermediateResults_$8450_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.IntermediateResults storage ref)"
                          }
                        },
                        "id": 18150,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 18149,
                          "name": "_key",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18107,
                          "src": "2555:4:63",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2532:28:63",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IntermediateResults_$8450_storage",
                          "typeString": "struct DaoStructs.IntermediateResults storage ref"
                        }
                      },
                      "id": 18151,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "currentSumOfEffectiveBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8447,
                      "src": "2532:57:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 18152,
                      "name": "_currentSumOfEffectiveBalance",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 18115,
                      "src": "2592:29:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2532:89:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 18154,
                  "nodeType": "ExpressionStatement",
                  "src": "2532:89:63"
                }
              ]
            },
            "documentation": null,
            "id": 18156,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setIntermediateResults",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 18116,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 18107,
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "scope": 18156,
                  "src": "1984:12:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 18106,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1984:7:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18109,
                  "name": "_countedUntil",
                  "nodeType": "VariableDeclaration",
                  "scope": 18156,
                  "src": "2006:21:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 18108,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2006:7:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18111,
                  "name": "_currentForCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 18156,
                  "src": "2037:24:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18110,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2037:7:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18113,
                  "name": "_currentAgainstCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 18156,
                  "src": "2071:28:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18112,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2071:7:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 18115,
                  "name": "_currentSumOfEffectiveBalance",
                  "nodeType": "VariableDeclaration",
                  "scope": 18156,
                  "src": "2109:37:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 18114,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2109:7:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1974:178:63"
            },
            "payable": false,
            "returnParameters": {
              "id": 18117,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2172:0:63"
            },
            "scope": 18157,
            "src": "1943:685:63",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 18158,
        "src": "161:2469:63"
      }
    ],
    "src": "0:2631:63"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {
    "42": {
      "events": {},
      "links": {},
      "address": "0x7241a806e5357cbc885e0b185a51e43a53e4e8e8",
      "transactionHash": "0x6a95cd3012f6f1d5d9ce9bd5f9c8affd5a6013a3b2b2887b004299a0bffe7a6d"
    }
  },
  "schemaVersion": "2.0.2",
  "updatedAt": "2020-03-16T08:53:12.913Z"
}