{
  "contractName": "DaoListingService",
  "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": "_count",
          "type": "uint256"
        },
        {
          "name": "_from_start",
          "type": "bool"
        }
      ],
      "name": "listModerators",
      "outputs": [
        {
          "name": "_moderators",
          "type": "address[]"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_currentModerator",
          "type": "address"
        },
        {
          "name": "_count",
          "type": "uint256"
        },
        {
          "name": "_from_start",
          "type": "bool"
        }
      ],
      "name": "listModeratorsFrom",
      "outputs": [
        {
          "name": "_moderators",
          "type": "address[]"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_count",
          "type": "uint256"
        },
        {
          "name": "_from_start",
          "type": "bool"
        }
      ],
      "name": "listParticipants",
      "outputs": [
        {
          "name": "_participants",
          "type": "address[]"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_currentParticipant",
          "type": "address"
        },
        {
          "name": "_count",
          "type": "uint256"
        },
        {
          "name": "_from_start",
          "type": "bool"
        }
      ],
      "name": "listParticipantsFrom",
      "outputs": [
        {
          "name": "_participants",
          "type": "address[]"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_count",
          "type": "uint256"
        },
        {
          "name": "_from_start",
          "type": "bool"
        }
      ],
      "name": "listProposals",
      "outputs": [
        {
          "name": "_proposals",
          "type": "bytes32[]"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_currentProposal",
          "type": "bytes32"
        },
        {
          "name": "_count",
          "type": "uint256"
        },
        {
          "name": "_from_start",
          "type": "bool"
        }
      ],
      "name": "listProposalsFrom",
      "outputs": [
        {
          "name": "_proposals",
          "type": "bytes32[]"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_stateId",
          "type": "bytes32"
        },
        {
          "name": "_count",
          "type": "uint256"
        },
        {
          "name": "_from_start",
          "type": "bool"
        }
      ],
      "name": "listProposalsInState",
      "outputs": [
        {
          "name": "_proposals",
          "type": "bytes32[]"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_stateId",
          "type": "bytes32"
        },
        {
          "name": "_currentProposal",
          "type": "bytes32"
        },
        {
          "name": "_count",
          "type": "uint256"
        },
        {
          "name": "_from_start",
          "type": "bool"
        }
      ],
      "name": "listProposalsInStateFrom",
      "outputs": [
        {
          "name": "_proposals",
          "type": "bytes32[]"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_count",
          "type": "uint256"
        },
        {
          "name": "_from_start",
          "type": "bool"
        }
      ],
      "name": "listProposalVersions",
      "outputs": [
        {
          "name": "_versions",
          "type": "bytes32[]"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_currentVersion",
          "type": "bytes32"
        },
        {
          "name": "_count",
          "type": "uint256"
        },
        {
          "name": "_from_start",
          "type": "bool"
        }
      ],
      "name": "listProposalVersionsFrom",
      "outputs": [
        {
          "name": "_versions",
          "type": "bytes32[]"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405260006001026003906000191690556000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f70726f706f73616c5f73746174655f70726570726f706f73616c0000000000006005906000191690557f70726f706f73616c5f73746174655f64726166740000000000000000000000006006906000191690557f70726f706f73616c5f73746174655f6d6f6465726174656400000000000000006007906000191690557f70726f706f73616c5f73746174655f6f6e676f696e67000000000000000000006008906000191690557f70726f706f73616c5f73746174655f636c6f73656400000000000000000000006009906000191690557f70726f706f73616c5f73746174655f6172636869766564000000000000000000600a906000191690556001600b556002600c556003600d556001600e556002600f5560036010557f696e7465725f6467645f696400000000000000000000000000000000000000006011906000191690557f696e7465725f6d6f645f6467645f6964000000000000000000000000000000006012906000191690557f696e7465725f626f6e75735f63616c63756c6174696f6e5f69640000000000006013906000191690557f64616f00000000000000000000000000000000000000000000000000000000006014906000191690557f64616f3a7370656369616c3a70726f706f73616c0000000000000000000000006015906000191690557f64616f3a7374616b652d6c6f636b696e670000000000000000000000000000006016906000191690557f64616f3a766f74696e67000000000000000000000000000000000000000000006017906000191690557f64616f3a766f74696e673a636c61696d730000000000000000000000000000006018906000191690557f64616f3a73766f74696e673a636c61696d7300000000000000000000000000006019906000191690557f64616f3a6964656e746974790000000000000000000000000000000000000000601a906000191690557f64616f3a726577617264732d6d616e6167657200000000000000000000000000601b906000191690557f64616f3a726577617264732d6578747261730000000000000000000000000000601c906000191690557f64616f3a726f6c65730000000000000000000000000000000000000000000000601d906000191690557f64616f3a66756e64696e672d6d616e6167657200000000000000000000000000601e906000191690557f64616f3a77686974656c697374696e6700000000000000000000000000000000601f906000191690557f64616f3a696e666f726d6174696f6e00000000000000000000000000000000006020906000191690557f736572766963653a726f6c6500000000000000000000000000000000000000006021906000191690557f736572766963653a64616f3a696e666f000000000000000000000000000000006022906000191690557f736572766963653a64616f3a6c697374696e67000000000000000000000000006023906000191690557f736572766963653a64616f3a63616c63756c61746f72000000000000000000006024906000191690557f73746f726167653a64616f0000000000000000000000000000000000000000006025906000191690557f73746f726167653a64616f3a636f756e746572000000000000000000000000006026906000191690557f73746f726167653a64616f3a75706772616465000000000000000000000000006027906000191690557f73746f726167653a64616f3a6964656e746974790000000000000000000000006028906000191690557f73746f726167653a64616f3a706f696e747300000000000000000000000000006029906000191690557f73746f726167653a64616f3a7370656369616c00000000000000000000000000602a906000191690557f73746f726167653a64616f3a636f6e6669670000000000000000000000000000602b906000191690557f73746f726167653a64616f3a7374616b65000000000000000000000000000000602c906000191690557f73746f726167653a64616f3a7265776172647300000000000000000000000000602d906000191690557f73746f726167653a64616f3a77686974656c697374696e670000000000000000602e906000191690557f73746f726167653a696e7465726d6564696174653a726573756c747300000000602f906000191690557f743a6467640000000000000000000000000000000000000000000000000000006030906000191690557f743a6467780000000000000000000000000000000000000000000000000000006031906000191690557f743a6261646765000000000000000000000000000000000000000000000000006032906000191690556001603360006101000a81548160ff021916908360ff1602179055506002603360016101000a81548160ff021916908360ff1602179055506003603360026101000a81548160ff021916908360ff1602179055506004603360036101000a81548160ff021916908360ff1602179055506276a7006034557f6d696e5f6467645f7061727469636970616e74000000000000000000000000006035906000191690557f6d696e5f6467645f6d6f64657261746f720000000000000000000000000000006036906000191690557f6d696e5f72657075746174696f6e5f6d6f64657261746f7200000000000000006037906000191690557f6c6f636b696e675f70686173655f6475726174696f6e000000000000000000006038906000191690557f717561727465725f6475726174696f6e000000000000000000000000000000006039906000191690557f766f74696e675f636f6d6d69745f706861736500000000000000000000000000603a906000191690557f766f74696e675f70686173655f746f74616c0000000000000000000000000000603b906000191690557f696e746572696d5f766f74696e675f636f6d6d69745f70686173650000000000603c906000191690557f696e746572696d5f766f74696e675f70686173655f746f74616c000000000000603d906000191690557f64726166745f71756f72756d5f66697865645f6e756d657261746f7200000000603e906000191690557f64726166745f71756f72756d5f66697865645f64656e6f6d696e61746f720000603f906000191690557f64726166745f71756f72756d5f73666163746f725f6e756d657261746f7200006040906000191690557f64726166745f71756f72756d5f73666163746f725f64656e6f6d696e61746f726041906000191690557f766f74655f71756f72756d5f66697865645f6e756d657261746f7200000000006042906000191690557f766f74655f71756f72756d5f66697865645f64656e6f6d696e61746f720000006043906000191690557f766f74655f71756f72756d5f73666163746f725f6e756d657261746f720000006044906000191690557f766f74655f71756f72756d5f73666163746f725f64656e6f6d696e61746f72006045906000191690557f66696e616c5f7265776172645f73666163746f725f6e756d657261746f7200006046906000191690557f66696e616c5f7265776172645f73666163746f725f64656e6f6d696e61746f726047906000191690557f64726166745f71756f74615f6e756d657261746f7200000000000000000000006048906000191690557f64726166745f71756f74615f64656e6f6d696e61746f720000000000000000006049906000191690557f766f74696e675f71756f74615f6e756d657261746f7200000000000000000000604a906000191690557f766f74696e675f71756f74615f64656e6f6d696e61746f720000000000000000604b906000191690557f6d696e696d616c5f717000000000000000000000000000000000000000000000604c906000191690557f717561727465725f706f696e745f7363616c696e675f666163746f7200000000604d906000191690557f7265705f706f696e745f7363616c696e675f666163746f720000000000000000604e906000191690557f6d696e696d616c5f6d6f645f7170000000000000000000000000000000000000604f906000191690557f6d6f645f71705f7363616c696e675f666163746f7200000000000000000000006050906000191690557f6d6f645f7265705f706f696e745f7363616c696e675f666163746f72000000006051906000191690557f717561727465725f706f696e745f64726166745f766f746500000000000000006052906000191690557f717561727465725f706f696e745f766f746500000000000000000000000000006053906000191690557f717561727465725f706f696e745f696e746572696d5f766f74650000000000006054906000191690557f715f705f6d696c6573746f6e655f636f6d706c6574696f6e00000000000000006055906000191690557f626f6e75735f72657075746174696f6e5f6e756d657261746f720000000000006056906000191690557f626f6e75735f72657075746174696f6e5f64656e6f6d696e61746f72000000006057906000191690557f7370656369616c5f70726f706f73616c5f636f6d6d69745f70686173650000006058906000191690557f7370656369616c5f70726f706f73616c5f70686173655f746f74616c000000006059906000191690557f636f6e6669675f7370656369616c5f71756f74615f6e756d657261746f720000605a906000191690557f636f6e6669675f7370656369616c5f71756f74615f64656e6f6d696e61746f72605b906000191690557f7370656369616c5f71756f72756d5f6e756d657261746f720000000000000000605c906000191690557f7370656369616c5f71756f72756d5f64656e6f6d696e61746f72000000000000605d906000191690557f636f6e6669675f6d61785f72657075746174696f6e5f646564756374696f6e00605e906000191690557f636f6e6669675f70756e6973686d656e745f6e6f745f6c6f636b696e67000000605f906000191690557f636f6e6669675f7265705f7065725f65787472615f71705f6e756d00000000006060906000191690557f636f6e6669675f7265705f7065725f65787472615f71705f64656e00000000006061906000191690557f636f6e6669675f6d61785f6d5f72705f646564756374696f6e000000000000006062906000191690557f636f6e6669675f7265705f7065725f65787472615f6d5f71705f6e756d0000006063906000191690557f636f6e6669675f7265705f7065725f65787472615f6d5f71705f64656e0000006064906000191690557f636f6e6669675f6d6f645f706f7274696f6e5f6e756d000000000000000000006065906000191690557f636f6e6669675f6d6f645f706f7274696f6e5f64656e000000000000000000006066906000191690557f636f6e6669675f64726166745f766f74696e675f7068617365000000000000006067906000191690557f636f6e6669675f72705f626f6f73745f7065725f6261646765000000000000006068906000191690557f636f6e6669675f636c61696d696e675f646561646c696e6500000000000000006069906000191690557f636f6e6669675f70726570726f706f73616c5f636f6c6c61746572616c000000606a906000191690557f636f6e6669675f6d61785f66756e64696e675f6e6f6e44696769780000000000606b906000191690557f636f6e6669675f6d61785f6d696c6573746f6e65735f6e6f6e44696769780000606c906000191690557f636f6e6669675f6e6f6e44696769785f70726f706f73616c5f63617000000000606d906000191690557f636f6e6669675f646561645f6475726174696f6e000000000000000000000000606e906000191690557f636f6e6669675f63765f72657075746174696f6e000000000000000000000000606f906000191690553480156200113457600080fd5b506040516020806200347f83398101806040528101908080519060200190929190505050620011756023548262001188640100000000026401000000009004565b15156200118157600080fd5b5062001419565b6000808273ffffffffffffffffffffffffffffffffffffffff16636d19a8826040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015620011f057600080fd5b505af115801562001205573d6000803e3d6000fd5b505050506040513d60208110156200121c57600080fd5b810190808051906020019092919050505090506000151581151514156200140d5730600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600181600019169055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c0f6ef4a600154600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015620013ba57600080fd5b505af1158015620013cf573d6000803e3d6000fd5b505050506040513d6020811015620013e657600080fd5b810190808051906020019092919050505015156200140357600080fd5b6001915062001412565b600091505b5092915050565b61205680620014296000396000f3006080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304f3bcec146100d5578063199a681b1461012c5780633943380c146101c85780633f83acff146101fb57806340c7174e1461026c5780634434afda1461031a5780634ddaee82146103a8578063541a073b1461045257806385f0e4bf146104fc57806396fe8e651461058a5780639cab7a7f14610638578063b9a50c79146106d4578063db4ecbc114610770578063f4f9fadc146107c7575b600080fd5b3480156100e157600080fd5b506100ea610855565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b5061017160048036038101908080356000191690602001909291908035906020019092919080351515906020019092919050505061087a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156101b4578082015181840152602081019050610199565b505050509050019250505060405180910390f35b3480156101d457600080fd5b506101dd61091c565b60405180826000191660001916815260200191505060405180910390f35b34801561020757600080fd5b5061022a6004803603810190808035600019169060200190929190505050610922565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561027857600080fd5b506102c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035151590602001909291905050506109fe565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156103065780820151818401526020810190506102eb565b505050509050019250505060405180910390f35b34801561032657600080fd5b5061035160048036038101908080359060200190929190803515159060200190929190505050610aa0565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610394578082015181840152602081019050610379565b505050509050019250505060405180910390f35b3480156103b457600080fd5b506103fb6004803603810190808035600019169060200190929190803560001916906020019092919080359060200190929190803515159060200190929190505050610b40565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561043e578082015181840152602081019050610423565b505050509050019250505060405180910390f35b34801561045e57600080fd5b506104a56004803603810190808035600019169060200190929190803560001916906020019092919080359060200190929190803515159060200190929190505050610bf7565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104e85780820151818401526020810190506104cd565b505050509050019250505060405180910390f35b34801561050857600080fd5b5061053360048036038101908080359060200190929190803515159060200190929190505050610c9b565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561057657808201518184015260208101905061055b565b505050509050019250505060405180910390f35b34801561059657600080fd5b506105e1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803515159060200190929190505050610d3b565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610624578082015181840152602081019050610609565b505050509050019250505060405180910390f35b34801561064457600080fd5b5061067d600480360381019080803560001916906020019092919080359060200190929190803515159060200190929190505050610ddd565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106c05780820151818401526020810190506106a5565b505050509050019250505060405180910390f35b3480156106e057600080fd5b50610719600480360381019080803560001916906020019092919080359060200190929190803515159060200190929190505050610e7f565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561075c578082015181840152602081019050610741565b505050509050019250505060405180910390f35b34801561077c57600080fd5b50610785610f34565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107d357600080fd5b506107fe60048036038101908080359060200190929190803515159060200190929190505050610f5a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610841578082015181840152602081019050610826565b505050509050019250505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606109138484610889610ffa565b73ffffffffffffffffffffffffffffffffffffffff1663cfd591726108ac610ffa565b73ffffffffffffffffffffffffffffffffffffffff1663f0ab3dd96108cf610ffa565b73ffffffffffffffffffffffffffffffffffffffff1663237286e96108f2610ffa565b73ffffffffffffffffffffffffffffffffffffffff166370a6f5918c61100c565b90509392505050565b60015481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156109bc57600080fd5b505af11580156109d0573d6000803e3d6000fd5b505050506040513d60208110156109e657600080fd5b81019080805190602001909291905050509050919050565b6060610a978484610a0d61104d565b73ffffffffffffffffffffffffffffffffffffffff1663583fd501610a3061104d565b73ffffffffffffffffffffffffffffffffffffffff1663bbb03dc2610a5361104d565b73ffffffffffffffffffffffffffffffffffffffff166344e518a3610a7661104d565b73ffffffffffffffffffffffffffffffffffffffff166363a640678c61105f565b90509392505050565b6060610b3883610aae610ffa565b73ffffffffffffffffffffffffffffffffffffffff1663cfd59172610ad1610ffa565b73ffffffffffffffffffffffffffffffffffffffff1663f0ab3dd9610af4610ffa565b73ffffffffffffffffffffffffffffffffffffffff1663237286e9610b17610ffa565b73ffffffffffffffffffffffffffffffffffffffff166370a6f5918b6110a0565b905092915050565b6060610b4a6111e8565b1515610b5557600080fd5b610bed858585610b63610ffa565b73ffffffffffffffffffffffffffffffffffffffff1663e7853aac610b86610ffa565b73ffffffffffffffffffffffffffffffffffffffff16631d47c3d3610ba9610ffa565b73ffffffffffffffffffffffffffffffffffffffff1663a692e0ef610bcc610ffa565b73ffffffffffffffffffffffffffffffffffffffff16631478fff18d611302565b9050949350505050565b6060610c91858585610c07610ffa565b73ffffffffffffffffffffffffffffffffffffffff1663e4156675610c2a610ffa565b73ffffffffffffffffffffffffffffffffffffffff16630c012e59610c4d610ffa565b73ffffffffffffffffffffffffffffffffffffffff166347d621a3610c70610ffa565b73ffffffffffffffffffffffffffffffffffffffff166356674c9f8d611302565b9050949350505050565b6060610d3383610ca961104d565b73ffffffffffffffffffffffffffffffffffffffff1663583fd501610ccc61104d565b73ffffffffffffffffffffffffffffffffffffffff1663bbb03dc2610cef61104d565b73ffffffffffffffffffffffffffffffffffffffff166344e518a3610d1261104d565b73ffffffffffffffffffffffffffffffffffffffff166363a640678b611346565b905092915050565b6060610dd48484610d4a61104d565b73ffffffffffffffffffffffffffffffffffffffff1663e3bd970e610d6d61104d565b73ffffffffffffffffffffffffffffffffffffffff166382624a2e610d9061104d565b73ffffffffffffffffffffffffffffffffffffffff16633e0fd265610db361104d565b73ffffffffffffffffffffffffffffffffffffffff16637bbad0b88c61105f565b90509392505050565b6060610e768484610dec610ffa565b73ffffffffffffffffffffffffffffffffffffffff1663e4156675610e0f610ffa565b73ffffffffffffffffffffffffffffffffffffffff16630c012e59610e32610ffa565b73ffffffffffffffffffffffffffffffffffffffff166347d621a3610e55610ffa565b73ffffffffffffffffffffffffffffffffffffffff166356674c9f8c61148e565b90509392505050565b6060610e896111e8565b1515610e9457600080fd5b610f2b8484610ea1610ffa565b73ffffffffffffffffffffffffffffffffffffffff1663e7853aac610ec4610ffa565b73ffffffffffffffffffffffffffffffffffffffff16631d47c3d3610ee7610ffa565b73ffffffffffffffffffffffffffffffffffffffff1663a692e0ef610f0a610ffa565b73ffffffffffffffffffffffffffffffffffffffff16631478fff18c61148e565b90509392505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060610ff283610f6861104d565b73ffffffffffffffffffffffffffffffffffffffff1663e3bd970e610f8b61104d565b73ffffffffffffffffffffffffffffffffffffffff166382624a2e610fae61104d565b73ffffffffffffffffffffffffffffffffffffffff16633e0fd265610fd161104d565b73ffffffffffffffffffffffffffffffffffffffff16637bbad0b88b611346565b905092915050565b6000611007602554610922565b905090565b6060811561102b576110248c8c60008b8b8b8b6115ff565b905061103e565b61103b8c8c60008d8d89896115ff565b90505b9b9a5050505050505050505050565b600061105a602c54610922565b905090565b6060811561107e576110778c8c60008b8b8b8b611901565b9050611091565b61108e8c8c60008d8d8989611901565b90505b9b9a5050505050505050505050565b606081156111435761113c8a8a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156110f557600080fd5b505af1158015611109573d6000803e3d6000fd5b505050506040513d602081101561111f57600080fd5b81019080805190602001909291905050508c60018b8b8b8b6115ff565b90506111da565b6111d788886040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561119057600080fd5b505af11580156111a4573d6000803e3d6000fd5b505050506040513d60208110156111ba57600080fd5b81019080805190602001909291905050508c60018d8d89896115ff565b90505b9a9950505050505050505050565b60003273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806112fd5750611227611cf9565b73ffffffffffffffffffffffffffffffffffffffff16639b19251a336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156112c157600080fd5b505af11580156112d5573d6000803e3d6000fd5b505050506040513d60208110156112eb57600080fd5b81019080805190602001909291905050505b905090565b606081156113225761131b8d8d8d60008c8c8c8c611d0b565b9050611336565b6113338d8d8d60008e8e8a8a611d0b565b90505b9c9b505050505050505050505050565b606081156113e9576113e28a8a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561139b57600080fd5b505af11580156113af573d6000803e3d6000fd5b505050506040513d60208110156113c557600080fd5b81019080805190602001909291905050508c60018b8b8b8b611901565b9050611480565b61147d88886040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561143657600080fd5b505af115801561144a573d6000803e3d6000fd5b505050506040513d602081101561146057600080fd5b81019080805190602001909291905050508c60018d8d8989611901565b90505b9a9950505050505050505050565b606081156115455761153e8c8b8b8f6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156114f757600080fd5b505af115801561150b573d6000803e3d6000fd5b505050506040513d602081101561152157600080fd5b81019080805190602001909291905050508d60018c8c8c8c611d0b565b90506115f0565b6115ed8c89898f6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156115a657600080fd5b505af11580156115ba573d6000803e3d6000fd5b505050506040513d60208110156115d057600080fd5b81019080805190602001909291905050508d60018e8e8a8a611d0b565b90505b9b9a5050505050505050505050565b606060008060006060600080935089896040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561165757600080fd5b505af115801561166b573d6000803e3d6000fd5b505050506040513d602081101561168157600080fd5b8101908080519060200190929190505050925060008c14806116ae57506000600102600019168360001916145b156116eb5760006040519080825280602002602001820160405280156116e35781602001602082028038833980820191505090505b5095506118f1565b8b60405190808252806020026020018201604052801561171a5781602001602082028038833980820191505090505b509150600115158b15151415611757578c82600081518110151561173a57fe5b906020019060200201906000191690816000191681525050600193505b8c90508394505b8b8510801561177557508260001916816000191614155b15611866578787826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156117d757600080fd5b505af11580156117eb573d6000803e3d6000fd5b505050506040513d602081101561180157600080fd5b81019080805190602001909291905050509050600060010260001916816000191614151561185957838060010194505080828681518110151561184057fe5b9060200190602002019060001916908160001916815250505b848060010195505061175e565b836040519080825280602002602001820160405280156118955781602001602082028038833980820191505090505b509550600094505b838510156118f05781858151811015156118b357fe5b9060200190602002015186868151811015156118cb57fe5b906020019060200201906000191690816000191681525050848060010195505061189d565b5b5050505050979650505050505050565b606060008060006060600080935089896040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561195957600080fd5b505af115801561196d573d6000803e3d6000fd5b505050506040513d602081101561198357600080fd5b8101908080519060200190929190505050925060008c14806119d15750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611a0e576000604051908082528060200260200182016040528015611a065781602001602082028038833980820191505090505b509550611ce9565b8b604051908082528060200260200182016040528015611a3d5781602001602082028038833980820191505090505b509150600115158b15151415611a9e578c826000815181101515611a5d57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600193505b8c90508394505b8b85108015611ae057508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15611c3a578787826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611b6657600080fd5b505af1158015611b7a573d6000803e3d6000fd5b505050506040513d6020811015611b9057600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515611c2d578380600101945050808286815181101515611bf057fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b8480600101955050611aa5565b83604051908082528060200260200182016040528015611c695781602001602082028038833980820191505090505b509550600094505b83851015611ce8578185815181101515611c8757fe5b906020019060200201518686815181101515611c9f57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508480600101955050611c71565b5b5050505050979650505050505050565b6000611d06602e54610922565b905090565b606060008060006060600080935089898f6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015611d7657600080fd5b505af1158015611d8a573d6000803e3d6000fd5b505050506040513d6020811015611da057600080fd5b8101908080519060200190929190505050925060008c1480611dcd57506000600102600019168360001916145b15611e0a576000604051908082528060200260200182016040528015611e025781602001602082028038833980820191505090505b509550612019565b8b604051908082528060200260200182016040528015611e395781602001602082028038833980820191505090505b5091508a15611e6f578c826000815181101515611e5257fe5b906020019060200201906000191690816000191681525050600193505b8c90508394505b8b85108015611e8d57508260001916816000191614155b15611f8e5787878f836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808360001916600019168152602001826000191660001916815260200192505050602060405180830381600087803b158015611eff57600080fd5b505af1158015611f13573d6000803e3d6000fd5b505050506040513d6020811015611f2957600080fd5b810190808051906020019092919050505090506000600102600019168160001916141515611f81578380600101945050808286815181101515611f6857fe5b9060200190602002019060001916908160001916815250505b8480600101955050611e76565b83604051908082528060200260200182016040528015611fbd5781602001602082028038833980820191505090505b509550600094505b83851015612018578185815181101515611fdb57fe5b906020019060200201518686815181101515611ff357fe5b9060200190602002019060001916908160001916815250508480600101955050611fc5565b5b5050505050989750505050505050505600a165627a7a723058202f854485e71dcc5f283e665dd7838fc024a873a2380434d209f28d59d2d455480029",
  "deployedBytecode": "0x6080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304f3bcec146100d5578063199a681b1461012c5780633943380c146101c85780633f83acff146101fb57806340c7174e1461026c5780634434afda1461031a5780634ddaee82146103a8578063541a073b1461045257806385f0e4bf146104fc57806396fe8e651461058a5780639cab7a7f14610638578063b9a50c79146106d4578063db4ecbc114610770578063f4f9fadc146107c7575b600080fd5b3480156100e157600080fd5b506100ea610855565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b5061017160048036038101908080356000191690602001909291908035906020019092919080351515906020019092919050505061087a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156101b4578082015181840152602081019050610199565b505050509050019250505060405180910390f35b3480156101d457600080fd5b506101dd61091c565b60405180826000191660001916815260200191505060405180910390f35b34801561020757600080fd5b5061022a6004803603810190808035600019169060200190929190505050610922565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561027857600080fd5b506102c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035151590602001909291905050506109fe565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156103065780820151818401526020810190506102eb565b505050509050019250505060405180910390f35b34801561032657600080fd5b5061035160048036038101908080359060200190929190803515159060200190929190505050610aa0565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610394578082015181840152602081019050610379565b505050509050019250505060405180910390f35b3480156103b457600080fd5b506103fb6004803603810190808035600019169060200190929190803560001916906020019092919080359060200190929190803515159060200190929190505050610b40565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561043e578082015181840152602081019050610423565b505050509050019250505060405180910390f35b34801561045e57600080fd5b506104a56004803603810190808035600019169060200190929190803560001916906020019092919080359060200190929190803515159060200190929190505050610bf7565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104e85780820151818401526020810190506104cd565b505050509050019250505060405180910390f35b34801561050857600080fd5b5061053360048036038101908080359060200190929190803515159060200190929190505050610c9b565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561057657808201518184015260208101905061055b565b505050509050019250505060405180910390f35b34801561059657600080fd5b506105e1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803515159060200190929190505050610d3b565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610624578082015181840152602081019050610609565b505050509050019250505060405180910390f35b34801561064457600080fd5b5061067d600480360381019080803560001916906020019092919080359060200190929190803515159060200190929190505050610ddd565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106c05780820151818401526020810190506106a5565b505050509050019250505060405180910390f35b3480156106e057600080fd5b50610719600480360381019080803560001916906020019092919080359060200190929190803515159060200190929190505050610e7f565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561075c578082015181840152602081019050610741565b505050509050019250505060405180910390f35b34801561077c57600080fd5b50610785610f34565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107d357600080fd5b506107fe60048036038101908080359060200190929190803515159060200190929190505050610f5a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610841578082015181840152602081019050610826565b505050509050019250505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606109138484610889610ffa565b73ffffffffffffffffffffffffffffffffffffffff1663cfd591726108ac610ffa565b73ffffffffffffffffffffffffffffffffffffffff1663f0ab3dd96108cf610ffa565b73ffffffffffffffffffffffffffffffffffffffff1663237286e96108f2610ffa565b73ffffffffffffffffffffffffffffffffffffffff166370a6f5918c61100c565b90509392505050565b60015481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156109bc57600080fd5b505af11580156109d0573d6000803e3d6000fd5b505050506040513d60208110156109e657600080fd5b81019080805190602001909291905050509050919050565b6060610a978484610a0d61104d565b73ffffffffffffffffffffffffffffffffffffffff1663583fd501610a3061104d565b73ffffffffffffffffffffffffffffffffffffffff1663bbb03dc2610a5361104d565b73ffffffffffffffffffffffffffffffffffffffff166344e518a3610a7661104d565b73ffffffffffffffffffffffffffffffffffffffff166363a640678c61105f565b90509392505050565b6060610b3883610aae610ffa565b73ffffffffffffffffffffffffffffffffffffffff1663cfd59172610ad1610ffa565b73ffffffffffffffffffffffffffffffffffffffff1663f0ab3dd9610af4610ffa565b73ffffffffffffffffffffffffffffffffffffffff1663237286e9610b17610ffa565b73ffffffffffffffffffffffffffffffffffffffff166370a6f5918b6110a0565b905092915050565b6060610b4a6111e8565b1515610b5557600080fd5b610bed858585610b63610ffa565b73ffffffffffffffffffffffffffffffffffffffff1663e7853aac610b86610ffa565b73ffffffffffffffffffffffffffffffffffffffff16631d47c3d3610ba9610ffa565b73ffffffffffffffffffffffffffffffffffffffff1663a692e0ef610bcc610ffa565b73ffffffffffffffffffffffffffffffffffffffff16631478fff18d611302565b9050949350505050565b6060610c91858585610c07610ffa565b73ffffffffffffffffffffffffffffffffffffffff1663e4156675610c2a610ffa565b73ffffffffffffffffffffffffffffffffffffffff16630c012e59610c4d610ffa565b73ffffffffffffffffffffffffffffffffffffffff166347d621a3610c70610ffa565b73ffffffffffffffffffffffffffffffffffffffff166356674c9f8d611302565b9050949350505050565b6060610d3383610ca961104d565b73ffffffffffffffffffffffffffffffffffffffff1663583fd501610ccc61104d565b73ffffffffffffffffffffffffffffffffffffffff1663bbb03dc2610cef61104d565b73ffffffffffffffffffffffffffffffffffffffff166344e518a3610d1261104d565b73ffffffffffffffffffffffffffffffffffffffff166363a640678b611346565b905092915050565b6060610dd48484610d4a61104d565b73ffffffffffffffffffffffffffffffffffffffff1663e3bd970e610d6d61104d565b73ffffffffffffffffffffffffffffffffffffffff166382624a2e610d9061104d565b73ffffffffffffffffffffffffffffffffffffffff16633e0fd265610db361104d565b73ffffffffffffffffffffffffffffffffffffffff16637bbad0b88c61105f565b90509392505050565b6060610e768484610dec610ffa565b73ffffffffffffffffffffffffffffffffffffffff1663e4156675610e0f610ffa565b73ffffffffffffffffffffffffffffffffffffffff16630c012e59610e32610ffa565b73ffffffffffffffffffffffffffffffffffffffff166347d621a3610e55610ffa565b73ffffffffffffffffffffffffffffffffffffffff166356674c9f8c61148e565b90509392505050565b6060610e896111e8565b1515610e9457600080fd5b610f2b8484610ea1610ffa565b73ffffffffffffffffffffffffffffffffffffffff1663e7853aac610ec4610ffa565b73ffffffffffffffffffffffffffffffffffffffff16631d47c3d3610ee7610ffa565b73ffffffffffffffffffffffffffffffffffffffff1663a692e0ef610f0a610ffa565b73ffffffffffffffffffffffffffffffffffffffff16631478fff18c61148e565b90509392505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060610ff283610f6861104d565b73ffffffffffffffffffffffffffffffffffffffff1663e3bd970e610f8b61104d565b73ffffffffffffffffffffffffffffffffffffffff166382624a2e610fae61104d565b73ffffffffffffffffffffffffffffffffffffffff16633e0fd265610fd161104d565b73ffffffffffffffffffffffffffffffffffffffff16637bbad0b88b611346565b905092915050565b6000611007602554610922565b905090565b6060811561102b576110248c8c60008b8b8b8b6115ff565b905061103e565b61103b8c8c60008d8d89896115ff565b90505b9b9a5050505050505050505050565b600061105a602c54610922565b905090565b6060811561107e576110778c8c60008b8b8b8b611901565b9050611091565b61108e8c8c60008d8d8989611901565b90505b9b9a5050505050505050505050565b606081156111435761113c8a8a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156110f557600080fd5b505af1158015611109573d6000803e3d6000fd5b505050506040513d602081101561111f57600080fd5b81019080805190602001909291905050508c60018b8b8b8b6115ff565b90506111da565b6111d788886040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561119057600080fd5b505af11580156111a4573d6000803e3d6000fd5b505050506040513d60208110156111ba57600080fd5b81019080805190602001909291905050508c60018d8d89896115ff565b90505b9a9950505050505050505050565b60003273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806112fd5750611227611cf9565b73ffffffffffffffffffffffffffffffffffffffff16639b19251a336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156112c157600080fd5b505af11580156112d5573d6000803e3d6000fd5b505050506040513d60208110156112eb57600080fd5b81019080805190602001909291905050505b905090565b606081156113225761131b8d8d8d60008c8c8c8c611d0b565b9050611336565b6113338d8d8d60008e8e8a8a611d0b565b90505b9c9b505050505050505050505050565b606081156113e9576113e28a8a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561139b57600080fd5b505af11580156113af573d6000803e3d6000fd5b505050506040513d60208110156113c557600080fd5b81019080805190602001909291905050508c60018b8b8b8b611901565b9050611480565b61147d88886040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561143657600080fd5b505af115801561144a573d6000803e3d6000fd5b505050506040513d602081101561146057600080fd5b81019080805190602001909291905050508c60018d8d8989611901565b90505b9a9950505050505050505050565b606081156115455761153e8c8b8b8f6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156114f757600080fd5b505af115801561150b573d6000803e3d6000fd5b505050506040513d602081101561152157600080fd5b81019080805190602001909291905050508d60018c8c8c8c611d0b565b90506115f0565b6115ed8c89898f6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156115a657600080fd5b505af11580156115ba573d6000803e3d6000fd5b505050506040513d60208110156115d057600080fd5b81019080805190602001909291905050508d60018e8e8a8a611d0b565b90505b9b9a5050505050505050505050565b606060008060006060600080935089896040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561165757600080fd5b505af115801561166b573d6000803e3d6000fd5b505050506040513d602081101561168157600080fd5b8101908080519060200190929190505050925060008c14806116ae57506000600102600019168360001916145b156116eb5760006040519080825280602002602001820160405280156116e35781602001602082028038833980820191505090505b5095506118f1565b8b60405190808252806020026020018201604052801561171a5781602001602082028038833980820191505090505b509150600115158b15151415611757578c82600081518110151561173a57fe5b906020019060200201906000191690816000191681525050600193505b8c90508394505b8b8510801561177557508260001916816000191614155b15611866578787826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156117d757600080fd5b505af11580156117eb573d6000803e3d6000fd5b505050506040513d602081101561180157600080fd5b81019080805190602001909291905050509050600060010260001916816000191614151561185957838060010194505080828681518110151561184057fe5b9060200190602002019060001916908160001916815250505b848060010195505061175e565b836040519080825280602002602001820160405280156118955781602001602082028038833980820191505090505b509550600094505b838510156118f05781858151811015156118b357fe5b9060200190602002015186868151811015156118cb57fe5b906020019060200201906000191690816000191681525050848060010195505061189d565b5b5050505050979650505050505050565b606060008060006060600080935089896040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561195957600080fd5b505af115801561196d573d6000803e3d6000fd5b505050506040513d602081101561198357600080fd5b8101908080519060200190929190505050925060008c14806119d15750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611a0e576000604051908082528060200260200182016040528015611a065781602001602082028038833980820191505090505b509550611ce9565b8b604051908082528060200260200182016040528015611a3d5781602001602082028038833980820191505090505b509150600115158b15151415611a9e578c826000815181101515611a5d57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600193505b8c90508394505b8b85108015611ae057508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15611c3a578787826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611b6657600080fd5b505af1158015611b7a573d6000803e3d6000fd5b505050506040513d6020811015611b9057600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515611c2d578380600101945050808286815181101515611bf057fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b8480600101955050611aa5565b83604051908082528060200260200182016040528015611c695781602001602082028038833980820191505090505b509550600094505b83851015611ce8578185815181101515611c8757fe5b906020019060200201518686815181101515611c9f57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508480600101955050611c71565b5b5050505050979650505050505050565b6000611d06602e54610922565b905090565b606060008060006060600080935089898f6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015611d7657600080fd5b505af1158015611d8a573d6000803e3d6000fd5b505050506040513d6020811015611da057600080fd5b8101908080519060200190929190505050925060008c1480611dcd57506000600102600019168360001916145b15611e0a576000604051908082528060200260200182016040528015611e025781602001602082028038833980820191505090505b509550612019565b8b604051908082528060200260200182016040528015611e395781602001602082028038833980820191505090505b5091508a15611e6f578c826000815181101515611e5257fe5b906020019060200201906000191690816000191681525050600193505b8c90508394505b8b85108015611e8d57508260001916816000191614155b15611f8e5787878f836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808360001916600019168152602001826000191660001916815260200192505050602060405180830381600087803b158015611eff57600080fd5b505af1158015611f13573d6000803e3d6000fd5b505050506040513d6020811015611f2957600080fd5b810190808051906020019092919050505090506000600102600019168160001916141515611f81578380600101945050808286815181101515611f6857fe5b9060200190602002019060001916908160001916815250505b8480600101955050611e76565b83604051908082528060200260200182016040528015611fbd5781602001602082028038833980820191505090505b509550600094505b83851015612018578185815181101515611fdb57fe5b906020019060200201518686815181101515611ff357fe5b9060200190602002019060001916908160001916815250508480600101955050611fc5565b5b5050505050989750505050505050505600a165627a7a723058202f854485e71dcc5f283e665dd7838fc024a873a2380434d209f28d59d2d455480029",
  "sourceMap": "586:11189:52:-;;;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;;;;;;;;837:109:52;8:9:-1;5:2;;;30:1;27;20:12;5:2;837:109:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;893:45;898:28;;928:9;893:4;;;:45;;;:::i;:::-;885:54;;;;;;;;837:109;586:11189;;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;586:11189:52:-;;;;;;;",
  "deployedSourceMap": "586:11189:52:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;237:23:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;237:23:67;;;;;;;;;;;;;;;;;;;;;;;;;;;7512:496:52;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7512:496:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7512:496:52;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3317:528:52;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3317:528:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3317:528:52;;;;;;;;;;;;;;;;;6721:423;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6721:423:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6721:423:52;;;;;;;;;;;;;;;;;9319:629;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9319:629:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;9319:629:52;;;;;;;;;;;;;;;;;11184:589;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11184:589:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;11184:589:52;;;;;;;;;;;;;;;;;1943:431;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1943:431:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1943:431:52;;;;;;;;;;;;;;;;;5900:546;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5900:546:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5900:546:52;;;;;;;;;;;;;;;;;10259:518;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10259:518:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10259:518:52;;;;;;;;;;;;;;;;;8339:556;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8339:556:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;8339:556:52;;;;;;;;;;;;;;;;;344:31:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;344:31:67;;;;;;;;;;;;;;;;;;;;;;;;;;;4483:445:52;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4483:445:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4483:445:52;;;;;;;;;;;;;;;;;237:23:67;;;;;;;;;;;;;:::o;7512:496:52:-;7674:20;7723:278;7757:16;7787:6;7807:12;:10;:12::i;:::-;:29;;;7850:12;:10;:12::i;:::-;:28;;;7892:12;:10;:12::i;:::-;:28;;;7934:12;:10;:12::i;:::-;:32;;;7980:11;7723:20;:278::i;:::-;7710:291;;7512:496;;;;;:::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;3317:528:52:-;3481:21;3532:306;3565:17;3596:6;3616:17;:15;:17::i;:::-;:36;;;3666:17;:15;:17::i;:::-;:35;;;3715:17;:15;:17::i;:::-;:35;;;3764:17;:15;:17::i;:::-;:39;;;3817:11;3532:19;:306::i;:::-;3518:320;;3317:528;;;;;:::o;6721:423::-;6845:20;6894:243;6923:6;6943:12;:10;:12::i;:::-;:29;;;6986:12;:10;:12::i;:::-;:28;;;7028:12;:10;:12::i;:::-;:28;;;7070:12;:10;:12::i;:::-;:32;;;7116:11;6894:15;:243::i;:::-;6881:256;;6721:423;;;;:::o;9319:629::-;9514:20;9558:23;:21;:23::i;:::-;9550:32;;;;;;;;9605:336;9647:8;9669:16;9699:6;9719:12;:10;:12::i;:::-;:36;;;9769:12;:10;:12::i;:::-;:35;;;9818:12;:10;:12::i;:::-;:35;;;9867:12;:10;:12::i;:::-;:39;;;9920:11;9605:28;:336::i;:::-;9592:349;;9319:629;;;;;;:::o;11184:589::-;11381:19;11428:338;11470:11;11495:15;11524:6;11544:12;:10;:12::i;:::-;:36;;;11594:12;:10;:12::i;:::-;:35;;;11643:12;:10;:12::i;:::-;:35;;;11692:12;:10;:12::i;:::-;:39;;;11745:11;11428:28;:338::i;:::-;11416:350;;11184:589;;;;;;:::o;1943:431::-;2046:21;2097:270;2125:6;2145:17;:15;:17::i;:::-;:36;;;2195:17;:15;:17::i;:::-;:35;;;2244:17;:15;:17::i;:::-;:35;;;2293:17;:15;:17::i;:::-;:39;;;2346:11;2097:14;:270::i;:::-;2083:284;;1943:431;;;;:::o;5900:546::-;6068:23;6123:316;6156:19;6189:6;6209:17;:15;:17::i;:::-;:38;;;6261:17;:15;:17::i;:::-;:37;;;6312:17;:15;:17::i;:::-;:37;;;6363:17;:15;:17::i;:::-;:41;;;6418:11;6123:19;:316::i;:::-;6107:332;;5900:546;;;;;:::o;10259:518::-;10419:19;10466:304;10503:11;10528:6;10548:12;:10;:12::i;:::-;:36;;;10598:12;:10;:12::i;:::-;:35;;;10647:12;:10;:12::i;:::-;:35;;;10696:12;:10;:12::i;:::-;:39;;;10749:11;10466:23;:304::i;:::-;10454:316;;10259:518;;;;;:::o;8339:556::-;8496:20;8540:23;:21;:23::i;:::-;8532:32;;;;;;;;8587:301;8624:8;8646:6;8666:12;:10;:12::i;:::-;:36;;;8716:12;:10;:12::i;:::-;:35;;;8765:12;:10;:12::i;:::-;:35;;;8814:12;:10;:12::i;:::-;:39;;;8867:11;8587:23;:301::i;:::-;8574:314;;8339:556;;;;;:::o;344:31:67:-;;;;;;;;;;;;;:::o;4483:445:52:-;4588:23;4643:278;4671:6;4691:17;:15;:17::i;:::-;:38;;;4743:17;:15;:17::i;:::-;:37;;;4794:17;:15;:17::i;:::-;:37;;;4845:17;:15;:17::i;:::-;:41;;;4900:11;4643:14;:278::i;:::-;4627:294;;4483:445;;;;:::o;1149:170::-;1218:20;1277:34;1290:20;;1277:12;:34::i;:::-;1254:58;;1149:170;:::o;2289:888:76:-;2871:22;2907:11;2903:270;;;2943:91;2973:13;2988:6;2996:5;3003:14;;3019;;2943:29;:91::i;:::-;2928:106;;2903:270;;;3070:96;3100:13;3115:6;3123:5;3130:15;;3147:18;;3070:29;:96::i;:::-;3055:111;;2903:270;2289:888;;;;;;;;;;;;;:::o;952:191:52:-;1026:25;1095:40;1108:26;;1095:12;:40::i;:::-;1067:69;;952:191;:::o;2344:905:74:-;2925:24;2963:11;2959:286;;;3001:97;3037:13;3052:6;3060:5;3067:14;;3083;;3001:35;:97::i;:::-;2984:114;;2959:286;;;3136:102;3172:13;3187:6;3195:5;3202:15;;3219:18;;3136:35;:102::i;:::-;3119:119;;2959:286;2344:905;;;;;;;;;;;;;:::o;723:870:76:-;1282:22;1318:11;1314:275;;;1354:94;1384:15;;:17;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1384:17:76;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1384:17:76;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1384:17:76;;;;;;;;;;;;;;;;1403:6;1411:4;1417:14;;1433;;1354:29;:94::i;:::-;1339:109;;1314:275;;;1484:98;1514:14;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1514:16:76;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1514:16:76;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1514:16:76;;;;;;;;;;;;;;;;1532:6;1540:4;1546:15;;1563:18;;1484:29;:98::i;:::-;1469:113;;1314:275;723:870;;;;;;;;;;;;:::o;707:316:6:-;787:27;956:9;942:23;;:10;:23;;;941:75;;;;970:24;:22;:24::i;:::-;:34;;;1005:10;970:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;970:46:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;970:46:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;970:46:6;;;;;;;;;;;;;;;;941:75;916:100;;707:316;:::o;2609:1033:79:-;3258:30;3302:11;3298:340;;;3346:118;3384:17;3403:13;3418:6;3426:5;3433:14;;3449;;3346:37;:118::i;:::-;3323:141;;3298:340;;;3508:123;3546:17;3565:13;3580:6;3588:5;3595:15;;3612:18;;3508:37;:123::i;:::-;3485:146;;3298:340;2609:1033;;;;;;;;;;;;;;:::o;743:887:74:-;1301:24;1339:11;1335:291;;;1377:100;1413:15;;:17;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1413:17:74;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1413:17:74;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1413:17:74;;;;;;;;;;;;;;;;1432:6;1440:4;1446:14;;1462;;1377:35;:100::i;:::-;1360:117;;1335:291;;;1515:104;1551:14;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1551:16:74;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1551:16:74;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1551:16:74;;;;;;;;;;;;;;;;1569:6;1577:4;1583:15;;1600:18;;1515:35;:104::i;:::-;1498:121;;1335:291;743:887;;;;;;;;;;;;:::o;809:1034:79:-;1420:30;1464:11;1460:379;;;1508:138;1546:17;1565:15;;1581:17;1565:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1565:34:79;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1565:34:79;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1565:34:79;;;;;;;;;;;;;;;;1601:6;1609:4;1615:14;;1631;;1508:37;:138::i;:::-;1485:161;;1460:379;;;1690:142;1728:17;1747:14;;1762:17;1747:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1747:33:79;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1747:33:79;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1747:33:79;;;;;;;;;;;;;;;;1782:6;1790:4;1796:15;;1813:18;;1690:37;:142::i;:::-;1667:165;;1460:379;809:1034;;;;;;;;;;;;;:::o;3851:1250:76:-;4214:24;4248:10;4264:19;4293:18;4462:28;4522:18;4286:1;4264:23;;4331:14;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4331:16:76;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4331:16:76;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4331:16:76;;;;;;;;;;;;;;;;4318:29;;4367:1;4357:6;:11;:41;;;;4394:3;4386:12;;4372:26;;;:10;:26;;;;4357:41;4353:744;;;4439:1;4425:16;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;4425:16:76;;;;4408:33;;4353:744;;;4507:6;4493:21;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;4493:21:76;;;;4462:52;;4574:4;4552:26;;:18;:26;;;4548:106;;;4607:13;4590:11;4602:1;4590:14;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;4644:1;4630:15;;4548:106;4674:13;4661:26;;4705:11;4700:16;;4695:248;4724:6;4719:2;:11;4718:43;;;;;4750:10;4736:24;;;:10;:24;;;;;4718:43;4695:248;;;4791:14;;4806:10;4791:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4791:26:76;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4791:26:76;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4791:26:76;;;;;;;;;;;;;;;;4778:39;;4853:3;4845:12;;4831:26;;;:10;:26;;;;;4827:108;;;4871:13;;;;;;;4914:10;4896:11;4908:2;4896:15;;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;4827:108;4762:4;;;;;;;4695:248;;;4982:11;4968:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;4968:26:76;;;;4951:43;;5011:1;5006:6;;5002:89;5018:11;5013:2;:16;5002:89;;;5067:11;5079:2;5067:15;;;;;;;;;;;;;;;;;;5046:14;5061:2;5046:18;;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;5030:4;;;;;;;5002:89;;;4353:744;3851:1250;;;;;;;;;;;;;;:::o;3938:1256:74:-;4307:24;4341:10;4357:19;4386:18;4555:28;4615:18;4379:1;4357:23;;4424:14;;:16;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4424:16:74;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4424:16:74;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4424:16:74;;;;;;;;;;;;;;;;4411:29;;4460:1;4450:6;:11;:41;;;;4487:3;4465:26;;:10;:26;;;4450:41;4446:744;;;4532:1;4518:16;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;4518:16:74;;;;4501:33;;4446:744;;;4600:6;4586:21;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;4586:21:74;;;;4555:52;;4667:4;4645:26;;:18;:26;;;4641:106;;;4700:13;4683:11;4695:1;4683:14;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;4737:1;4723:15;;4641:106;4767:13;4754:26;;4798:11;4793:16;;4788:248;4817:6;4812:2;:11;4811:43;;;;;4843:10;4829:24;;:10;:24;;;;4811:43;4788:248;;;4884:14;;4899:10;4884:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4884:26:74;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4884:26:74;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4884:26:74;;;;;;;;;;;;;;;;4871:39;;4946:3;4924:26;;:10;:26;;;;4920:108;;;4964:13;;;;;;;5007:10;4989:11;5001:2;4989:15;;;;;;;;;;;;;;;;;:28;;;;;;;;;;;4920:108;4855:4;;;;;;;4788:248;;;5075:11;5061:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;5061:26:74;;;;5044:43;;5104:1;5099:6;;5095:89;5111:11;5106:2;:16;5095:89;;;5160:11;5172:2;5160:15;;;;;;;;;;;;;;;;;;5139:14;5154:2;5139:18;;;;;;;;;;;;;;;;;:36;;;;;;;;;;;5123:4;;;;;;;5095:89;;;4446:744;3938:1256;;;;;;;;;;;;;;:::o;240:219:6:-;321:32;404:47;417:33;;404:12;:47::i;:::-;369:83;;240:219;:::o;4416:1435:79:-;4846:30;4886:10;4902:19;4931:18;5189:28;5249:18;4924:1;4902:23;;4969:14;;4984:17;4969:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4969:33:79;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4969:33:79;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4969:33:79;;;;;;;;;;;;;;;;4956:46;;5022:1;5012:6;:11;:41;;;;5049:3;5041:12;;5027:26;;;:10;:26;;;;5012:41;5008:839;;;5166:1;5152:16;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;5152:16:79;;;;5129:39;;5008:839;;;5234:6;5220:21;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;5220:21:79;;;;5189:52;;5279:18;5275:98;;;5326:13;5309:11;5321:1;5309:14;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;5363:1;5349:15;;5275:98;5393:13;5380:26;;5424:11;5419:16;;5414:267;5443:6;5438:2;:11;5437:43;;;;;5469:10;5455:24;;;:10;:24;;;;;5437:43;5414:267;;;5510:14;;5525:17;5544:10;5510:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5510:45:79;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5510:45:79;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5510:45:79;;;;;;;;;;;;;;;;5497:58;;5591:3;5583:12;;5569:26;;;:10;:26;;;;;5565:108;;;5609:13;;;;;;;5652:10;5634:11;5646:2;5634:15;;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;5565:108;5481:4;;;;;;;5414:267;;;5726:11;5712:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;5712:26:79;;;;5689:49;;5755:1;5750:6;;5746:95;5762:11;5757:2;:16;5746:95;;;5817:11;5829:2;5817:15;;;;;;;;;;;;;;;;;;5790:20;5811:2;5790:24;;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;5774:4;;;;;;;5746:95;;;5008:839;4416:1435;;;;;;;;;;;;;;;:::o",
  "source": "pragma solidity ^0.4.25;\n\n/* import \"@digix/cacp-contracts-dao/contracts/ResolverClient.sol\"; */\nimport \"@digix/solidity-collections/contracts/abstract/AddressIteratorInteractive.sol\";\nimport \"@digix/solidity-collections/contracts/abstract/BytesIteratorInteractive.sol\";\nimport \"@digix/solidity-collections/contracts/abstract/IndexedBytesIteratorInteractive.sol\";\nimport \"./../storage/DaoStorage.sol\";\nimport \"./../storage/DaoStakeStorage.sol\";\nimport \"./../common/DaoWhitelistingCommon.sol\";\n\n\n/**\n@title Contract to list various storage states from DigixDAO\n@author Digix Holdings\n*/\ncontract DaoListingService is\n    AddressIteratorInteractive,\n    BytesIteratorInteractive,\n    IndexedBytesIteratorInteractive,\n    DaoWhitelistingCommon\n{\n\n    /**\n    @notice Constructor\n    @param _resolver address of contract resolver\n    */\n    constructor(address _resolver) public {\n        require(init(CONTRACT_SERVICE_DAO_LISTING, _resolver));\n    }\n\n    function daoStakeStorage()\n        internal\n        view\n        returns (DaoStakeStorage _contract)\n    {\n        _contract = DaoStakeStorage(get_contract(CONTRACT_STORAGE_DAO_STAKE));\n    }\n\n    function daoStorage()\n        internal\n        view\n        returns (DaoStorage _contract)\n    {\n        _contract = DaoStorage(get_contract(CONTRACT_STORAGE_DAO));\n    }\n\n    /**\n    @notice function to list moderators\n    @dev note that this list may include some additional entries that are\n         not moderators in the current quarter. This may happen if they\n         were moderators in the previous quarter, but have not confirmed\n         their participation in the current quarter. For a single address,\n         a better way to know if moderator or not is:\n         Dao.isModerator(_user)\n    @param _count number of addresses to list\n    @param _from_start boolean, whether to list from start or end\n    @return {\n      \"_moderators\": \"list of moderator addresses\"\n    }\n    */\n    function listModerators(uint256 _count, bool _from_start)\n        public\n        view\n        returns (address[] _moderators)\n    {\n        _moderators = list_addresses(\n            _count,\n            daoStakeStorage().readFirstModerator,\n            daoStakeStorage().readLastModerator,\n            daoStakeStorage().readNextModerator,\n            daoStakeStorage().readPreviousModerator,\n            _from_start\n        );\n    }\n\n    /**\n    @notice function to list moderators from a particular moderator\n    @dev note that this list may include some additional entries that are\n         not moderators in the current quarter. This may happen if they\n         were moderators in the previous quarter, but have not confirmed\n         their participation in the current quarter. For a single address,\n         a better way to know if moderator or not is:\n         Dao.isModerator(_user)\n\n         Another note: this function will start listing AFTER the _currentModerator\n         For example: we have [address1, address2, address3, address4]. listModeratorsFrom(address1, 2, true) = [address2, address3]\n    @param _currentModerator start the list after this moderator address\n    @param _count number of addresses to list\n    @param _from_start boolean, whether to list from start or end\n    @return {\n      \"_moderators\": \"list of moderator addresses\"\n    }\n    */\n    function listModeratorsFrom(\n        address _currentModerator,\n        uint256 _count,\n        bool _from_start\n    )\n        public\n        view\n        returns (address[] _moderators)\n    {\n        _moderators = list_addresses_from(\n            _currentModerator,\n            _count,\n            daoStakeStorage().readFirstModerator,\n            daoStakeStorage().readLastModerator,\n            daoStakeStorage().readNextModerator,\n            daoStakeStorage().readPreviousModerator,\n            _from_start\n        );\n    }\n\n    /**\n    @notice function to list participants\n    @dev note that this list may include some additional entries that are\n         not participants in the current quarter. This may happen if they\n         were participants in the previous quarter, but have not confirmed\n         their participation in the current quarter. For a single address,\n         a better way to know if participant or not is:\n         Dao.isParticipant(_user)\n    @param _count number of addresses to list\n    @param _from_start boolean, whether to list from start or end\n    @return {\n      \"_participants\": \"list of participant addresses\"\n    }\n    */\n    function listParticipants(uint256 _count, bool _from_start)\n        public\n        view\n        returns (address[] _participants)\n    {\n        _participants = list_addresses(\n            _count,\n            daoStakeStorage().readFirstParticipant,\n            daoStakeStorage().readLastParticipant,\n            daoStakeStorage().readNextParticipant,\n            daoStakeStorage().readPreviousParticipant,\n            _from_start\n        );\n    }\n\n    /**\n    @notice function to list participants from a particular participant\n    @dev note that this list may include some additional entries that are\n         not participants in the current quarter. This may happen if they\n         were participants in the previous quarter, but have not confirmed\n         their participation in the current quarter. For a single address,\n         a better way to know if participant or not is:\n         contracts.dao.isParticipant(_user)\n\n         Another note: this function will start listing AFTER the _currentParticipant\n         For example: we have [address1, address2, address3, address4]. listParticipantsFrom(address1, 2, true) = [address2, address3]\n    @param _currentParticipant list from AFTER this participant address\n    @param _count number of addresses to list\n    @param _from_start boolean, whether to list from start or end\n    @return {\n      \"_participants\": \"list of participant addresses\"\n    }\n    */\n    function listParticipantsFrom(\n        address _currentParticipant,\n        uint256 _count,\n        bool _from_start\n    )\n        public\n        view\n        returns (address[] _participants)\n    {\n        _participants = list_addresses_from(\n            _currentParticipant,\n            _count,\n            daoStakeStorage().readFirstParticipant,\n            daoStakeStorage().readLastParticipant,\n            daoStakeStorage().readNextParticipant,\n            daoStakeStorage().readPreviousParticipant,\n            _from_start\n        );\n    }\n\n    /**\n    @notice function to list _count no. of proposals\n    @param _count number of proposals to list\n    @param _from_start boolean value, true if count from start, false if count from end\n    @return {\n      \"_proposals\": \"the list of proposal IDs\"\n    }\n    */\n    function listProposals(\n        uint256 _count,\n        bool _from_start\n    )\n        public\n        view\n        returns (bytes32[] _proposals)\n    {\n        _proposals = list_bytesarray(\n            _count,\n            daoStorage().getFirstProposal,\n            daoStorage().getLastProposal,\n            daoStorage().getNextProposal,\n            daoStorage().getPreviousProposal,\n            _from_start\n        );\n    }\n\n    /**\n    @notice function to list _count no. of proposals from AFTER _currentProposal\n    @param _currentProposal ID of proposal to list proposals from\n    @param _count number of proposals to list\n    @param _from_start boolean value, true if count forwards, false if count backwards\n    @return {\n      \"_proposals\": \"the list of proposal IDs\"\n    }\n    */\n    function listProposalsFrom(\n        bytes32 _currentProposal,\n        uint256 _count,\n        bool _from_start\n    )\n        public\n        view\n        returns (bytes32[] _proposals)\n    {\n        _proposals = list_bytesarray_from(\n            _currentProposal,\n            _count,\n            daoStorage().getFirstProposal,\n            daoStorage().getLastProposal,\n            daoStorage().getNextProposal,\n            daoStorage().getPreviousProposal,\n            _from_start\n        );\n    }\n\n    /**\n    @notice function to list _count no. of proposals in state _stateId\n    @param _stateId state of proposal\n    @param _count number of proposals to list\n    @param _from_start boolean value, true if count from start, false if count from end\n    @return {\n      \"_proposals\": \"the list of proposal IDs\"\n    }\n    */\n    function listProposalsInState(\n        bytes32 _stateId,\n        uint256 _count,\n        bool _from_start\n    )\n        public\n        view\n        returns (bytes32[] _proposals)\n    {\n        require(senderIsAllowedToRead());\n        _proposals = list_indexed_bytesarray(\n            _stateId,\n            _count,\n            daoStorage().getFirstProposalInState,\n            daoStorage().getLastProposalInState,\n            daoStorage().getNextProposalInState,\n            daoStorage().getPreviousProposalInState,\n            _from_start\n        );\n    }\n\n    /**\n    @notice function to list _count no. of proposals in state _stateId from AFTER _currentProposal\n    @param _stateId state of proposal\n    @param _currentProposal ID of proposal to list proposals from\n    @param _count number of proposals to list\n    @param _from_start boolean value, true if count forwards, false if count backwards\n    @return {\n      \"_proposals\": \"the list of proposal IDs\"\n    }\n    */\n    function listProposalsInStateFrom(\n        bytes32 _stateId,\n        bytes32 _currentProposal,\n        uint256 _count,\n        bool _from_start\n    )\n        public\n        view\n        returns (bytes32[] _proposals)\n    {\n        require(senderIsAllowedToRead());\n        _proposals = list_indexed_bytesarray_from(\n            _stateId,\n            _currentProposal,\n            _count,\n            daoStorage().getFirstProposalInState,\n            daoStorage().getLastProposalInState,\n            daoStorage().getNextProposalInState,\n            daoStorage().getPreviousProposalInState,\n            _from_start\n        );\n    }\n\n    /**\n    @notice function to list proposal versions\n    @param _proposalId ID of the proposal\n    @param _count number of proposal versions to list\n    @param _from_start boolean, true to list from start, false to list from end\n    @return {\n      \"_versions\": \"list of proposal versions\"\n    }\n    */\n    function listProposalVersions(\n        bytes32 _proposalId,\n        uint256 _count,\n        bool _from_start\n    )\n        public\n        view\n        returns (bytes32[] _versions)\n    {\n        _versions = list_indexed_bytesarray(\n            _proposalId,\n            _count,\n            daoStorage().getFirstProposalVersion,\n            daoStorage().getLastProposalVersion,\n            daoStorage().getNextProposalVersion,\n            daoStorage().getPreviousProposalVersion,\n            _from_start\n        );\n    }\n\n    /**\n    @notice function to list proposal versions from AFTER a particular version\n    @param _proposalId ID of the proposal\n    @param _currentVersion version to list _count versions from\n    @param _count number of proposal versions to list\n    @param _from_start boolean, true to list from start, false to list from end\n    @return {\n      \"_versions\": \"list of proposal versions\"\n    }\n    */\n    function listProposalVersionsFrom(\n        bytes32 _proposalId,\n        bytes32 _currentVersion,\n        uint256 _count,\n        bool _from_start\n    )\n        public\n        view\n        returns (bytes32[] _versions)\n    {\n        _versions = list_indexed_bytesarray_from(\n            _proposalId,\n            _currentVersion,\n            _count,\n            daoStorage().getFirstProposalVersion,\n            daoStorage().getLastProposalVersion,\n            daoStorage().getNextProposalVersion,\n            daoStorage().getPreviousProposalVersion,\n            _from_start\n        );\n    }\n}\n",
  "sourcePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/service/DaoListingService.sol",
  "ast": {
    "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/service/DaoListingService.sol",
    "exportedSymbols": {
      "DaoListingService": [
        12488
      ]
    },
    "id": 12489,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 12095,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:52"
      },
      {
        "absolutePath": "@digix/solidity-collections/contracts/abstract/AddressIteratorInteractive.sol",
        "file": "@digix/solidity-collections/contracts/abstract/AddressIteratorInteractive.sol",
        "id": 12096,
        "nodeType": "ImportDirective",
        "scope": 12489,
        "sourceUnit": 21589,
        "src": "97:87:52",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@digix/solidity-collections/contracts/abstract/BytesIteratorInteractive.sol",
        "file": "@digix/solidity-collections/contracts/abstract/BytesIteratorInteractive.sol",
        "id": 12097,
        "nodeType": "ImportDirective",
        "scope": 12489,
        "sourceUnit": 21967,
        "src": "185:85:52",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@digix/solidity-collections/contracts/abstract/IndexedBytesIteratorInteractive.sol",
        "file": "@digix/solidity-collections/contracts/abstract/IndexedBytesIteratorInteractive.sol",
        "id": 12098,
        "nodeType": "ImportDirective",
        "scope": 12489,
        "sourceUnit": 22475,
        "src": "271:92:52",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoStorage.sol",
        "file": "./../storage/DaoStorage.sol",
        "id": 12099,
        "nodeType": "ImportDirective",
        "scope": 12489,
        "sourceUnit": 17875,
        "src": "364:37:52",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoStakeStorage.sol",
        "file": "./../storage/DaoStakeStorage.sol",
        "id": 12100,
        "nodeType": "ImportDirective",
        "scope": 12489,
        "sourceUnit": 16027,
        "src": "402:42:52",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/common/DaoWhitelistingCommon.sol",
        "file": "./../common/DaoWhitelistingCommon.sol",
        "id": 12101,
        "nodeType": "ImportDirective",
        "scope": 12489,
        "sourceUnit": 1869,
        "src": "445:47:52",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 12102,
              "name": "AddressIteratorInteractive",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 21588,
              "src": "620:26:52",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_AddressIteratorInteractive_$21588",
                "typeString": "contract AddressIteratorInteractive"
              }
            },
            "id": 12103,
            "nodeType": "InheritanceSpecifier",
            "src": "620:26:52"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 12104,
              "name": "BytesIteratorInteractive",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 21966,
              "src": "652:24:52",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BytesIteratorInteractive_$21966",
                "typeString": "contract BytesIteratorInteractive"
              }
            },
            "id": 12105,
            "nodeType": "InheritanceSpecifier",
            "src": "652:24:52"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 12106,
              "name": "IndexedBytesIteratorInteractive",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 22474,
              "src": "682:31:52",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IndexedBytesIteratorInteractive_$22474",
                "typeString": "contract IndexedBytesIteratorInteractive"
              }
            },
            "id": 12107,
            "nodeType": "InheritanceSpecifier",
            "src": "682:31:52"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 12108,
              "name": "DaoWhitelistingCommon",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1868,
              "src": "719:21:52",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoWhitelistingCommon_$1868",
                "typeString": "contract DaoWhitelistingCommon"
              }
            },
            "id": 12109,
            "nodeType": "InheritanceSpecifier",
            "src": "719:21:52"
          }
        ],
        "contractDependencies": [
          1629,
          1868,
          18628,
          21588,
          21966,
          22474
        ],
        "contractKind": "contract",
        "documentation": "@title Contract to list various storage states from DigixDAO\n@author Digix Holdings",
        "fullyImplemented": true,
        "id": 12488,
        "linearizedBaseContracts": [
          12488,
          1868,
          1629,
          18628,
          22474,
          21966,
          21588
        ],
        "name": "DaoListingService",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 12121,
              "nodeType": "Block",
              "src": "875:71:52",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 12116,
                            "name": "CONTRACT_SERVICE_DAO_LISTING",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1391,
                            "src": "898:28:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 12117,
                            "name": "_resolver",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12111,
                            "src": "928:9:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 12115,
                          "name": "init",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18596,
                          "src": "893:4:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$",
                            "typeString": "function (bytes32,address) returns (bool)"
                          }
                        },
                        "id": 12118,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "893:45:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 12114,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "885:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 12119,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "885:54:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12120,
                  "nodeType": "ExpressionStatement",
                  "src": "885:54:52"
                }
              ]
            },
            "documentation": "@notice Constructor\n@param _resolver address of contract resolver",
            "id": 12122,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12112,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12111,
                  "name": "_resolver",
                  "nodeType": "VariableDeclaration",
                  "scope": 12122,
                  "src": "849:17:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12110,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "849:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "848:19:52"
            },
            "payable": false,
            "returnParameters": {
              "id": 12113,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "875:0:52"
            },
            "scope": 12488,
            "src": "837:109:52",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 12135,
              "nodeType": "Block",
              "src": "1057:86:52",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12133,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12127,
                      "name": "_contract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12125,
                      "src": "1067:9:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                        "typeString": "contract DaoStakeStorage"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 12130,
                              "name": "CONTRACT_STORAGE_DAO_STAKE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1418,
                              "src": "1108:26:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 12129,
                            "name": "get_contract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18627,
                            "src": "1095:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 12131,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1095:40:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 12128,
                        "name": "DaoStakeStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16026,
                        "src": "1079:15:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DaoStakeStorage_$16026_$",
                          "typeString": "type(contract DaoStakeStorage)"
                        }
                      },
                      "id": 12132,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1079:57:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                        "typeString": "contract DaoStakeStorage"
                      }
                    },
                    "src": "1067:69:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                      "typeString": "contract DaoStakeStorage"
                    }
                  },
                  "id": 12134,
                  "nodeType": "ExpressionStatement",
                  "src": "1067:69:52"
                }
              ]
            },
            "documentation": null,
            "id": 12136,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "daoStakeStorage",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12123,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "976:2:52"
            },
            "payable": false,
            "returnParameters": {
              "id": 12126,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12125,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 12136,
                  "src": "1026:25:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                    "typeString": "contract DaoStakeStorage"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 12124,
                    "name": "DaoStakeStorage",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 16026,
                    "src": "1026:15:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                      "typeString": "contract DaoStakeStorage"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1025:27:52"
            },
            "scope": 12488,
            "src": "952:191:52",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 12149,
              "nodeType": "Block",
              "src": "1244:75:52",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12147,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12141,
                      "name": "_contract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12139,
                      "src": "1254:9:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoStorage_$17874",
                        "typeString": "contract DaoStorage"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 12144,
                              "name": "CONTRACT_STORAGE_DAO",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1397,
                              "src": "1290:20:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 12143,
                            "name": "get_contract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18627,
                            "src": "1277:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 12145,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1277:34:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 12142,
                        "name": "DaoStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17874,
                        "src": "1266:10:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DaoStorage_$17874_$",
                          "typeString": "type(contract DaoStorage)"
                        }
                      },
                      "id": 12146,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1266:46:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoStorage_$17874",
                        "typeString": "contract DaoStorage"
                      }
                    },
                    "src": "1254:58:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoStorage_$17874",
                      "typeString": "contract DaoStorage"
                    }
                  },
                  "id": 12148,
                  "nodeType": "ExpressionStatement",
                  "src": "1254:58:52"
                }
              ]
            },
            "documentation": null,
            "id": 12150,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "daoStorage",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12137,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1168:2:52"
            },
            "payable": false,
            "returnParameters": {
              "id": 12140,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12139,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 12150,
                  "src": "1218:20:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_DaoStorage_$17874",
                    "typeString": "contract DaoStorage"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 12138,
                    "name": "DaoStorage",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 17874,
                    "src": "1218:10:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoStorage_$17874",
                      "typeString": "contract DaoStorage"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1217:22:52"
            },
            "scope": 12488,
            "src": "1149:170:52",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 12179,
              "nodeType": "Block",
              "src": "2073:301:52",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12177,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12160,
                      "name": "_moderators",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12158,
                      "src": "2083:11:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 12162,
                          "name": "_count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12152,
                          "src": "2125:6:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12163,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "2145:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12164,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2145:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12165,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readFirstModerator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15905,
                          "src": "2145:36:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12166,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "2195:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12167,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2195:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12168,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readLastModerator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15917,
                          "src": "2195:35:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12169,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "2244:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12170,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2244:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12171,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readNextModerator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15932,
                          "src": "2244:35:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12172,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "2293:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12173,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2293:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12174,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readPreviousModerator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15947,
                          "src": "2293:39:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12175,
                          "name": "_from_start",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12154,
                          "src": "2346:11:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        ],
                        "id": 12161,
                        "name": "list_addresses",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21360,
                        "src": "2097:14:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_function_external_view$__$returns$_t_address_$_$_t_function_external_view$__$returns$_t_address_$_$_t_function_external_view$_t_address_$returns$_t_address_$_$_t_function_external_view$_t_address_$returns$_t_address_$_$_t_bool_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                          "typeString": "function (uint256,function () view external returns (address),function () view external returns (address),function (address) view external returns (address),function (address) view external returns (address),bool) view returns (address[] memory)"
                        }
                      },
                      "id": 12176,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2097:270:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "src": "2083:284:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "id": 12178,
                  "nodeType": "ExpressionStatement",
                  "src": "2083:284:52"
                }
              ]
            },
            "documentation": "@notice function to list moderators\n@dev note that this list may include some additional entries that are\nnot moderators in the current quarter. This may happen if they\nwere moderators in the previous quarter, but have not confirmed\ntheir participation in the current quarter. For a single address,\na better way to know if moderator or not is:\nDao.isModerator(_user)\n@param _count number of addresses to list\n@param _from_start boolean, whether to list from start or end\n@return {\n\"_moderators\": \"list of moderator addresses\"\n}",
            "id": 12180,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "listModerators",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12155,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12152,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 12180,
                  "src": "1967:14:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12151,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1967:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12154,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 12180,
                  "src": "1983:16:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 12153,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1983:4:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1966:34:52"
            },
            "payable": false,
            "returnParameters": {
              "id": 12159,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12158,
                  "name": "_moderators",
                  "nodeType": "VariableDeclaration",
                  "scope": 12180,
                  "src": "2046:21:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12156,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "2046:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 12157,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2046:9:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2045:23:52"
            },
            "scope": 12488,
            "src": "1943:431:52",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 12212,
              "nodeType": "Block",
              "src": "3508:337:52",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12210,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12192,
                      "name": "_moderators",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12190,
                      "src": "3518:11:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 12194,
                          "name": "_currentModerator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12182,
                          "src": "3565:17:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12195,
                          "name": "_count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12184,
                          "src": "3596:6:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12196,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "3616:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12197,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3616:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12198,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readFirstModerator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15905,
                          "src": "3616:36:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12199,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "3666:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12200,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3666:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12201,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readLastModerator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15917,
                          "src": "3666:35:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12202,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "3715:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12203,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3715:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12204,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readNextModerator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15932,
                          "src": "3715:35:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12205,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "3764:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12206,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3764:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12207,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readPreviousModerator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15947,
                          "src": "3764:39:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12208,
                          "name": "_from_start",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12186,
                          "src": "3817:11:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        ],
                        "id": 12193,
                        "name": "list_addresses_from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21425,
                        "src": "3532:19:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_function_external_view$__$returns$_t_address_$_$_t_function_external_view$__$returns$_t_address_$_$_t_function_external_view$_t_address_$returns$_t_address_$_$_t_function_external_view$_t_address_$returns$_t_address_$_$_t_bool_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                          "typeString": "function (address,uint256,function () view external returns (address),function () view external returns (address),function (address) view external returns (address),function (address) view external returns (address),bool) view returns (address[] memory)"
                        }
                      },
                      "id": 12209,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3532:306:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "src": "3518:320:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "id": 12211,
                  "nodeType": "ExpressionStatement",
                  "src": "3518:320:52"
                }
              ]
            },
            "documentation": "@notice function to list moderators from a particular moderator\n@dev note that this list may include some additional entries that are\nnot moderators in the current quarter. This may happen if they\nwere moderators in the previous quarter, but have not confirmed\ntheir participation in the current quarter. For a single address,\na better way to know if moderator or not is:\nDao.isModerator(_user)\nAnother note: this function will start listing AFTER the _currentModerator\nFor example: we have [address1, address2, address3, address4]. listModeratorsFrom(address1, 2, true) = [address2, address3]\n@param _currentModerator start the list after this moderator address\n@param _count number of addresses to list\n@param _from_start boolean, whether to list from start or end\n@return {\n\"_moderators\": \"list of moderator addresses\"\n}",
            "id": 12213,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "listModeratorsFrom",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12187,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12182,
                  "name": "_currentModerator",
                  "nodeType": "VariableDeclaration",
                  "scope": 12213,
                  "src": "3354:25:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12181,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3354:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12184,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 12213,
                  "src": "3389:14:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12183,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3389:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12186,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 12213,
                  "src": "3413:16:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 12185,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3413:4:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3344:91:52"
            },
            "payable": false,
            "returnParameters": {
              "id": 12191,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12190,
                  "name": "_moderators",
                  "nodeType": "VariableDeclaration",
                  "scope": 12213,
                  "src": "3481:21:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12188,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "3481:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 12189,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "3481:9:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3480:23:52"
            },
            "scope": 12488,
            "src": "3317:528:52",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 12242,
              "nodeType": "Block",
              "src": "4617:311:52",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12240,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12223,
                      "name": "_participants",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12221,
                      "src": "4627:13:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 12225,
                          "name": "_count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12215,
                          "src": "4671:6:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12226,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "4691:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12227,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4691:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12228,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readFirstParticipant",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15971,
                          "src": "4691:38:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12229,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "4743:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12230,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4743:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12231,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readLastParticipant",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15983,
                          "src": "4743:37:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12232,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "4794:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12233,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4794:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12234,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readNextParticipant",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15998,
                          "src": "4794:37:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12235,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "4845:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12236,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4845:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12237,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readPreviousParticipant",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16013,
                          "src": "4845:41:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12238,
                          "name": "_from_start",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12217,
                          "src": "4900:11:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        ],
                        "id": 12224,
                        "name": "list_addresses",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21360,
                        "src": "4643:14:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_function_external_view$__$returns$_t_address_$_$_t_function_external_view$__$returns$_t_address_$_$_t_function_external_view$_t_address_$returns$_t_address_$_$_t_function_external_view$_t_address_$returns$_t_address_$_$_t_bool_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                          "typeString": "function (uint256,function () view external returns (address),function () view external returns (address),function (address) view external returns (address),function (address) view external returns (address),bool) view returns (address[] memory)"
                        }
                      },
                      "id": 12239,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4643:278:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "src": "4627:294:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "id": 12241,
                  "nodeType": "ExpressionStatement",
                  "src": "4627:294:52"
                }
              ]
            },
            "documentation": "@notice function to list participants\n@dev note that this list may include some additional entries that are\nnot participants in the current quarter. This may happen if they\nwere participants in the previous quarter, but have not confirmed\ntheir participation in the current quarter. For a single address,\na better way to know if participant or not is:\nDao.isParticipant(_user)\n@param _count number of addresses to list\n@param _from_start boolean, whether to list from start or end\n@return {\n\"_participants\": \"list of participant addresses\"\n}",
            "id": 12243,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "listParticipants",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12218,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12215,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 12243,
                  "src": "4509:14:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12214,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4509:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12217,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 12243,
                  "src": "4525:16:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 12216,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4525:4:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4508:34:52"
            },
            "payable": false,
            "returnParameters": {
              "id": 12222,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12221,
                  "name": "_participants",
                  "nodeType": "VariableDeclaration",
                  "scope": 12243,
                  "src": "4588:23:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12219,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "4588:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 12220,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "4588:9:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4587:25:52"
            },
            "scope": 12488,
            "src": "4483:445:52",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 12275,
              "nodeType": "Block",
              "src": "6097:349:52",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12273,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12255,
                      "name": "_participants",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12253,
                      "src": "6107:13:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 12257,
                          "name": "_currentParticipant",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12245,
                          "src": "6156:19:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12258,
                          "name": "_count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12247,
                          "src": "6189:6:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12259,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "6209:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12260,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6209:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12261,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readFirstParticipant",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15971,
                          "src": "6209:38:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12262,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "6261:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12263,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6261:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12264,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readLastParticipant",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15983,
                          "src": "6261:37:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12265,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "6312:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12266,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6312:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12267,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readNextParticipant",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15998,
                          "src": "6312:37:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12268,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "6363:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12269,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6363:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12270,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readPreviousParticipant",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16013,
                          "src": "6363:41:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12271,
                          "name": "_from_start",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12249,
                          "src": "6418:11:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        ],
                        "id": 12256,
                        "name": "list_addresses_from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21425,
                        "src": "6123:19:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_function_external_view$__$returns$_t_address_$_$_t_function_external_view$__$returns$_t_address_$_$_t_function_external_view$_t_address_$returns$_t_address_$_$_t_function_external_view$_t_address_$returns$_t_address_$_$_t_bool_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                          "typeString": "function (address,uint256,function () view external returns (address),function () view external returns (address),function (address) view external returns (address),function (address) view external returns (address),bool) view returns (address[] memory)"
                        }
                      },
                      "id": 12272,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6123:316:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "src": "6107:332:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "id": 12274,
                  "nodeType": "ExpressionStatement",
                  "src": "6107:332:52"
                }
              ]
            },
            "documentation": "@notice function to list participants from a particular participant\n@dev note that this list may include some additional entries that are\nnot participants in the current quarter. This may happen if they\nwere participants in the previous quarter, but have not confirmed\ntheir participation in the current quarter. For a single address,\na better way to know if participant or not is:\ncontracts.dao.isParticipant(_user)\nAnother note: this function will start listing AFTER the _currentParticipant\nFor example: we have [address1, address2, address3, address4]. listParticipantsFrom(address1, 2, true) = [address2, address3]\n@param _currentParticipant list from AFTER this participant address\n@param _count number of addresses to list\n@param _from_start boolean, whether to list from start or end\n@return {\n\"_participants\": \"list of participant addresses\"\n}",
            "id": 12276,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "listParticipantsFrom",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12250,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12245,
                  "name": "_currentParticipant",
                  "nodeType": "VariableDeclaration",
                  "scope": 12276,
                  "src": "5939:27:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12244,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5939:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12247,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 12276,
                  "src": "5976:14:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12246,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5976:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12249,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 12276,
                  "src": "6000:16:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 12248,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6000:4:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5929:93:52"
            },
            "payable": false,
            "returnParameters": {
              "id": 12254,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12253,
                  "name": "_participants",
                  "nodeType": "VariableDeclaration",
                  "scope": 12276,
                  "src": "6068:23:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12251,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "6068:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 12252,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "6068:9:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6067:25:52"
            },
            "scope": 12488,
            "src": "5900:546:52",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 12305,
              "nodeType": "Block",
              "src": "6871:273:52",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12303,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12286,
                      "name": "_proposals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12284,
                      "src": "6881:10:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 12288,
                          "name": "_count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12278,
                          "src": "6923:6:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12289,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "6943:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12290,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6943:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12291,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getFirstProposal",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16525,
                          "src": "6943:29:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12292,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "6986:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12293,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6986:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12294,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getLastProposal",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16537,
                          "src": "6986:28:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12295,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "7028:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12296,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7028:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12297,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getNextProposal",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16552,
                          "src": "7028:28:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12298,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "7070:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12299,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7070:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12300,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getPreviousProposal",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16567,
                          "src": "7070:32:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12301,
                          "name": "_from_start",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12280,
                          "src": "7116:11:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        ],
                        "id": 12287,
                        "name": "list_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21738,
                        "src": "6894:15:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_function_external_view$__$returns$_t_bytes32_$_$_t_function_external_view$__$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_bool_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "function (uint256,function () view external returns (bytes32),function () view external returns (bytes32),function (bytes32) view external returns (bytes32),function (bytes32) view external returns (bytes32),bool) view returns (bytes32[] memory)"
                        }
                      },
                      "id": 12302,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6894:243:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "src": "6881:256:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "id": 12304,
                  "nodeType": "ExpressionStatement",
                  "src": "6881:256:52"
                }
              ]
            },
            "documentation": "@notice function to list _count no. of proposals\n@param _count number of proposals to list\n@param _from_start boolean value, true if count from start, false if count from end\n@return {\n\"_proposals\": \"the list of proposal IDs\"\n}",
            "id": 12306,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "listProposals",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12281,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12278,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 12306,
                  "src": "6753:14:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12277,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6753:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12280,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 12306,
                  "src": "6777:16:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 12279,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6777:4:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6743:56:52"
            },
            "payable": false,
            "returnParameters": {
              "id": 12285,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12284,
                  "name": "_proposals",
                  "nodeType": "VariableDeclaration",
                  "scope": 12306,
                  "src": "6845:20:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12282,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "6845:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 12283,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "6845:9:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6844:22:52"
            },
            "scope": 12488,
            "src": "6721:423:52",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 12338,
              "nodeType": "Block",
              "src": "7700:308:52",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12336,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12318,
                      "name": "_proposals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12316,
                      "src": "7710:10:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 12320,
                          "name": "_currentProposal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12308,
                          "src": "7757:16:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12321,
                          "name": "_count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12310,
                          "src": "7787:6:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12322,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "7807:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12323,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7807:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12324,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getFirstProposal",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16525,
                          "src": "7807:29:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12325,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "7850:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12326,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7850:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12327,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getLastProposal",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16537,
                          "src": "7850:28:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12328,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "7892:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12329,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7892:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12330,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getNextProposal",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16552,
                          "src": "7892:28:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12331,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "7934:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12332,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7934:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12333,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getPreviousProposal",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16567,
                          "src": "7934:32:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12334,
                          "name": "_from_start",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12312,
                          "src": "7980:11:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        ],
                        "id": 12319,
                        "name": "list_bytesarray_from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21803,
                        "src": "7723:20:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_function_external_view$__$returns$_t_bytes32_$_$_t_function_external_view$__$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_bool_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "function (bytes32,uint256,function () view external returns (bytes32),function () view external returns (bytes32),function (bytes32) view external returns (bytes32),function (bytes32) view external returns (bytes32),bool) view returns (bytes32[] memory)"
                        }
                      },
                      "id": 12335,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7723:278:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "src": "7710:291:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "id": 12337,
                  "nodeType": "ExpressionStatement",
                  "src": "7710:291:52"
                }
              ]
            },
            "documentation": "@notice function to list _count no. of proposals from AFTER _currentProposal\n@param _currentProposal ID of proposal to list proposals from\n@param _count number of proposals to list\n@param _from_start boolean value, true if count forwards, false if count backwards\n@return {\n\"_proposals\": \"the list of proposal IDs\"\n}",
            "id": 12339,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "listProposalsFrom",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12313,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12308,
                  "name": "_currentProposal",
                  "nodeType": "VariableDeclaration",
                  "scope": 12339,
                  "src": "7548:24:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 12307,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7548:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12310,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 12339,
                  "src": "7582:14:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12309,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7582:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12312,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 12339,
                  "src": "7606:16:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 12311,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "7606:4:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7538:90:52"
            },
            "payable": false,
            "returnParameters": {
              "id": 12317,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12316,
                  "name": "_proposals",
                  "nodeType": "VariableDeclaration",
                  "scope": 12339,
                  "src": "7674:20:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12314,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "7674:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 12315,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "7674:9:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7673:22:52"
            },
            "scope": 12488,
            "src": "7512:496:52",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 12376,
              "nodeType": "Block",
              "src": "8522:373:52",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 12352,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "8540:21:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 12353,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8540:23:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 12351,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "8532:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 12354,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8532:32:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12355,
                  "nodeType": "ExpressionStatement",
                  "src": "8532:32:52"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12374,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12356,
                      "name": "_proposals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12349,
                      "src": "8574:10:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 12358,
                          "name": "_stateId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12341,
                          "src": "8624:8:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12359,
                          "name": "_count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12343,
                          "src": "8646:6:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12360,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "8666:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12361,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8666:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12362,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getFirstProposalInState",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16588,
                          "src": "8666:36:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12363,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "8716:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12364,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8716:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12365,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getLastProposalInState",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16609,
                          "src": "8716:35:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12366,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "8765:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12367,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8765:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12368,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getNextProposalInState",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16633,
                          "src": "8765:35:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12369,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "8814:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12370,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8814:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12371,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getPreviousProposalInState",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16657,
                          "src": "8814:39:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12372,
                          "name": "_from_start",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12345,
                          "src": "8867:11:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        ],
                        "id": 12357,
                        "name": "list_indexed_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22228,
                        "src": "8587:23:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$_t_bool_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "function (bytes32,uint256,function (bytes32) view external returns (bytes32),function (bytes32) view external returns (bytes32),function (bytes32,bytes32) view external returns (bytes32),function (bytes32,bytes32) view external returns (bytes32),bool) view returns (bytes32[] memory)"
                        }
                      },
                      "id": 12373,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8587:301:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "src": "8574:314:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "id": 12375,
                  "nodeType": "ExpressionStatement",
                  "src": "8574:314:52"
                }
              ]
            },
            "documentation": "@notice function to list _count no. of proposals in state _stateId\n@param _stateId state of proposal\n@param _count number of proposals to list\n@param _from_start boolean value, true if count from start, false if count from end\n@return {\n\"_proposals\": \"the list of proposal IDs\"\n}",
            "id": 12377,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "listProposalsInState",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12346,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12341,
                  "name": "_stateId",
                  "nodeType": "VariableDeclaration",
                  "scope": 12377,
                  "src": "8378:16:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 12340,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8378:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12343,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 12377,
                  "src": "8404:14:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12342,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8404:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12345,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 12377,
                  "src": "8428:16:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 12344,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8428:4:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8368:82:52"
            },
            "payable": false,
            "returnParameters": {
              "id": 12350,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12349,
                  "name": "_proposals",
                  "nodeType": "VariableDeclaration",
                  "scope": 12377,
                  "src": "8496:20:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12347,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "8496:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 12348,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "8496:9:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8495:22:52"
            },
            "scope": 12488,
            "src": "8339:556:52",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 12417,
              "nodeType": "Block",
              "src": "9540:408:52",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 12392,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "9558:21:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 12393,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9558:23:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 12391,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "9550:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 12394,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9550:32:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12395,
                  "nodeType": "ExpressionStatement",
                  "src": "9550:32:52"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12415,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12396,
                      "name": "_proposals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12389,
                      "src": "9592:10:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 12398,
                          "name": "_stateId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12379,
                          "src": "9647:8:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12399,
                          "name": "_currentProposal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12381,
                          "src": "9669:16:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12400,
                          "name": "_count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12383,
                          "src": "9699:6:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12401,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "9719:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12402,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9719:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12403,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getFirstProposalInState",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16588,
                          "src": "9719:36:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12404,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "9769:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12405,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9769:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12406,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getLastProposalInState",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16609,
                          "src": "9769:35:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12407,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "9818:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12408,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9818:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12409,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getNextProposalInState",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16633,
                          "src": "9818:35:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12410,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "9867:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12411,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9867:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12412,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getPreviousProposalInState",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16657,
                          "src": "9867:39:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12413,
                          "name": "_from_start",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12385,
                          "src": "9920:11:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        ],
                        "id": 12397,
                        "name": "list_indexed_bytesarray_from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22305,
                        "src": "9605:28:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$_t_bool_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "function (bytes32,bytes32,uint256,function (bytes32) view external returns (bytes32),function (bytes32) view external returns (bytes32),function (bytes32,bytes32) view external returns (bytes32),function (bytes32,bytes32) view external returns (bytes32),bool) view returns (bytes32[] memory)"
                        }
                      },
                      "id": 12414,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9605:336:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "src": "9592:349:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "id": 12416,
                  "nodeType": "ExpressionStatement",
                  "src": "9592:349:52"
                }
              ]
            },
            "documentation": "@notice function to list _count no. of proposals in state _stateId from AFTER _currentProposal\n@param _stateId state of proposal\n@param _currentProposal ID of proposal to list proposals from\n@param _count number of proposals to list\n@param _from_start boolean value, true if count forwards, false if count backwards\n@return {\n\"_proposals\": \"the list of proposal IDs\"\n}",
            "id": 12418,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "listProposalsInStateFrom",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12386,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12379,
                  "name": "_stateId",
                  "nodeType": "VariableDeclaration",
                  "scope": 12418,
                  "src": "9362:16:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 12378,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9362:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12381,
                  "name": "_currentProposal",
                  "nodeType": "VariableDeclaration",
                  "scope": 12418,
                  "src": "9388:24:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 12380,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9388:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12383,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 12418,
                  "src": "9422:14:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12382,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9422:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12385,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 12418,
                  "src": "9446:16:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 12384,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "9446:4:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9352:116:52"
            },
            "payable": false,
            "returnParameters": {
              "id": 12390,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12389,
                  "name": "_proposals",
                  "nodeType": "VariableDeclaration",
                  "scope": 12418,
                  "src": "9514:20:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12387,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "9514:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 12388,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "9514:9:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9513:22:52"
            },
            "scope": 12488,
            "src": "9319:629:52",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 12450,
              "nodeType": "Block",
              "src": "10444:333:52",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12448,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12430,
                      "name": "_versions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12428,
                      "src": "10454:9:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 12432,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12420,
                          "src": "10503:11:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12433,
                          "name": "_count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12422,
                          "src": "10528:6:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12434,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "10548:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12435,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10548:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12436,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getFirstProposalVersion",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16779,
                          "src": "10548:36:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12437,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "10598:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12438,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10598:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12439,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getLastProposalVersion",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16802,
                          "src": "10598:35:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12440,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "10647:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12441,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10647:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12442,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getNextProposalVersion",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16828,
                          "src": "10647:35:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12443,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "10696:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12444,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10696:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12445,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getPreviousProposalVersion",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16854,
                          "src": "10696:39:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12446,
                          "name": "_from_start",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12424,
                          "src": "10749:11:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        ],
                        "id": 12431,
                        "name": "list_indexed_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22228,
                        "src": "10466:23:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$_t_bool_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "function (bytes32,uint256,function (bytes32) view external returns (bytes32),function (bytes32) view external returns (bytes32),function (bytes32,bytes32) view external returns (bytes32),function (bytes32,bytes32) view external returns (bytes32),bool) view returns (bytes32[] memory)"
                        }
                      },
                      "id": 12447,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10466:304:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "src": "10454:316:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "id": 12449,
                  "nodeType": "ExpressionStatement",
                  "src": "10454:316:52"
                }
              ]
            },
            "documentation": "@notice function to list proposal versions\n@param _proposalId ID of the proposal\n@param _count number of proposal versions to list\n@param _from_start boolean, true to list from start, false to list from end\n@return {\n\"_versions\": \"list of proposal versions\"\n}",
            "id": 12451,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "listProposalVersions",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12425,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12420,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 12451,
                  "src": "10298:19:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 12419,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10298:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12422,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 12451,
                  "src": "10327:14:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12421,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10327:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12424,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 12451,
                  "src": "10351:16:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 12423,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "10351:4:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10288:85:52"
            },
            "payable": false,
            "returnParameters": {
              "id": 12429,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12428,
                  "name": "_versions",
                  "nodeType": "VariableDeclaration",
                  "scope": 12451,
                  "src": "10419:19:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12426,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "10419:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 12427,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "10419:9:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10418:21:52"
            },
            "scope": 12488,
            "src": "10259:518:52",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 12486,
              "nodeType": "Block",
              "src": "11406:367:52",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12484,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12465,
                      "name": "_versions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12463,
                      "src": "11416:9:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 12467,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12453,
                          "src": "11470:11:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12468,
                          "name": "_currentVersion",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12455,
                          "src": "11495:15:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12469,
                          "name": "_count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12457,
                          "src": "11524:6:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12470,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "11544:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12471,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11544:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12472,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getFirstProposalVersion",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16779,
                          "src": "11544:36:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12473,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "11594:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12474,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11594:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12475,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getLastProposalVersion",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16802,
                          "src": "11594:35:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12476,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "11643:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12477,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11643:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12478,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getNextProposalVersion",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16828,
                          "src": "11643:35:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12479,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "11692:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12480,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11692:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12481,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getPreviousProposalVersion",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16854,
                          "src": "11692:39:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12482,
                          "name": "_from_start",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12459,
                          "src": "11745:11:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        ],
                        "id": 12466,
                        "name": "list_indexed_bytesarray_from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22305,
                        "src": "11428:28:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$_t_bool_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "function (bytes32,bytes32,uint256,function (bytes32) view external returns (bytes32),function (bytes32) view external returns (bytes32),function (bytes32,bytes32) view external returns (bytes32),function (bytes32,bytes32) view external returns (bytes32),bool) view returns (bytes32[] memory)"
                        }
                      },
                      "id": 12483,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11428:338:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "src": "11416:350:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "id": 12485,
                  "nodeType": "ExpressionStatement",
                  "src": "11416:350:52"
                }
              ]
            },
            "documentation": "@notice function to list proposal versions from AFTER a particular version\n@param _proposalId ID of the proposal\n@param _currentVersion version to list _count versions from\n@param _count number of proposal versions to list\n@param _from_start boolean, true to list from start, false to list from end\n@return {\n\"_versions\": \"list of proposal versions\"\n}",
            "id": 12487,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "listProposalVersionsFrom",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12460,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12453,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 12487,
                  "src": "11227:19:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 12452,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11227:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12455,
                  "name": "_currentVersion",
                  "nodeType": "VariableDeclaration",
                  "scope": 12487,
                  "src": "11256:23:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 12454,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11256:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12457,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 12487,
                  "src": "11289:14:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12456,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11289:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12459,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 12487,
                  "src": "11313:16:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 12458,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "11313:4:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11217:118:52"
            },
            "payable": false,
            "returnParameters": {
              "id": 12464,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12463,
                  "name": "_versions",
                  "nodeType": "VariableDeclaration",
                  "scope": 12487,
                  "src": "11381:19:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12461,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "11381:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 12462,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "11381:9:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11380:21:52"
            },
            "scope": 12488,
            "src": "11184:589:52",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 12489,
        "src": "586:11189:52"
      }
    ],
    "src": "0:11776:52"
  },
  "legacyAST": {
    "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/service/DaoListingService.sol",
    "exportedSymbols": {
      "DaoListingService": [
        12488
      ]
    },
    "id": 12489,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 12095,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:52"
      },
      {
        "absolutePath": "@digix/solidity-collections/contracts/abstract/AddressIteratorInteractive.sol",
        "file": "@digix/solidity-collections/contracts/abstract/AddressIteratorInteractive.sol",
        "id": 12096,
        "nodeType": "ImportDirective",
        "scope": 12489,
        "sourceUnit": 21589,
        "src": "97:87:52",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@digix/solidity-collections/contracts/abstract/BytesIteratorInteractive.sol",
        "file": "@digix/solidity-collections/contracts/abstract/BytesIteratorInteractive.sol",
        "id": 12097,
        "nodeType": "ImportDirective",
        "scope": 12489,
        "sourceUnit": 21967,
        "src": "185:85:52",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@digix/solidity-collections/contracts/abstract/IndexedBytesIteratorInteractive.sol",
        "file": "@digix/solidity-collections/contracts/abstract/IndexedBytesIteratorInteractive.sol",
        "id": 12098,
        "nodeType": "ImportDirective",
        "scope": 12489,
        "sourceUnit": 22475,
        "src": "271:92:52",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoStorage.sol",
        "file": "./../storage/DaoStorage.sol",
        "id": 12099,
        "nodeType": "ImportDirective",
        "scope": 12489,
        "sourceUnit": 17875,
        "src": "364:37:52",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoStakeStorage.sol",
        "file": "./../storage/DaoStakeStorage.sol",
        "id": 12100,
        "nodeType": "ImportDirective",
        "scope": 12489,
        "sourceUnit": 16027,
        "src": "402:42:52",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/common/DaoWhitelistingCommon.sol",
        "file": "./../common/DaoWhitelistingCommon.sol",
        "id": 12101,
        "nodeType": "ImportDirective",
        "scope": 12489,
        "sourceUnit": 1869,
        "src": "445:47:52",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 12102,
              "name": "AddressIteratorInteractive",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 21588,
              "src": "620:26:52",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_AddressIteratorInteractive_$21588",
                "typeString": "contract AddressIteratorInteractive"
              }
            },
            "id": 12103,
            "nodeType": "InheritanceSpecifier",
            "src": "620:26:52"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 12104,
              "name": "BytesIteratorInteractive",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 21966,
              "src": "652:24:52",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BytesIteratorInteractive_$21966",
                "typeString": "contract BytesIteratorInteractive"
              }
            },
            "id": 12105,
            "nodeType": "InheritanceSpecifier",
            "src": "652:24:52"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 12106,
              "name": "IndexedBytesIteratorInteractive",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 22474,
              "src": "682:31:52",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IndexedBytesIteratorInteractive_$22474",
                "typeString": "contract IndexedBytesIteratorInteractive"
              }
            },
            "id": 12107,
            "nodeType": "InheritanceSpecifier",
            "src": "682:31:52"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 12108,
              "name": "DaoWhitelistingCommon",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1868,
              "src": "719:21:52",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoWhitelistingCommon_$1868",
                "typeString": "contract DaoWhitelistingCommon"
              }
            },
            "id": 12109,
            "nodeType": "InheritanceSpecifier",
            "src": "719:21:52"
          }
        ],
        "contractDependencies": [
          1629,
          1868,
          18628,
          21588,
          21966,
          22474
        ],
        "contractKind": "contract",
        "documentation": "@title Contract to list various storage states from DigixDAO\n@author Digix Holdings",
        "fullyImplemented": true,
        "id": 12488,
        "linearizedBaseContracts": [
          12488,
          1868,
          1629,
          18628,
          22474,
          21966,
          21588
        ],
        "name": "DaoListingService",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 12121,
              "nodeType": "Block",
              "src": "875:71:52",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 12116,
                            "name": "CONTRACT_SERVICE_DAO_LISTING",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1391,
                            "src": "898:28:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 12117,
                            "name": "_resolver",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12111,
                            "src": "928:9:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 12115,
                          "name": "init",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18596,
                          "src": "893:4:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$",
                            "typeString": "function (bytes32,address) returns (bool)"
                          }
                        },
                        "id": 12118,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "893:45:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 12114,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "885:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 12119,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "885:54:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12120,
                  "nodeType": "ExpressionStatement",
                  "src": "885:54:52"
                }
              ]
            },
            "documentation": "@notice Constructor\n@param _resolver address of contract resolver",
            "id": 12122,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12112,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12111,
                  "name": "_resolver",
                  "nodeType": "VariableDeclaration",
                  "scope": 12122,
                  "src": "849:17:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12110,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "849:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "848:19:52"
            },
            "payable": false,
            "returnParameters": {
              "id": 12113,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "875:0:52"
            },
            "scope": 12488,
            "src": "837:109:52",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 12135,
              "nodeType": "Block",
              "src": "1057:86:52",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12133,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12127,
                      "name": "_contract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12125,
                      "src": "1067:9:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                        "typeString": "contract DaoStakeStorage"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 12130,
                              "name": "CONTRACT_STORAGE_DAO_STAKE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1418,
                              "src": "1108:26:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 12129,
                            "name": "get_contract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18627,
                            "src": "1095:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 12131,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1095:40:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 12128,
                        "name": "DaoStakeStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16026,
                        "src": "1079:15:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DaoStakeStorage_$16026_$",
                          "typeString": "type(contract DaoStakeStorage)"
                        }
                      },
                      "id": 12132,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1079:57:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                        "typeString": "contract DaoStakeStorage"
                      }
                    },
                    "src": "1067:69:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                      "typeString": "contract DaoStakeStorage"
                    }
                  },
                  "id": 12134,
                  "nodeType": "ExpressionStatement",
                  "src": "1067:69:52"
                }
              ]
            },
            "documentation": null,
            "id": 12136,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "daoStakeStorage",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12123,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "976:2:52"
            },
            "payable": false,
            "returnParameters": {
              "id": 12126,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12125,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 12136,
                  "src": "1026:25:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                    "typeString": "contract DaoStakeStorage"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 12124,
                    "name": "DaoStakeStorage",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 16026,
                    "src": "1026:15:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                      "typeString": "contract DaoStakeStorage"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1025:27:52"
            },
            "scope": 12488,
            "src": "952:191:52",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 12149,
              "nodeType": "Block",
              "src": "1244:75:52",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12147,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12141,
                      "name": "_contract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12139,
                      "src": "1254:9:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoStorage_$17874",
                        "typeString": "contract DaoStorage"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 12144,
                              "name": "CONTRACT_STORAGE_DAO",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1397,
                              "src": "1290:20:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 12143,
                            "name": "get_contract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18627,
                            "src": "1277:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 12145,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1277:34:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 12142,
                        "name": "DaoStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17874,
                        "src": "1266:10:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DaoStorage_$17874_$",
                          "typeString": "type(contract DaoStorage)"
                        }
                      },
                      "id": 12146,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1266:46:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoStorage_$17874",
                        "typeString": "contract DaoStorage"
                      }
                    },
                    "src": "1254:58:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoStorage_$17874",
                      "typeString": "contract DaoStorage"
                    }
                  },
                  "id": 12148,
                  "nodeType": "ExpressionStatement",
                  "src": "1254:58:52"
                }
              ]
            },
            "documentation": null,
            "id": 12150,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "daoStorage",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12137,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1168:2:52"
            },
            "payable": false,
            "returnParameters": {
              "id": 12140,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12139,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 12150,
                  "src": "1218:20:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_DaoStorage_$17874",
                    "typeString": "contract DaoStorage"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 12138,
                    "name": "DaoStorage",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 17874,
                    "src": "1218:10:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoStorage_$17874",
                      "typeString": "contract DaoStorage"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1217:22:52"
            },
            "scope": 12488,
            "src": "1149:170:52",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 12179,
              "nodeType": "Block",
              "src": "2073:301:52",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12177,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12160,
                      "name": "_moderators",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12158,
                      "src": "2083:11:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 12162,
                          "name": "_count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12152,
                          "src": "2125:6:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12163,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "2145:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12164,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2145:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12165,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readFirstModerator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15905,
                          "src": "2145:36:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12166,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "2195:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12167,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2195:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12168,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readLastModerator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15917,
                          "src": "2195:35:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12169,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "2244:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12170,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2244:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12171,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readNextModerator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15932,
                          "src": "2244:35:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12172,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "2293:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12173,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2293:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12174,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readPreviousModerator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15947,
                          "src": "2293:39:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12175,
                          "name": "_from_start",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12154,
                          "src": "2346:11:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        ],
                        "id": 12161,
                        "name": "list_addresses",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21360,
                        "src": "2097:14:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_function_external_view$__$returns$_t_address_$_$_t_function_external_view$__$returns$_t_address_$_$_t_function_external_view$_t_address_$returns$_t_address_$_$_t_function_external_view$_t_address_$returns$_t_address_$_$_t_bool_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                          "typeString": "function (uint256,function () view external returns (address),function () view external returns (address),function (address) view external returns (address),function (address) view external returns (address),bool) view returns (address[] memory)"
                        }
                      },
                      "id": 12176,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2097:270:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "src": "2083:284:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "id": 12178,
                  "nodeType": "ExpressionStatement",
                  "src": "2083:284:52"
                }
              ]
            },
            "documentation": "@notice function to list moderators\n@dev note that this list may include some additional entries that are\nnot moderators in the current quarter. This may happen if they\nwere moderators in the previous quarter, but have not confirmed\ntheir participation in the current quarter. For a single address,\na better way to know if moderator or not is:\nDao.isModerator(_user)\n@param _count number of addresses to list\n@param _from_start boolean, whether to list from start or end\n@return {\n\"_moderators\": \"list of moderator addresses\"\n}",
            "id": 12180,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "listModerators",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12155,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12152,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 12180,
                  "src": "1967:14:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12151,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1967:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12154,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 12180,
                  "src": "1983:16:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 12153,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1983:4:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1966:34:52"
            },
            "payable": false,
            "returnParameters": {
              "id": 12159,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12158,
                  "name": "_moderators",
                  "nodeType": "VariableDeclaration",
                  "scope": 12180,
                  "src": "2046:21:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12156,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "2046:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 12157,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2046:9:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2045:23:52"
            },
            "scope": 12488,
            "src": "1943:431:52",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 12212,
              "nodeType": "Block",
              "src": "3508:337:52",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12210,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12192,
                      "name": "_moderators",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12190,
                      "src": "3518:11:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 12194,
                          "name": "_currentModerator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12182,
                          "src": "3565:17:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12195,
                          "name": "_count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12184,
                          "src": "3596:6:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12196,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "3616:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12197,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3616:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12198,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readFirstModerator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15905,
                          "src": "3616:36:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12199,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "3666:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12200,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3666:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12201,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readLastModerator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15917,
                          "src": "3666:35:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12202,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "3715:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12203,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3715:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12204,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readNextModerator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15932,
                          "src": "3715:35:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12205,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "3764:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12206,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3764:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12207,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readPreviousModerator",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15947,
                          "src": "3764:39:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12208,
                          "name": "_from_start",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12186,
                          "src": "3817:11:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        ],
                        "id": 12193,
                        "name": "list_addresses_from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21425,
                        "src": "3532:19:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_function_external_view$__$returns$_t_address_$_$_t_function_external_view$__$returns$_t_address_$_$_t_function_external_view$_t_address_$returns$_t_address_$_$_t_function_external_view$_t_address_$returns$_t_address_$_$_t_bool_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                          "typeString": "function (address,uint256,function () view external returns (address),function () view external returns (address),function (address) view external returns (address),function (address) view external returns (address),bool) view returns (address[] memory)"
                        }
                      },
                      "id": 12209,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3532:306:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "src": "3518:320:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "id": 12211,
                  "nodeType": "ExpressionStatement",
                  "src": "3518:320:52"
                }
              ]
            },
            "documentation": "@notice function to list moderators from a particular moderator\n@dev note that this list may include some additional entries that are\nnot moderators in the current quarter. This may happen if they\nwere moderators in the previous quarter, but have not confirmed\ntheir participation in the current quarter. For a single address,\na better way to know if moderator or not is:\nDao.isModerator(_user)\nAnother note: this function will start listing AFTER the _currentModerator\nFor example: we have [address1, address2, address3, address4]. listModeratorsFrom(address1, 2, true) = [address2, address3]\n@param _currentModerator start the list after this moderator address\n@param _count number of addresses to list\n@param _from_start boolean, whether to list from start or end\n@return {\n\"_moderators\": \"list of moderator addresses\"\n}",
            "id": 12213,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "listModeratorsFrom",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12187,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12182,
                  "name": "_currentModerator",
                  "nodeType": "VariableDeclaration",
                  "scope": 12213,
                  "src": "3354:25:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12181,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3354:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12184,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 12213,
                  "src": "3389:14:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12183,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3389:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12186,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 12213,
                  "src": "3413:16:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 12185,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3413:4:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3344:91:52"
            },
            "payable": false,
            "returnParameters": {
              "id": 12191,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12190,
                  "name": "_moderators",
                  "nodeType": "VariableDeclaration",
                  "scope": 12213,
                  "src": "3481:21:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12188,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "3481:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 12189,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "3481:9:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3480:23:52"
            },
            "scope": 12488,
            "src": "3317:528:52",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 12242,
              "nodeType": "Block",
              "src": "4617:311:52",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12240,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12223,
                      "name": "_participants",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12221,
                      "src": "4627:13:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 12225,
                          "name": "_count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12215,
                          "src": "4671:6:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12226,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "4691:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12227,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4691:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12228,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readFirstParticipant",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15971,
                          "src": "4691:38:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12229,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "4743:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12230,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4743:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12231,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readLastParticipant",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15983,
                          "src": "4743:37:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12232,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "4794:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12233,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4794:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12234,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readNextParticipant",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15998,
                          "src": "4794:37:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12235,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "4845:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12236,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4845:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12237,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readPreviousParticipant",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16013,
                          "src": "4845:41:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12238,
                          "name": "_from_start",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12217,
                          "src": "4900:11:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        ],
                        "id": 12224,
                        "name": "list_addresses",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21360,
                        "src": "4643:14:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_function_external_view$__$returns$_t_address_$_$_t_function_external_view$__$returns$_t_address_$_$_t_function_external_view$_t_address_$returns$_t_address_$_$_t_function_external_view$_t_address_$returns$_t_address_$_$_t_bool_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                          "typeString": "function (uint256,function () view external returns (address),function () view external returns (address),function (address) view external returns (address),function (address) view external returns (address),bool) view returns (address[] memory)"
                        }
                      },
                      "id": 12239,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4643:278:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "src": "4627:294:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "id": 12241,
                  "nodeType": "ExpressionStatement",
                  "src": "4627:294:52"
                }
              ]
            },
            "documentation": "@notice function to list participants\n@dev note that this list may include some additional entries that are\nnot participants in the current quarter. This may happen if they\nwere participants in the previous quarter, but have not confirmed\ntheir participation in the current quarter. For a single address,\na better way to know if participant or not is:\nDao.isParticipant(_user)\n@param _count number of addresses to list\n@param _from_start boolean, whether to list from start or end\n@return {\n\"_participants\": \"list of participant addresses\"\n}",
            "id": 12243,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "listParticipants",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12218,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12215,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 12243,
                  "src": "4509:14:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12214,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4509:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12217,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 12243,
                  "src": "4525:16:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 12216,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4525:4:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4508:34:52"
            },
            "payable": false,
            "returnParameters": {
              "id": 12222,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12221,
                  "name": "_participants",
                  "nodeType": "VariableDeclaration",
                  "scope": 12243,
                  "src": "4588:23:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12219,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "4588:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 12220,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "4588:9:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4587:25:52"
            },
            "scope": 12488,
            "src": "4483:445:52",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 12275,
              "nodeType": "Block",
              "src": "6097:349:52",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12273,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12255,
                      "name": "_participants",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12253,
                      "src": "6107:13:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 12257,
                          "name": "_currentParticipant",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12245,
                          "src": "6156:19:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12258,
                          "name": "_count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12247,
                          "src": "6189:6:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12259,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "6209:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12260,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6209:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12261,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readFirstParticipant",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15971,
                          "src": "6209:38:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12262,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "6261:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12263,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6261:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12264,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readLastParticipant",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15983,
                          "src": "6261:37:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12265,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "6312:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12266,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6312:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12267,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readNextParticipant",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 15998,
                          "src": "6312:37:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12268,
                              "name": "daoStakeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12136,
                              "src": "6363:15:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStakeStorage_$16026_$",
                                "typeString": "function () view returns (contract DaoStakeStorage)"
                              }
                            },
                            "id": 12269,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6363:17:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                              "typeString": "contract DaoStakeStorage"
                            }
                          },
                          "id": 12270,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "readPreviousParticipant",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16013,
                          "src": "6363:41:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12271,
                          "name": "_from_start",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12249,
                          "src": "6418:11:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                            "typeString": "function (address) view external returns (address)"
                          },
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        ],
                        "id": 12256,
                        "name": "list_addresses_from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21425,
                        "src": "6123:19:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_function_external_view$__$returns$_t_address_$_$_t_function_external_view$__$returns$_t_address_$_$_t_function_external_view$_t_address_$returns$_t_address_$_$_t_function_external_view$_t_address_$returns$_t_address_$_$_t_bool_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                          "typeString": "function (address,uint256,function () view external returns (address),function () view external returns (address),function (address) view external returns (address),function (address) view external returns (address),bool) view returns (address[] memory)"
                        }
                      },
                      "id": 12272,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6123:316:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "src": "6107:332:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "id": 12274,
                  "nodeType": "ExpressionStatement",
                  "src": "6107:332:52"
                }
              ]
            },
            "documentation": "@notice function to list participants from a particular participant\n@dev note that this list may include some additional entries that are\nnot participants in the current quarter. This may happen if they\nwere participants in the previous quarter, but have not confirmed\ntheir participation in the current quarter. For a single address,\na better way to know if participant or not is:\ncontracts.dao.isParticipant(_user)\nAnother note: this function will start listing AFTER the _currentParticipant\nFor example: we have [address1, address2, address3, address4]. listParticipantsFrom(address1, 2, true) = [address2, address3]\n@param _currentParticipant list from AFTER this participant address\n@param _count number of addresses to list\n@param _from_start boolean, whether to list from start or end\n@return {\n\"_participants\": \"list of participant addresses\"\n}",
            "id": 12276,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "listParticipantsFrom",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12250,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12245,
                  "name": "_currentParticipant",
                  "nodeType": "VariableDeclaration",
                  "scope": 12276,
                  "src": "5939:27:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12244,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5939:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12247,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 12276,
                  "src": "5976:14:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12246,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5976:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12249,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 12276,
                  "src": "6000:16:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 12248,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6000:4:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5929:93:52"
            },
            "payable": false,
            "returnParameters": {
              "id": 12254,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12253,
                  "name": "_participants",
                  "nodeType": "VariableDeclaration",
                  "scope": 12276,
                  "src": "6068:23:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12251,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "6068:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 12252,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "6068:9:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6067:25:52"
            },
            "scope": 12488,
            "src": "5900:546:52",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 12305,
              "nodeType": "Block",
              "src": "6871:273:52",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12303,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12286,
                      "name": "_proposals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12284,
                      "src": "6881:10:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 12288,
                          "name": "_count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12278,
                          "src": "6923:6:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12289,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "6943:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12290,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6943:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12291,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getFirstProposal",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16525,
                          "src": "6943:29:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12292,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "6986:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12293,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6986:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12294,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getLastProposal",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16537,
                          "src": "6986:28:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12295,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "7028:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12296,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7028:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12297,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getNextProposal",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16552,
                          "src": "7028:28:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12298,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "7070:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12299,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7070:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12300,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getPreviousProposal",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16567,
                          "src": "7070:32:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12301,
                          "name": "_from_start",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12280,
                          "src": "7116:11:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        ],
                        "id": 12287,
                        "name": "list_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21738,
                        "src": "6894:15:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_function_external_view$__$returns$_t_bytes32_$_$_t_function_external_view$__$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_bool_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "function (uint256,function () view external returns (bytes32),function () view external returns (bytes32),function (bytes32) view external returns (bytes32),function (bytes32) view external returns (bytes32),bool) view returns (bytes32[] memory)"
                        }
                      },
                      "id": 12302,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6894:243:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "src": "6881:256:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "id": 12304,
                  "nodeType": "ExpressionStatement",
                  "src": "6881:256:52"
                }
              ]
            },
            "documentation": "@notice function to list _count no. of proposals\n@param _count number of proposals to list\n@param _from_start boolean value, true if count from start, false if count from end\n@return {\n\"_proposals\": \"the list of proposal IDs\"\n}",
            "id": 12306,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "listProposals",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12281,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12278,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 12306,
                  "src": "6753:14:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12277,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6753:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12280,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 12306,
                  "src": "6777:16:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 12279,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6777:4:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6743:56:52"
            },
            "payable": false,
            "returnParameters": {
              "id": 12285,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12284,
                  "name": "_proposals",
                  "nodeType": "VariableDeclaration",
                  "scope": 12306,
                  "src": "6845:20:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12282,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "6845:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 12283,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "6845:9:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6844:22:52"
            },
            "scope": 12488,
            "src": "6721:423:52",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 12338,
              "nodeType": "Block",
              "src": "7700:308:52",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12336,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12318,
                      "name": "_proposals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12316,
                      "src": "7710:10:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 12320,
                          "name": "_currentProposal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12308,
                          "src": "7757:16:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12321,
                          "name": "_count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12310,
                          "src": "7787:6:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12322,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "7807:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12323,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7807:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12324,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getFirstProposal",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16525,
                          "src": "7807:29:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12325,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "7850:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12326,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7850:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12327,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getLastProposal",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16537,
                          "src": "7850:28:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12328,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "7892:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12329,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7892:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12330,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getNextProposal",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16552,
                          "src": "7892:28:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12331,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "7934:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12332,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7934:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12333,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getPreviousProposal",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16567,
                          "src": "7934:32:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12334,
                          "name": "_from_start",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12312,
                          "src": "7980:11:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        ],
                        "id": 12319,
                        "name": "list_bytesarray_from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21803,
                        "src": "7723:20:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_function_external_view$__$returns$_t_bytes32_$_$_t_function_external_view$__$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_bool_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "function (bytes32,uint256,function () view external returns (bytes32),function () view external returns (bytes32),function (bytes32) view external returns (bytes32),function (bytes32) view external returns (bytes32),bool) view returns (bytes32[] memory)"
                        }
                      },
                      "id": 12335,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7723:278:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "src": "7710:291:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "id": 12337,
                  "nodeType": "ExpressionStatement",
                  "src": "7710:291:52"
                }
              ]
            },
            "documentation": "@notice function to list _count no. of proposals from AFTER _currentProposal\n@param _currentProposal ID of proposal to list proposals from\n@param _count number of proposals to list\n@param _from_start boolean value, true if count forwards, false if count backwards\n@return {\n\"_proposals\": \"the list of proposal IDs\"\n}",
            "id": 12339,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "listProposalsFrom",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12313,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12308,
                  "name": "_currentProposal",
                  "nodeType": "VariableDeclaration",
                  "scope": 12339,
                  "src": "7548:24:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 12307,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7548:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12310,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 12339,
                  "src": "7582:14:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12309,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7582:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12312,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 12339,
                  "src": "7606:16:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 12311,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "7606:4:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7538:90:52"
            },
            "payable": false,
            "returnParameters": {
              "id": 12317,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12316,
                  "name": "_proposals",
                  "nodeType": "VariableDeclaration",
                  "scope": 12339,
                  "src": "7674:20:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12314,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "7674:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 12315,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "7674:9:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7673:22:52"
            },
            "scope": 12488,
            "src": "7512:496:52",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 12376,
              "nodeType": "Block",
              "src": "8522:373:52",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 12352,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "8540:21:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 12353,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8540:23:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 12351,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "8532:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 12354,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8532:32:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12355,
                  "nodeType": "ExpressionStatement",
                  "src": "8532:32:52"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12374,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12356,
                      "name": "_proposals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12349,
                      "src": "8574:10:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 12358,
                          "name": "_stateId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12341,
                          "src": "8624:8:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12359,
                          "name": "_count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12343,
                          "src": "8646:6:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12360,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "8666:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12361,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8666:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12362,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getFirstProposalInState",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16588,
                          "src": "8666:36:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12363,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "8716:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12364,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8716:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12365,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getLastProposalInState",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16609,
                          "src": "8716:35:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12366,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "8765:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12367,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8765:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12368,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getNextProposalInState",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16633,
                          "src": "8765:35:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12369,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "8814:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12370,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8814:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12371,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getPreviousProposalInState",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16657,
                          "src": "8814:39:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12372,
                          "name": "_from_start",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12345,
                          "src": "8867:11:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        ],
                        "id": 12357,
                        "name": "list_indexed_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22228,
                        "src": "8587:23:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$_t_bool_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "function (bytes32,uint256,function (bytes32) view external returns (bytes32),function (bytes32) view external returns (bytes32),function (bytes32,bytes32) view external returns (bytes32),function (bytes32,bytes32) view external returns (bytes32),bool) view returns (bytes32[] memory)"
                        }
                      },
                      "id": 12373,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8587:301:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "src": "8574:314:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "id": 12375,
                  "nodeType": "ExpressionStatement",
                  "src": "8574:314:52"
                }
              ]
            },
            "documentation": "@notice function to list _count no. of proposals in state _stateId\n@param _stateId state of proposal\n@param _count number of proposals to list\n@param _from_start boolean value, true if count from start, false if count from end\n@return {\n\"_proposals\": \"the list of proposal IDs\"\n}",
            "id": 12377,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "listProposalsInState",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12346,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12341,
                  "name": "_stateId",
                  "nodeType": "VariableDeclaration",
                  "scope": 12377,
                  "src": "8378:16:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 12340,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8378:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12343,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 12377,
                  "src": "8404:14:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12342,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8404:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12345,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 12377,
                  "src": "8428:16:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 12344,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8428:4:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8368:82:52"
            },
            "payable": false,
            "returnParameters": {
              "id": 12350,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12349,
                  "name": "_proposals",
                  "nodeType": "VariableDeclaration",
                  "scope": 12377,
                  "src": "8496:20:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12347,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "8496:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 12348,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "8496:9:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8495:22:52"
            },
            "scope": 12488,
            "src": "8339:556:52",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 12417,
              "nodeType": "Block",
              "src": "9540:408:52",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 12392,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "9558:21:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 12393,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9558:23:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 12391,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "9550:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 12394,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9550:32:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 12395,
                  "nodeType": "ExpressionStatement",
                  "src": "9550:32:52"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12415,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12396,
                      "name": "_proposals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12389,
                      "src": "9592:10:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 12398,
                          "name": "_stateId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12379,
                          "src": "9647:8:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12399,
                          "name": "_currentProposal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12381,
                          "src": "9669:16:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12400,
                          "name": "_count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12383,
                          "src": "9699:6:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12401,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "9719:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12402,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9719:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12403,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getFirstProposalInState",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16588,
                          "src": "9719:36:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12404,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "9769:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12405,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9769:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12406,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getLastProposalInState",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16609,
                          "src": "9769:35:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12407,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "9818:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12408,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9818:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12409,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getNextProposalInState",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16633,
                          "src": "9818:35:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12410,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "9867:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12411,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9867:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12412,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getPreviousProposalInState",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16657,
                          "src": "9867:39:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12413,
                          "name": "_from_start",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12385,
                          "src": "9920:11:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        ],
                        "id": 12397,
                        "name": "list_indexed_bytesarray_from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22305,
                        "src": "9605:28:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$_t_bool_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "function (bytes32,bytes32,uint256,function (bytes32) view external returns (bytes32),function (bytes32) view external returns (bytes32),function (bytes32,bytes32) view external returns (bytes32),function (bytes32,bytes32) view external returns (bytes32),bool) view returns (bytes32[] memory)"
                        }
                      },
                      "id": 12414,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9605:336:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "src": "9592:349:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "id": 12416,
                  "nodeType": "ExpressionStatement",
                  "src": "9592:349:52"
                }
              ]
            },
            "documentation": "@notice function to list _count no. of proposals in state _stateId from AFTER _currentProposal\n@param _stateId state of proposal\n@param _currentProposal ID of proposal to list proposals from\n@param _count number of proposals to list\n@param _from_start boolean value, true if count forwards, false if count backwards\n@return {\n\"_proposals\": \"the list of proposal IDs\"\n}",
            "id": 12418,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "listProposalsInStateFrom",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12386,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12379,
                  "name": "_stateId",
                  "nodeType": "VariableDeclaration",
                  "scope": 12418,
                  "src": "9362:16:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 12378,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9362:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12381,
                  "name": "_currentProposal",
                  "nodeType": "VariableDeclaration",
                  "scope": 12418,
                  "src": "9388:24:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 12380,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9388:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12383,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 12418,
                  "src": "9422:14:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12382,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9422:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12385,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 12418,
                  "src": "9446:16:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 12384,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "9446:4:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9352:116:52"
            },
            "payable": false,
            "returnParameters": {
              "id": 12390,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12389,
                  "name": "_proposals",
                  "nodeType": "VariableDeclaration",
                  "scope": 12418,
                  "src": "9514:20:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12387,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "9514:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 12388,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "9514:9:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9513:22:52"
            },
            "scope": 12488,
            "src": "9319:629:52",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 12450,
              "nodeType": "Block",
              "src": "10444:333:52",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12448,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12430,
                      "name": "_versions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12428,
                      "src": "10454:9:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 12432,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12420,
                          "src": "10503:11:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12433,
                          "name": "_count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12422,
                          "src": "10528:6:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12434,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "10548:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12435,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10548:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12436,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getFirstProposalVersion",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16779,
                          "src": "10548:36:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12437,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "10598:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12438,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10598:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12439,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getLastProposalVersion",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16802,
                          "src": "10598:35:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12440,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "10647:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12441,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10647:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12442,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getNextProposalVersion",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16828,
                          "src": "10647:35:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12443,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "10696:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12444,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10696:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12445,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getPreviousProposalVersion",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16854,
                          "src": "10696:39:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12446,
                          "name": "_from_start",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12424,
                          "src": "10749:11:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        ],
                        "id": 12431,
                        "name": "list_indexed_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22228,
                        "src": "10466:23:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$_t_bool_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "function (bytes32,uint256,function (bytes32) view external returns (bytes32),function (bytes32) view external returns (bytes32),function (bytes32,bytes32) view external returns (bytes32),function (bytes32,bytes32) view external returns (bytes32),bool) view returns (bytes32[] memory)"
                        }
                      },
                      "id": 12447,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10466:304:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "src": "10454:316:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "id": 12449,
                  "nodeType": "ExpressionStatement",
                  "src": "10454:316:52"
                }
              ]
            },
            "documentation": "@notice function to list proposal versions\n@param _proposalId ID of the proposal\n@param _count number of proposal versions to list\n@param _from_start boolean, true to list from start, false to list from end\n@return {\n\"_versions\": \"list of proposal versions\"\n}",
            "id": 12451,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "listProposalVersions",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12425,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12420,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 12451,
                  "src": "10298:19:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 12419,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10298:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12422,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 12451,
                  "src": "10327:14:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12421,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10327:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12424,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 12451,
                  "src": "10351:16:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 12423,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "10351:4:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10288:85:52"
            },
            "payable": false,
            "returnParameters": {
              "id": 12429,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12428,
                  "name": "_versions",
                  "nodeType": "VariableDeclaration",
                  "scope": 12451,
                  "src": "10419:19:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12426,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "10419:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 12427,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "10419:9:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10418:21:52"
            },
            "scope": 12488,
            "src": "10259:518:52",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 12486,
              "nodeType": "Block",
              "src": "11406:367:52",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12484,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12465,
                      "name": "_versions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12463,
                      "src": "11416:9:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 12467,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12453,
                          "src": "11470:11:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12468,
                          "name": "_currentVersion",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12455,
                          "src": "11495:15:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12469,
                          "name": "_count",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12457,
                          "src": "11524:6:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12470,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "11544:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12471,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11544:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12472,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getFirstProposalVersion",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16779,
                          "src": "11544:36:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12473,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "11594:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12474,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11594:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12475,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getLastProposalVersion",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16802,
                          "src": "11594:35:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12476,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "11643:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12477,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11643:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12478,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getNextProposalVersion",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16828,
                          "src": "11643:35:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 12479,
                              "name": "daoStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12150,
                              "src": "11692:10:52",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoStorage_$17874_$",
                                "typeString": "function () view returns (contract DaoStorage)"
                              }
                            },
                            "id": 12480,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11692:12:52",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoStorage_$17874",
                              "typeString": "contract DaoStorage"
                            }
                          },
                          "id": 12481,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getPreviousProposalVersion",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16854,
                          "src": "11692:39:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 12482,
                          "name": "_from_start",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12459,
                          "src": "11745:11:52",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$",
                            "typeString": "function (bytes32,bytes32) view external returns (bytes32)"
                          },
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        ],
                        "id": 12466,
                        "name": "list_indexed_bytesarray_from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22305,
                        "src": "11428:28:52",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$_t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$_$_t_bool_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                          "typeString": "function (bytes32,bytes32,uint256,function (bytes32) view external returns (bytes32),function (bytes32) view external returns (bytes32),function (bytes32,bytes32) view external returns (bytes32),function (bytes32,bytes32) view external returns (bytes32),bool) view returns (bytes32[] memory)"
                        }
                      },
                      "id": 12483,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11428:338:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "src": "11416:350:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "id": 12485,
                  "nodeType": "ExpressionStatement",
                  "src": "11416:350:52"
                }
              ]
            },
            "documentation": "@notice function to list proposal versions from AFTER a particular version\n@param _proposalId ID of the proposal\n@param _currentVersion version to list _count versions from\n@param _count number of proposal versions to list\n@param _from_start boolean, true to list from start, false to list from end\n@return {\n\"_versions\": \"list of proposal versions\"\n}",
            "id": 12487,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "listProposalVersionsFrom",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12460,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12453,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 12487,
                  "src": "11227:19:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 12452,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11227:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12455,
                  "name": "_currentVersion",
                  "nodeType": "VariableDeclaration",
                  "scope": 12487,
                  "src": "11256:23:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 12454,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11256:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12457,
                  "name": "_count",
                  "nodeType": "VariableDeclaration",
                  "scope": 12487,
                  "src": "11289:14:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12456,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11289:7:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12459,
                  "name": "_from_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 12487,
                  "src": "11313:16:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 12458,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "11313:4:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11217:118:52"
            },
            "payable": false,
            "returnParameters": {
              "id": 12464,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12463,
                  "name": "_versions",
                  "nodeType": "VariableDeclaration",
                  "scope": 12487,
                  "src": "11381:19:52",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 12461,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "11381:7:52",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 12462,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "11381:9:52",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11380:21:52"
            },
            "scope": 12488,
            "src": "11184:589:52",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 12489,
        "src": "586:11189:52"
      }
    ],
    "src": "0:11776:52"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {
    "42": {
      "events": {},
      "links": {},
      "address": "0x5300881f981fecad96bad812dfbe39a299b544ce",
      "transactionHash": "0x05f05036417cbf98841536bcddf8f4e99dacd573a4c212e23e2feca852453210"
    }
  },
  "schemaVersion": "2.0.2",
  "updatedAt": "2020-03-16T08:53:49.653Z"
}