{
  "contractName": "DaoSpecialStorage",
  "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": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_proposer",
          "type": "address"
        },
        {
          "name": "_uintConfigs",
          "type": "uint256[]"
        },
        {
          "name": "_addressConfigs",
          "type": "address[]"
        },
        {
          "name": "_bytesConfigs",
          "type": "bytes32[]"
        }
      ],
      "name": "addSpecialProposal",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "readProposal",
      "outputs": [
        {
          "name": "_id",
          "type": "bytes32"
        },
        {
          "name": "_proposer",
          "type": "address"
        },
        {
          "name": "_timeCreated",
          "type": "uint256"
        },
        {
          "name": "_timeVotingStarted",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "readProposalProposer",
      "outputs": [
        {
          "name": "_proposer",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "readConfigs",
      "outputs": [
        {
          "name": "_uintConfigs",
          "type": "uint256[]"
        },
        {
          "name": "_addressConfigs",
          "type": "address[]"
        },
        {
          "name": "_bytesConfigs",
          "type": "bytes32[]"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_allUsers",
          "type": "address[]"
        }
      ],
      "name": "readVotingCount",
      "outputs": [
        {
          "name": "_for",
          "type": "uint256"
        },
        {
          "name": "_against",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "readVotingTime",
      "outputs": [
        {
          "name": "_start",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_hash",
          "type": "bytes32"
        },
        {
          "name": "_voter",
          "type": "address"
        }
      ],
      "name": "commitVote",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_voter",
          "type": "address"
        }
      ],
      "name": "readComittedVote",
      "outputs": [
        {
          "name": "_commitHash",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_time",
          "type": "uint256"
        }
      ],
      "name": "setVotingTime",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "readVotingResult",
      "outputs": [
        {
          "name": "_result",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_result",
          "type": "bool"
        }
      ],
      "name": "setPass",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_claimed",
          "type": "bool"
        }
      ],
      "name": "setVotingClaim",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "isClaimed",
      "outputs": [
        {
          "name": "_claimed",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_voter",
          "type": "address"
        }
      ],
      "name": "readVote",
      "outputs": [
        {
          "name": "_vote",
          "type": "bool"
        },
        {
          "name": "_weight",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_voter",
          "type": "address"
        },
        {
          "name": "_vote",
          "type": "bool"
        },
        {
          "name": "_weight",
          "type": "uint256"
        }
      ],
      "name": "revealVote",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405260006001026003906000191690556000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f70726f706f73616c5f73746174655f70726570726f706f73616c0000000000006005906000191690557f70726f706f73616c5f73746174655f64726166740000000000000000000000006006906000191690557f70726f706f73616c5f73746174655f6d6f6465726174656400000000000000006007906000191690557f70726f706f73616c5f73746174655f6f6e676f696e67000000000000000000006008906000191690557f70726f706f73616c5f73746174655f636c6f73656400000000000000000000006009906000191690557f70726f706f73616c5f73746174655f6172636869766564000000000000000000600a906000191690556001600b556002600c556003600d556001600e556002600f5560036010557f696e7465725f6467645f696400000000000000000000000000000000000000006011906000191690557f696e7465725f6d6f645f6467645f6964000000000000000000000000000000006012906000191690557f696e7465725f626f6e75735f63616c63756c6174696f6e5f69640000000000006013906000191690557f64616f00000000000000000000000000000000000000000000000000000000006014906000191690557f64616f3a7370656369616c3a70726f706f73616c0000000000000000000000006015906000191690557f64616f3a7374616b652d6c6f636b696e670000000000000000000000000000006016906000191690557f64616f3a766f74696e67000000000000000000000000000000000000000000006017906000191690557f64616f3a766f74696e673a636c61696d730000000000000000000000000000006018906000191690557f64616f3a73766f74696e673a636c61696d7300000000000000000000000000006019906000191690557f64616f3a6964656e746974790000000000000000000000000000000000000000601a906000191690557f64616f3a726577617264732d6d616e6167657200000000000000000000000000601b906000191690557f64616f3a726577617264732d6578747261730000000000000000000000000000601c906000191690557f64616f3a726f6c65730000000000000000000000000000000000000000000000601d906000191690557f64616f3a66756e64696e672d6d616e6167657200000000000000000000000000601e906000191690557f64616f3a77686974656c697374696e6700000000000000000000000000000000601f906000191690557f64616f3a696e666f726d6174696f6e00000000000000000000000000000000006020906000191690557f736572766963653a726f6c6500000000000000000000000000000000000000006021906000191690557f736572766963653a64616f3a696e666f000000000000000000000000000000006022906000191690557f736572766963653a64616f3a6c697374696e67000000000000000000000000006023906000191690557f736572766963653a64616f3a63616c63756c61746f72000000000000000000006024906000191690557f73746f726167653a64616f0000000000000000000000000000000000000000006025906000191690557f73746f726167653a64616f3a636f756e746572000000000000000000000000006026906000191690557f73746f726167653a64616f3a75706772616465000000000000000000000000006027906000191690557f73746f726167653a64616f3a6964656e746974790000000000000000000000006028906000191690557f73746f726167653a64616f3a706f696e747300000000000000000000000000006029906000191690557f73746f726167653a64616f3a7370656369616c00000000000000000000000000602a906000191690557f73746f726167653a64616f3a636f6e6669670000000000000000000000000000602b906000191690557f73746f726167653a64616f3a7374616b65000000000000000000000000000000602c906000191690557f73746f726167653a64616f3a7265776172647300000000000000000000000000602d906000191690557f73746f726167653a64616f3a77686974656c697374696e670000000000000000602e906000191690557f73746f726167653a696e7465726d6564696174653a726573756c747300000000602f906000191690557f743a6467640000000000000000000000000000000000000000000000000000006030906000191690557f743a6467780000000000000000000000000000000000000000000000000000006031906000191690557f743a6261646765000000000000000000000000000000000000000000000000006032906000191690556001603360006101000a81548160ff021916908360ff1602179055506002603360016101000a81548160ff021916908360ff1602179055506003603360026101000a81548160ff021916908360ff1602179055506004603360036101000a81548160ff021916908360ff1602179055506276a7006034557f6d696e5f6467645f7061727469636970616e74000000000000000000000000006035906000191690557f6d696e5f6467645f6d6f64657261746f720000000000000000000000000000006036906000191690557f6d696e5f72657075746174696f6e5f6d6f64657261746f7200000000000000006037906000191690557f6c6f636b696e675f70686173655f6475726174696f6e000000000000000000006038906000191690557f717561727465725f6475726174696f6e000000000000000000000000000000006039906000191690557f766f74696e675f636f6d6d69745f706861736500000000000000000000000000603a906000191690557f766f74696e675f70686173655f746f74616c0000000000000000000000000000603b906000191690557f696e746572696d5f766f74696e675f636f6d6d69745f70686173650000000000603c906000191690557f696e746572696d5f766f74696e675f70686173655f746f74616c000000000000603d906000191690557f64726166745f71756f72756d5f66697865645f6e756d657261746f7200000000603e906000191690557f64726166745f71756f72756d5f66697865645f64656e6f6d696e61746f720000603f906000191690557f64726166745f71756f72756d5f73666163746f725f6e756d657261746f7200006040906000191690557f64726166745f71756f72756d5f73666163746f725f64656e6f6d696e61746f726041906000191690557f766f74655f71756f72756d5f66697865645f6e756d657261746f7200000000006042906000191690557f766f74655f71756f72756d5f66697865645f64656e6f6d696e61746f720000006043906000191690557f766f74655f71756f72756d5f73666163746f725f6e756d657261746f720000006044906000191690557f766f74655f71756f72756d5f73666163746f725f64656e6f6d696e61746f72006045906000191690557f66696e616c5f7265776172645f73666163746f725f6e756d657261746f7200006046906000191690557f66696e616c5f7265776172645f73666163746f725f64656e6f6d696e61746f726047906000191690557f64726166745f71756f74615f6e756d657261746f7200000000000000000000006048906000191690557f64726166745f71756f74615f64656e6f6d696e61746f720000000000000000006049906000191690557f766f74696e675f71756f74615f6e756d657261746f7200000000000000000000604a906000191690557f766f74696e675f71756f74615f64656e6f6d696e61746f720000000000000000604b906000191690557f6d696e696d616c5f717000000000000000000000000000000000000000000000604c906000191690557f717561727465725f706f696e745f7363616c696e675f666163746f7200000000604d906000191690557f7265705f706f696e745f7363616c696e675f666163746f720000000000000000604e906000191690557f6d696e696d616c5f6d6f645f7170000000000000000000000000000000000000604f906000191690557f6d6f645f71705f7363616c696e675f666163746f7200000000000000000000006050906000191690557f6d6f645f7265705f706f696e745f7363616c696e675f666163746f72000000006051906000191690557f717561727465725f706f696e745f64726166745f766f746500000000000000006052906000191690557f717561727465725f706f696e745f766f746500000000000000000000000000006053906000191690557f717561727465725f706f696e745f696e746572696d5f766f74650000000000006054906000191690557f715f705f6d696c6573746f6e655f636f6d706c6574696f6e00000000000000006055906000191690557f626f6e75735f72657075746174696f6e5f6e756d657261746f720000000000006056906000191690557f626f6e75735f72657075746174696f6e5f64656e6f6d696e61746f72000000006057906000191690557f7370656369616c5f70726f706f73616c5f636f6d6d69745f70686173650000006058906000191690557f7370656369616c5f70726f706f73616c5f70686173655f746f74616c000000006059906000191690557f636f6e6669675f7370656369616c5f71756f74615f6e756d657261746f720000605a906000191690557f636f6e6669675f7370656369616c5f71756f74615f64656e6f6d696e61746f72605b906000191690557f7370656369616c5f71756f72756d5f6e756d657261746f720000000000000000605c906000191690557f7370656369616c5f71756f72756d5f64656e6f6d696e61746f72000000000000605d906000191690557f636f6e6669675f6d61785f72657075746174696f6e5f646564756374696f6e00605e906000191690557f636f6e6669675f70756e6973686d656e745f6e6f745f6c6f636b696e67000000605f906000191690557f636f6e6669675f7265705f7065725f65787472615f71705f6e756d00000000006060906000191690557f636f6e6669675f7265705f7065725f65787472615f71705f64656e00000000006061906000191690557f636f6e6669675f6d61785f6d5f72705f646564756374696f6e000000000000006062906000191690557f636f6e6669675f7265705f7065725f65787472615f6d5f71705f6e756d0000006063906000191690557f636f6e6669675f7265705f7065725f65787472615f6d5f71705f64656e0000006064906000191690557f636f6e6669675f6d6f645f706f7274696f6e5f6e756d000000000000000000006065906000191690557f636f6e6669675f6d6f645f706f7274696f6e5f64656e000000000000000000006066906000191690557f636f6e6669675f64726166745f766f74696e675f7068617365000000000000006067906000191690557f636f6e6669675f72705f626f6f73745f7065725f6261646765000000000000006068906000191690557f636f6e6669675f636c61696d696e675f646561646c696e6500000000000000006069906000191690557f636f6e6669675f70726570726f706f73616c5f636f6c6c61746572616c000000606a906000191690557f636f6e6669675f6d61785f66756e64696e675f6e6f6e44696769780000000000606b906000191690557f636f6e6669675f6d61785f6d696c6573746f6e65735f6e6f6e44696769780000606c906000191690557f636f6e6669675f6e6f6e44696769785f70726f706f73616c5f63617000000000606d906000191690557f636f6e6669675f646561645f6475726174696f6e000000000000000000000000606e906000191690557f636f6e6669675f63765f72657075746174696f6e000000000000000000000000606f906000191690553480156200113457600080fd5b5060405160208062002d7d8339810180604052810190808051906020019092919050505062001175602a548262001188640100000000026401000000009004565b15156200118157600080fd5b5062001419565b6000808273ffffffffffffffffffffffffffffffffffffffff16636d19a8826040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015620011f057600080fd5b505af115801562001205573d6000803e3d6000fd5b505050506040513d60208110156200121c57600080fd5b810190808051906020019092919050505090506000151581151514156200140d5730600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600181600019169055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c0f6ef4a600154600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015620013ba57600080fd5b505af1158015620013cf573d6000803e3d6000fd5b505050506040513d6020811015620013e657600080fd5b810190808051906020019092919050505015156200140357600080fd5b6001915062001412565b600091505b5092915050565b61195480620014296000396000f300608060405260043610610107576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304f3bcec1461010c5780630d92dfb2146101635780632e278bf9146101a05780633943380c146101ff5780633f83acff14610232578063462d701f146102a357806356ecd6571461030a5780635b712eb6146104205780636999b93f1461049157806373758c22146104cc57806379e4ce9d146105305780638839a29d146105795780638b8a7593146105be578063b89c3952146106d8578063d6ae87bf14610721578063d8d501791461075e578063db4ecbc1146107ec578063e5c2654e14610843578063f31a1ba2146108b3575b600080fd5b34801561011857600080fd5b50610121610920565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016f57600080fd5b5061019e6004803603810190808035600019169060200190929190803515159060200190929190505050610945565b005b3480156101ac57600080fd5b506101fd60048036038101908080356000191690602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610998565b005b34801561020b57600080fd5b50610214610a1a565b60405180826000191660001916815260200191505060405180910390f35b34801561023e57600080fd5b506102616004803603810190808035600019169060200190929190505050610a20565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102af57600080fd5b506103086004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919080359060200190929190505050610afc565b005b34801561031657600080fd5b506103396004803603810190808035600019169060200190929190505050610c02565b60405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015610384578082015181840152602081019050610369565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156103c65780820151818401526020810190506103ab565b50505050905001848103825285818151815260200191508051906020019060200280838360005b838110156104085780820151818401526020810190506103ed565b50505050905001965050505050505060405180910390f35b34801561042c57600080fd5b5061044f6004803603810190808035600019169060200190929190505050610d95565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561049d57600080fd5b506104ca600480360381019080803560001916906020019092919080359060200190929190505050610ddd565b005b3480156104d857600080fd5b506105136004803603810190808035600019169060200190929190803590602001908201803590602001919091929391929390505050610e1d565b604051808381526020018281526020019250505060405180910390f35b34801561053c57600080fd5b5061055f6004803603810190808035600019169060200190929190505050610f32565b604051808215151515815260200191505060405180910390f35b34801561058557600080fd5b506105a86004803603810190808035600019169060200190929190505050610f7d565b6040518082815260200191505060405180910390f35b3480156105ca57600080fd5b506106d66004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610fbb565b005b3480156106e457600080fd5b50610707600480360381019080803560001916906020019092919050505061121e565b604051808215151515815260200191505060405180910390f35b34801561072d57600080fd5b5061075c6004803603810190808035600019169060200190929190803515159060200190929190505050611269565b005b34801561076a57600080fd5b5061078d60048036038101908080356000191690602001909291905050506112c2565b6040518085600019166000191681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200194505050505060405180910390f35b3480156107f857600080fd5b50610801611376565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561084f57600080fd5b506108926004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061139c565b60405180831515151581526020018281526020019250505060405180910390f35b3480156108bf57600080fd5b506109026004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114bf565b60405180826000191660001916815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61095060195461153b565b151561095b57600080fd5b8060766000846000191660001916815260200190815260200160002060020160050160006101000a81548160ff0219169083151502179055505050565b6109a360175461153b565b15156109ae57600080fd5b8160766000856000191660001916815260200190815260200160002060020160020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208160001916905550505050565b60015481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015610aba57600080fd5b505af1158015610ace573d6000803e3d6000fd5b505050506040513d6020811015610ae457600080fd5b81019080805190602001909291905050509050919050565b610b0760175461153b565b1515610b1257600080fd5b60766000856000191660001916815260200190815260200160002060020173__DaoStructs____________________________631a14c51b90918585856040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018315151515815260200182815260200194505050505060006040518083038186803b158015610be457600080fd5b505af4158015610bf8573d6000803e3d6000fd5b5050505050505050565b6060806060607660008560001916600019168152602001908152602001600020600801805480602002602001604051908101604052809291908181526020018280548015610c6f57602002820191906000526020600020905b815481526020019060010190808311610c5b575b50505050509250607660008560001916600019168152602001908152602001600020600901805480602002602001604051908101604052809291908181526020018280548015610d1457602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610cca575b50505050509150607660008560001916600019168152602001908152602001600020600a01805480602002602001604051908101604052809291908181526020018280548015610d8757602002820191906000526020600020905b81546000191681526020019060010190808311610d6f575b505050505090509193909250565b6000607660008360001916600019168152602001908152602001600020600b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b610de860155461153b565b1515610df357600080fd5b80607660008460001916600019168152602001908152602001600020600201600001819055505050565b600080610e28611645565b1515610e3357600080fd5b60766000866000191660001916815260200190815260200160002060020173__DaoStructs____________________________63b31ee28c909186866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018060200182810382528484828181526020019250602002808284378201915050945050505050604080518083038186803b158015610ee157600080fd5b505af4158015610ef5573d6000803e3d6000fd5b505050506040513d6040811015610f0b57600080fd5b81019080805190602001909291908051906020019092919050505091509150935093915050565b6000610f3c611645565b1515610f4757600080fd5b60766000836000191660001916815260200190815260200160002060020160050160009054906101000a900460ff169050919050565b6000610f87611645565b1515610f9257600080fd5b607660008360001916600019168152602001908152602001600020600201600001549050919050565b610fc660155461153b565b1515610fd157600080fd5b600354600019166076600087600019166000191681526020019081526020016000206000015460001916148015611012575060035460001916856000191614155b151561101d57600080fd5b607073__DoublyLinkedList______________________63582f30b49091876040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b15801561109b57600080fd5b505af41580156110af573d6000803e3d6000fd5b505050506040513d60208110156110c557600080fd5b81019080805190602001909291905050505084607660008760001916600019168152602001908152602001600020600001816000191690555083607660008760001916600019168152602001908152602001600020600b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555042607660008760001916600019168152602001908152602001600020600101819055508260766000876000191660001916815260200190815260200160002060080190805190602001906111b0929190611771565b508160766000876000191660001916815260200190815260200160002060090190805190602001906111e39291906117be565b5080607660008760001916600019168152602001908152602001600020600a019080519060200190611216929190611848565b505050505050565b6000611228611645565b151561123357600080fd5b60766000836000191660001916815260200190815260200160002060020160050160019054906101000a900460ff169050919050565b600061127660195461153b565b151561128157600080fd5b6076600084600019166000191681526020019081526020016000209050818160020160050160016101000a81548160ff021916908315150217905550505050565b600080600080607660008660001916600019168152602001908152602001600020600001549350607660008660001916600019168152602001908152602001600020600b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692506076600086600019166000191681526020019081526020016000206001015491506076600086600019166000191681526020019081526020016000206002016000015490509193509193565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806113a7611645565b15156113b257600080fd5b60766000856000191660001916815260200190815260200160002060020173__DaoStructs____________________________634bf150b99091856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604080518083038186803b15801561146f57600080fd5b505af4158015611483573d6000803e3d6000fd5b505050506040513d604081101561149957600080fd5b810190808051906020019092919080519060200190929190505050915091509250929050565b60006114c9611645565b15156114d457600080fd5b60766000846000191660001916815260200190815260200160002060020160020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156115d557600080fd5b505af11580156115e9573d6000803e3d6000fd5b505050506040513d60208110156115ff57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16149050919050565b60003273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061175a575061168461175f565b73ffffffffffffffffffffffffffffffffffffffff16639b19251a336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561171e57600080fd5b505af1158015611732573d6000803e3d6000fd5b505050506040513d602081101561174857600080fd5b81019080805190602001909291905050505b905090565b600061176c602e54610a20565b905090565b8280548282559060005260206000209081019282156117ad579160200282015b828111156117ac578251825591602001919060010190611791565b5b5090506117ba919061189b565b5090565b828054828255906000526020600020908101928215611837579160200282015b828111156118365782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906117de565b5b50905061184491906118c0565b5090565b82805482825590600052602060002090810192821561188a579160200282015b82811115611889578251829060001916905591602001919060010190611868565b5b5090506118979190611903565b5090565b6118bd91905b808211156118b95760008160009055506001016118a1565b5090565b90565b61190091905b808211156118fc57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506001016118c6565b5090565b90565b61192591905b80821115611921576000816000905550600101611909565b5090565b905600a165627a7a723058201d0dafa412a4b01468d102ad370ff174fafc071fc6bf3bbd0a8c7d3bb44db1d40029",
  "deployedBytecode": "0x608060405260043610610107576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304f3bcec1461010c5780630d92dfb2146101635780632e278bf9146101a05780633943380c146101ff5780633f83acff14610232578063462d701f146102a357806356ecd6571461030a5780635b712eb6146104205780636999b93f1461049157806373758c22146104cc57806379e4ce9d146105305780638839a29d146105795780638b8a7593146105be578063b89c3952146106d8578063d6ae87bf14610721578063d8d501791461075e578063db4ecbc1146107ec578063e5c2654e14610843578063f31a1ba2146108b3575b600080fd5b34801561011857600080fd5b50610121610920565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016f57600080fd5b5061019e6004803603810190808035600019169060200190929190803515159060200190929190505050610945565b005b3480156101ac57600080fd5b506101fd60048036038101908080356000191690602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610998565b005b34801561020b57600080fd5b50610214610a1a565b60405180826000191660001916815260200191505060405180910390f35b34801561023e57600080fd5b506102616004803603810190808035600019169060200190929190505050610a20565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102af57600080fd5b506103086004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919080359060200190929190505050610afc565b005b34801561031657600080fd5b506103396004803603810190808035600019169060200190929190505050610c02565b60405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015610384578082015181840152602081019050610369565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156103c65780820151818401526020810190506103ab565b50505050905001848103825285818151815260200191508051906020019060200280838360005b838110156104085780820151818401526020810190506103ed565b50505050905001965050505050505060405180910390f35b34801561042c57600080fd5b5061044f6004803603810190808035600019169060200190929190505050610d95565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561049d57600080fd5b506104ca600480360381019080803560001916906020019092919080359060200190929190505050610ddd565b005b3480156104d857600080fd5b506105136004803603810190808035600019169060200190929190803590602001908201803590602001919091929391929390505050610e1d565b604051808381526020018281526020019250505060405180910390f35b34801561053c57600080fd5b5061055f6004803603810190808035600019169060200190929190505050610f32565b604051808215151515815260200191505060405180910390f35b34801561058557600080fd5b506105a86004803603810190808035600019169060200190929190505050610f7d565b6040518082815260200191505060405180910390f35b3480156105ca57600080fd5b506106d66004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610fbb565b005b3480156106e457600080fd5b50610707600480360381019080803560001916906020019092919050505061121e565b604051808215151515815260200191505060405180910390f35b34801561072d57600080fd5b5061075c6004803603810190808035600019169060200190929190803515159060200190929190505050611269565b005b34801561076a57600080fd5b5061078d60048036038101908080356000191690602001909291905050506112c2565b6040518085600019166000191681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200194505050505060405180910390f35b3480156107f857600080fd5b50610801611376565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561084f57600080fd5b506108926004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061139c565b60405180831515151581526020018281526020019250505060405180910390f35b3480156108bf57600080fd5b506109026004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114bf565b60405180826000191660001916815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61095060195461153b565b151561095b57600080fd5b8060766000846000191660001916815260200190815260200160002060020160050160006101000a81548160ff0219169083151502179055505050565b6109a360175461153b565b15156109ae57600080fd5b8160766000856000191660001916815260200190815260200160002060020160020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208160001916905550505050565b60015481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015610aba57600080fd5b505af1158015610ace573d6000803e3d6000fd5b505050506040513d6020811015610ae457600080fd5b81019080805190602001909291905050509050919050565b610b0760175461153b565b1515610b1257600080fd5b60766000856000191660001916815260200190815260200160002060020173__DaoStructs____________________________631a14c51b90918585856040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018315151515815260200182815260200194505050505060006040518083038186803b158015610be457600080fd5b505af4158015610bf8573d6000803e3d6000fd5b5050505050505050565b6060806060607660008560001916600019168152602001908152602001600020600801805480602002602001604051908101604052809291908181526020018280548015610c6f57602002820191906000526020600020905b815481526020019060010190808311610c5b575b50505050509250607660008560001916600019168152602001908152602001600020600901805480602002602001604051908101604052809291908181526020018280548015610d1457602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610cca575b50505050509150607660008560001916600019168152602001908152602001600020600a01805480602002602001604051908101604052809291908181526020018280548015610d8757602002820191906000526020600020905b81546000191681526020019060010190808311610d6f575b505050505090509193909250565b6000607660008360001916600019168152602001908152602001600020600b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b610de860155461153b565b1515610df357600080fd5b80607660008460001916600019168152602001908152602001600020600201600001819055505050565b600080610e28611645565b1515610e3357600080fd5b60766000866000191660001916815260200190815260200160002060020173__DaoStructs____________________________63b31ee28c909186866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018060200182810382528484828181526020019250602002808284378201915050945050505050604080518083038186803b158015610ee157600080fd5b505af4158015610ef5573d6000803e3d6000fd5b505050506040513d6040811015610f0b57600080fd5b81019080805190602001909291908051906020019092919050505091509150935093915050565b6000610f3c611645565b1515610f4757600080fd5b60766000836000191660001916815260200190815260200160002060020160050160009054906101000a900460ff169050919050565b6000610f87611645565b1515610f9257600080fd5b607660008360001916600019168152602001908152602001600020600201600001549050919050565b610fc660155461153b565b1515610fd157600080fd5b600354600019166076600087600019166000191681526020019081526020016000206000015460001916148015611012575060035460001916856000191614155b151561101d57600080fd5b607073__DoublyLinkedList______________________63582f30b49091876040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b15801561109b57600080fd5b505af41580156110af573d6000803e3d6000fd5b505050506040513d60208110156110c557600080fd5b81019080805190602001909291905050505084607660008760001916600019168152602001908152602001600020600001816000191690555083607660008760001916600019168152602001908152602001600020600b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555042607660008760001916600019168152602001908152602001600020600101819055508260766000876000191660001916815260200190815260200160002060080190805190602001906111b0929190611771565b508160766000876000191660001916815260200190815260200160002060090190805190602001906111e39291906117be565b5080607660008760001916600019168152602001908152602001600020600a019080519060200190611216929190611848565b505050505050565b6000611228611645565b151561123357600080fd5b60766000836000191660001916815260200190815260200160002060020160050160019054906101000a900460ff169050919050565b600061127660195461153b565b151561128157600080fd5b6076600084600019166000191681526020019081526020016000209050818160020160050160016101000a81548160ff021916908315150217905550505050565b600080600080607660008660001916600019168152602001908152602001600020600001549350607660008660001916600019168152602001908152602001600020600b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692506076600086600019166000191681526020019081526020016000206001015491506076600086600019166000191681526020019081526020016000206002016000015490509193509193565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806113a7611645565b15156113b257600080fd5b60766000856000191660001916815260200190815260200160002060020173__DaoStructs____________________________634bf150b99091856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604080518083038186803b15801561146f57600080fd5b505af4158015611483573d6000803e3d6000fd5b505050506040513d604081101561149957600080fd5b810190808051906020019092919080519060200190929190505050915091509250929050565b60006114c9611645565b15156114d457600080fd5b60766000846000191660001916815260200190815260200160002060020160020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156115d557600080fd5b505af11580156115e9573d6000803e3d6000fd5b505050506040513d60208110156115ff57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16149050919050565b60003273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061175a575061168461175f565b73ffffffffffffffffffffffffffffffffffffffff16639b19251a336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561171e57600080fd5b505af1158015611732573d6000803e3d6000fd5b505050506040513d602081101561174857600080fd5b81019080805190602001909291905050505b905090565b600061176c602e54610a20565b905090565b8280548282559060005260206000209081019282156117ad579160200282015b828111156117ac578251825591602001919060010190611791565b5b5090506117ba919061189b565b5090565b828054828255906000526020600020908101928215611837579160200282015b828111156118365782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906117de565b5b50905061184491906118c0565b5090565b82805482825590600052602060002090810192821561188a579160200282015b82811115611889578251829060001916905591602001919060010190611868565b5b5090506118979190611903565b5090565b6118bd91905b808211156118b95760008160009055506001016118a1565b5090565b90565b61190091905b808211156118fc57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506001016118c6565b5090565b90565b61192591905b80821115611921576000816000905550600101611909565b5090565b905600a165627a7a723058201d0dafa412a4b01468d102ad370ff174fafc071fc6bf3bbd0a8c7d3bb44db1d40029",
  "sourceMap": "217:5253:58:-;;;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;;;;;;;;708:109:58;8:9:-1;5:2;;;30:1;27;20:12;5:2;708:109:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;764:45;769:28;;799:9;764:4;;;:45;;;:::i;:::-;756:54;;;;;;;;708:109;217:5253;;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;217:5253:58:-;;;;;;;",
  "deployedSourceMap": "217:5253:58:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;237:23:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;237:23:67;;;;;;;;;;;;;;;;;;;;;;;;;;;4223:202:58;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4223:202:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3276:244;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3276:244:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5191:277:58;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5191:277:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2328:438;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2328:438:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2328:438:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2328:438:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2328:438:58;;;;;;;;;;;;;;;;;;;;;2139:183;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2139:183:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3787:205;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3787:205:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2772:271;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2772:271:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3998:219;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3998:219:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3049:221;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3049:221:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;823:818;;8:9:-1;5:2;;;30:1;27;20:12;5:2;823:818:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4715:215;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4715:215:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4431:278;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4431:278:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1647:486;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1647:486:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;344:31:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;344:31:67;;;;;;;;;;;;;;;;;;;;;;;;;;;4936:249:58;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4936:249:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3526:255;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3526:255:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;237:23:67;;;;;;;;;;;;;:::o;4223:202:58:-;4312:45;4322:34;;4312:9;:45::i;:::-;4304:54;;;;;;;;4411:7;4368:13;:26;4382:11;4368:26;;;;;;;;;;;;;;;;;:33;;:40;;;:50;;;;;;;;;;;;;;;;;;4223:202;;:::o;3276:244::-;3415:30;3425:19;;3415:9;:30::i;:::-;3407:39;;;;;;;;3508:5;3456:13;:26;3470:11;3456:26;;;;;;;;;;;;;;;;;:33;;:41;;:49;3498:6;3456:49;;;;;;;;;;;;;;;:57;;;;;;;3276:244;;;:::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;5191:277:58:-;5352:30;5362:19;;5352:9;:30::i;:::-;5344:39;;;;;;;;5393:13;:26;5407:11;5393:26;;;;;;;;;;;;;;;;;:33;;:44;;;;5438:6;5446:5;5453:7;5393:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5393:68:58;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5393:68:58;;;;5191:277;;;;:::o;2328:438::-;2428:29;2471:32;2517:30;2587:13;:26;2601:11;2587:26;;;;;;;;;;;;;;;;;:38;;2572:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2653:13;:26;2667:11;2653:26;;;;;;;;;;;;;;;;;:41;;2635:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2720:13;:26;2734:11;2720:26;;;;;;;;;;;;;;;;;:39;;2704:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2328:438;;;;;:::o;2139:183::-;2235:17;2280:13;:26;2294:11;2280:26;;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;2268:47;;2139:183;;;:::o;3787:205::-;3883:40;3893:29;;3883:9;:40::i;:::-;3875:49;;;;;;;;3980:5;3934:13;:26;3948:11;3934:26;;;;;;;;;;;;;;;;;:33;;:43;;:51;;;;3787:205;;:::o;2772:271::-;2886:12;2900:16;2940:23;:21;:23::i;:::-;2932:32;;;;;;;;2981:13;:26;2995:11;2981:26;;;;;;;;;;;;;;;;;:33;;:44;;;;3026:9;;2981:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2981:55:58;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2981:55:58;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2981:55:58;;;;;;;;;;;;;;;;;;;;;;;;;2974:62;;;;2772:271;;;;;;:::o;3998:219::-;4090:12;4126:23;:21;:23::i;:::-;4118:32;;;;;;;;4170:13;:26;4184:11;4170:26;;;;;;;;;;;;;;;;;:33;;:40;;;;;;;;;;;;4160:50;;3998:219;;;:::o;3049:221::-;3139:14;3177:23;:21;:23::i;:::-;3169:32;;;;;;;;3220:13;:26;3234:11;3220:26;;;;;;;;;;;;;;;;;:33;;:43;;;3211:52;;3049:221;;;:::o;823:818::-;1050:40;1060:29;;1050:9;:40::i;:::-;1042:49;;;;;;;;1162:11;;1121:52;;;:13;:26;1135:11;1121:26;;;;;;;;;;;;;;;;;:37;;;:52;;;;1120:96;;;;;1204:11;;1189:26;;;:11;:26;;;;;1120:96;1101:125;;;;;;;;1236:9;:16;;;;1253:11;1236:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1236:29:58;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1236:29:58;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1236:29:58;;;;;;;;;;;;;;;;;1315:11;1275:13;:26;1289:11;1275:26;;;;;;;;;;;;;;;;;:37;;:51;;;;;;;1374:9;1336:13;:26;1350:11;1336:26;;;;;;;;;;;;;;;;;:35;;;:47;;;;;;;;;;;;;;;;;;1434:3;1393:13;:26;1407:11;1393:26;;;;;;;;;;;;;;;;;:38;;:44;;;;1488:12;1447:13;:26;1461:11;1447:26;;;;;;;;;;;;;;;;;:38;;:53;;;;;;;;;;;;:::i;:::-;;1554:15;1510:13;:26;1524:11;1510:26;;;;;;;;;;;;;;;;;:41;;:59;;;;;;;;;;;;:::i;:::-;;1621:13;1579;:26;1593:11;1579:26;;;;;;;;;;;;;;;;;:39;;:55;;;;;;;;;;;;:::i;:::-;;823:818;;;;;:::o;4715:215::-;4800:13;4837:23;:21;:23::i;:::-;4829:32;;;;;;;;4882:13;:26;4896:11;4882:26;;;;;;;;;;;;;;;;;:33;;:41;;;;;;;;;;;;4871:52;;4715:215;;;:::o;4431:278::-;4584:44;4528:45;4538:34;;4528:9;:45::i;:::-;4520:54;;;;;;;;4631:13;:26;4645:11;4631:26;;;;;;;;;;;;;;;;;4584:73;;4694:8;4667:9;:16;;:24;;;:35;;;;;;;;;;;;;;;;;;4431:278;;;:::o;1647:486::-;1748:11;1773:17;1804:20;1838:26;1895:13;:26;1909:11;1895:26;;;;;;;;;;;;;;;;;:37;;;1889:43;;1954:13;:26;1968:11;1954:26;;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;1942:47;;2014:13;:26;2028:11;2014:26;;;;;;;;;;;;;;;;;:38;;;1999:53;;2083:13;:26;2097:11;2083:26;;;;;;;;;;;;;;;;;:33;;:43;;;2062:64;;1647:486;;;;;:::o;344:31:67:-;;;;;;;;;;;;;:::o;4936:249:58:-;5036:10;5048:15;5087:23;:21;:23::i;:::-;5079:32;;;;;;;;5128:13;:26;5142:11;5128:26;;;;;;;;;;;;;;;;;:33;;:42;;;;5171:6;5128:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5128:50:58;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5128:50:58;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5128:50:58;;;;;;;;;;;;;;;;;;;;;;;;;5121:57;;;;4936:249;;;;;:::o;3526:255::-;3634:19;3677:23;:21;:23::i;:::-;3669:32;;;;;;;;3725:13;:26;3739:11;3725:26;;;;;;;;;;;;;;;;;:33;;:41;;:49;3767:6;3725:49;;;;;;;;;;;;;;;;3711:63;;3526:255;;;;:::o;610:160:67:-;671:12;732:8;;;;;;;;;;;715:39;;;755:9;715:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;715:50:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;715:50:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;715:50:67;;;;;;;;;;;;;;;;701:64;;:10;:64;;;691:74;;610:160;;;:::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;240:219::-;321:32;404:47;417:33;;404:12;:47::i;:::-;369:83;;240:219;:::o;217:5253:58:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
  "source": "pragma solidity ^0.4.25;\n\nimport \"@digix/solidity-collections/contracts/lib/DoublyLinkedList.sol\";\nimport \"../common/DaoWhitelistingCommon.sol\";\nimport \"../lib/DaoStructs.sol\";\nimport \"./DaoWhitelistingStorage.sol\";\n\ncontract DaoSpecialStorage is DaoWhitelistingCommon {\n    using DoublyLinkedList for DoublyLinkedList.Bytes;\n    using DaoStructs for DaoStructs.SpecialProposal;\n    using DaoStructs for DaoStructs.Voting;\n\n    // List of all the special proposals ever created in DigixDAO\n    DoublyLinkedList.Bytes proposals;\n\n    // mapping of the SpecialProposal struct by its ID\n    // ID is also the IPFS doc hash of the proposal\n    mapping (bytes32 => DaoStructs.SpecialProposal) proposalsById;\n\n    constructor(address _resolver) public {\n        require(init(CONTRACT_STORAGE_DAO_SPECIAL, _resolver));\n    }\n\n    function addSpecialProposal(\n        bytes32 _proposalId,\n        address _proposer,\n        uint256[] _uintConfigs,\n        address[] _addressConfigs,\n        bytes32[] _bytesConfigs\n    )\n        public\n    {\n        require(sender_is(CONTRACT_DAO_SPECIAL_PROPOSAL));\n        require(\n          (proposalsById[_proposalId].proposalId == EMPTY_BYTES) &&\n          (_proposalId != EMPTY_BYTES)\n        );\n        proposals.append(_proposalId);\n        proposalsById[_proposalId].proposalId = _proposalId;\n        proposalsById[_proposalId].proposer = _proposer;\n        proposalsById[_proposalId].timeCreated = now;\n        proposalsById[_proposalId].uintConfigs = _uintConfigs;\n        proposalsById[_proposalId].addressConfigs = _addressConfigs;\n        proposalsById[_proposalId].bytesConfigs = _bytesConfigs;\n    }\n\n    function readProposal(bytes32 _proposalId)\n        public\n        view\n        returns (\n            bytes32 _id,\n            address _proposer,\n            uint256 _timeCreated,\n            uint256 _timeVotingStarted\n        )\n    {\n        _id = proposalsById[_proposalId].proposalId;\n        _proposer = proposalsById[_proposalId].proposer;\n        _timeCreated = proposalsById[_proposalId].timeCreated;\n        _timeVotingStarted = proposalsById[_proposalId].voting.startTime;\n    }\n\n    function readProposalProposer(bytes32 _proposalId)\n        public\n        view\n        returns (address _proposer)\n    {\n        _proposer = proposalsById[_proposalId].proposer;\n    }\n\n    function readConfigs(bytes32 _proposalId)\n        public\n        view\n        returns (\n            uint256[] memory _uintConfigs,\n            address[] memory _addressConfigs,\n            bytes32[] memory _bytesConfigs\n        )\n    {\n        _uintConfigs = proposalsById[_proposalId].uintConfigs;\n        _addressConfigs = proposalsById[_proposalId].addressConfigs;\n        _bytesConfigs = proposalsById[_proposalId].bytesConfigs;\n    }\n\n    function readVotingCount(bytes32 _proposalId, address[] _allUsers)\n        external\n        view\n        returns (uint256 _for, uint256 _against)\n    {\n        require(senderIsAllowedToRead());\n        return proposalsById[_proposalId].voting.countVotes(_allUsers);\n    }\n\n    function readVotingTime(bytes32 _proposalId)\n        public\n        view\n        returns (uint256 _start)\n    {\n        require(senderIsAllowedToRead());\n        _start = proposalsById[_proposalId].voting.startTime;\n    }\n\n    function commitVote(\n        bytes32 _proposalId,\n        bytes32 _hash,\n        address _voter\n    )\n        public\n    {\n        require(sender_is(CONTRACT_DAO_VOTING));\n        proposalsById[_proposalId].voting.commits[_voter] = _hash;\n    }\n\n    function readComittedVote(bytes32 _proposalId, address _voter)\n        public\n        view\n        returns (bytes32 _commitHash)\n    {\n        require(senderIsAllowedToRead());\n        _commitHash = proposalsById[_proposalId].voting.commits[_voter];\n    }\n\n    function setVotingTime(bytes32 _proposalId, uint256 _time)\n        public\n    {\n        require(sender_is(CONTRACT_DAO_SPECIAL_PROPOSAL));\n        proposalsById[_proposalId].voting.startTime = _time;\n    }\n\n    function readVotingResult(bytes32 _proposalId)\n        public\n        view\n        returns (bool _result)\n    {\n        require(senderIsAllowedToRead());\n        _result = proposalsById[_proposalId].voting.passed;\n    }\n\n    function setPass(bytes32 _proposalId, bool _result)\n        public\n    {\n        require(sender_is(CONTRACT_DAO_SPECIAL_VOTING_CLAIMS));\n        proposalsById[_proposalId].voting.passed = _result;\n    }\n\n    function setVotingClaim(bytes32 _proposalId, bool _claimed)\n        public\n    {\n        require(sender_is(CONTRACT_DAO_SPECIAL_VOTING_CLAIMS));\n        DaoStructs.SpecialProposal storage _proposal = proposalsById[_proposalId];\n        _proposal.voting.claimed = _claimed;\n    }\n\n    function isClaimed(bytes32 _proposalId)\n        public\n        view\n        returns (bool _claimed)\n    {\n        require(senderIsAllowedToRead());\n        _claimed = proposalsById[_proposalId].voting.claimed;\n    }\n\n    function readVote(bytes32 _proposalId, address _voter)\n        public\n        view\n        returns (bool _vote, uint256 _weight)\n    {\n        require(senderIsAllowedToRead());\n        return proposalsById[_proposalId].voting.readVote(_voter);\n    }\n\n    function revealVote(\n        bytes32 _proposalId,\n        address _voter,\n        bool _vote,\n        uint256 _weight\n    )\n        public\n    {\n        require(sender_is(CONTRACT_DAO_VOTING));\n        proposalsById[_proposalId].voting.revealVote(_voter, _vote, _weight);\n    }\n}\n",
  "sourcePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoSpecialStorage.sol",
  "ast": {
    "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoSpecialStorage.sol",
    "exportedSymbols": {
      "DaoSpecialStorage": [
        15599
      ]
    },
    "id": 15600,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 15117,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:58"
      },
      {
        "absolutePath": "@digix/solidity-collections/contracts/lib/DoublyLinkedList.sol",
        "file": "@digix/solidity-collections/contracts/lib/DoublyLinkedList.sol",
        "id": 15118,
        "nodeType": "ImportDirective",
        "scope": 15600,
        "sourceUnit": 25117,
        "src": "26:72:58",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/common/DaoWhitelistingCommon.sol",
        "file": "../common/DaoWhitelistingCommon.sol",
        "id": 15119,
        "nodeType": "ImportDirective",
        "scope": 15600,
        "sourceUnit": 1869,
        "src": "99:45:58",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/lib/DaoStructs.sol",
        "file": "../lib/DaoStructs.sol",
        "id": 15120,
        "nodeType": "ImportDirective",
        "scope": 15600,
        "sourceUnit": 8452,
        "src": "145:31:58",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoWhitelistingStorage.sol",
        "file": "./DaoWhitelistingStorage.sol",
        "id": 15121,
        "nodeType": "ImportDirective",
        "scope": 15600,
        "sourceUnit": 18011,
        "src": "177:38:58",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 15122,
              "name": "DaoWhitelistingCommon",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1868,
              "src": "247:21:58",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoWhitelistingCommon_$1868",
                "typeString": "contract DaoWhitelistingCommon"
              }
            },
            "id": 15123,
            "nodeType": "InheritanceSpecifier",
            "src": "247:21:58"
          }
        ],
        "contractDependencies": [
          1629,
          1868,
          18628
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 15599,
        "linearizedBaseContracts": [
          15599,
          1868,
          1629,
          18628
        ],
        "name": "DaoSpecialStorage",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 15126,
            "libraryName": {
              "contractScope": null,
              "id": 15124,
              "name": "DoublyLinkedList",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 25116,
              "src": "281:16:58",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DoublyLinkedList_$25116",
                "typeString": "library DoublyLinkedList"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "275:50:58",
            "typeName": {
              "contractScope": null,
              "id": 15125,
              "name": "DoublyLinkedList.Bytes",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 22605,
              "src": "302:22:58",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                "typeString": "struct DoublyLinkedList.Bytes"
              }
            }
          },
          {
            "id": 15129,
            "libraryName": {
              "contractScope": null,
              "id": 15127,
              "name": "DaoStructs",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8451,
              "src": "336:10:58",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoStructs_$8451",
                "typeString": "library DaoStructs"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "330:48:58",
            "typeName": {
              "contractScope": null,
              "id": 15128,
              "name": "DaoStructs.SpecialProposal",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8418,
              "src": "351:26:58",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage_ptr",
                "typeString": "struct DaoStructs.SpecialProposal"
              }
            }
          },
          {
            "id": 15132,
            "libraryName": {
              "contractScope": null,
              "id": 15130,
              "name": "DaoStructs",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8451,
              "src": "389:10:58",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoStructs_$8451",
                "typeString": "library DaoStructs"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "383:39:58",
            "typeName": {
              "contractScope": null,
              "id": 15131,
              "name": "DaoStructs.Voting",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 7930,
              "src": "404:17:58",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                "typeString": "struct DaoStructs.Voting"
              }
            }
          },
          {
            "constant": false,
            "id": 15134,
            "name": "proposals",
            "nodeType": "VariableDeclaration",
            "scope": 15599,
            "src": "494:32:58",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_Bytes_$22605_storage",
              "typeString": "struct DoublyLinkedList.Bytes"
            },
            "typeName": {
              "contractScope": null,
              "id": 15133,
              "name": "DoublyLinkedList.Bytes",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 22605,
              "src": "494:22:58",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                "typeString": "struct DoublyLinkedList.Bytes"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 15138,
            "name": "proposalsById",
            "nodeType": "VariableDeclaration",
            "scope": 15599,
            "src": "640:61:58",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
              "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal)"
            },
            "typeName": {
              "id": 15137,
              "keyType": {
                "id": 15135,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "649:7:58",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "640:47:58",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal)"
              },
              "valueType": {
                "contractScope": null,
                "id": 15136,
                "name": "DaoStructs.SpecialProposal",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 8418,
                "src": "660:26:58",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage_ptr",
                  "typeString": "struct DaoStructs.SpecialProposal"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 15150,
              "nodeType": "Block",
              "src": "746:71:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 15145,
                            "name": "CONTRACT_STORAGE_DAO_SPECIAL",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1412,
                            "src": "769:28:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 15146,
                            "name": "_resolver",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15140,
                            "src": "799:9:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 15144,
                          "name": "init",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18596,
                          "src": "764:4:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$",
                            "typeString": "function (bytes32,address) returns (bool)"
                          }
                        },
                        "id": 15147,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "764:45:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15143,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "756:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15148,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "756:54:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15149,
                  "nodeType": "ExpressionStatement",
                  "src": "756:54:58"
                }
              ]
            },
            "documentation": null,
            "id": 15151,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15141,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15140,
                  "name": "_resolver",
                  "nodeType": "VariableDeclaration",
                  "scope": 15151,
                  "src": "720:17:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 15139,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "720:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "719:19:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15142,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "746:0:58"
            },
            "scope": 15599,
            "src": "708:109:58",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15236,
              "nodeType": "Block",
              "src": "1032:609:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 15169,
                            "name": "CONTRACT_DAO_SPECIAL_PROPOSAL",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1349,
                            "src": "1060:29:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 15168,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "1050:9:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 15170,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1050:40:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15167,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "1042:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15171,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1042:49:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15172,
                  "nodeType": "ExpressionStatement",
                  "src": "1042:49:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 15185,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 15179,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 15174,
                                    "name": "proposalsById",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 15138,
                                    "src": "1121:13:58",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                                      "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                                    }
                                  },
                                  "id": 15176,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 15175,
                                    "name": "_proposalId",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 15153,
                                    "src": "1135:11:58",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1121:26:58",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                                    "typeString": "struct DaoStructs.SpecialProposal storage ref"
                                  }
                                },
                                "id": 15177,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "proposalId",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 8402,
                                "src": "1121:37:58",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 15178,
                                "name": "EMPTY_BYTES",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1293,
                                "src": "1162:11:58",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "src": "1121:52:58",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 15180,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "1120:54:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 15183,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 15181,
                                "name": "_proposalId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 15153,
                                "src": "1189:11:58",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "!=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 15182,
                                "name": "EMPTY_BYTES",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1293,
                                "src": "1204:11:58",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "src": "1189:26:58",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 15184,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "1188:28:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1120:96:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15173,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "1101:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15186,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1101:125:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15187,
                  "nodeType": "ExpressionStatement",
                  "src": "1101:125:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 15191,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15153,
                        "src": "1253:11:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 15188,
                        "name": "proposals",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15134,
                        "src": "1236:9:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                          "typeString": "struct DoublyLinkedList.Bytes storage ref"
                        }
                      },
                      "id": 15190,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24585,
                      "src": "1236:16:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes_$22605_storage_ptr_$",
                        "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 15192,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1236:29:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 15193,
                  "nodeType": "ExpressionStatement",
                  "src": "1236:29:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15199,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 15194,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15138,
                          "src": "1275:13:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                          }
                        },
                        "id": 15196,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 15195,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15153,
                          "src": "1289:11:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1275:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                          "typeString": "struct DaoStructs.SpecialProposal storage ref"
                        }
                      },
                      "id": 15197,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "proposalId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8402,
                      "src": "1275:37:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 15198,
                      "name": "_proposalId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15153,
                      "src": "1315:11:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "1275:51:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 15200,
                  "nodeType": "ExpressionStatement",
                  "src": "1275:51:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15206,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 15201,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15138,
                          "src": "1336:13:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                          }
                        },
                        "id": 15203,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 15202,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15153,
                          "src": "1350:11:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1336:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                          "typeString": "struct DaoStructs.SpecialProposal storage ref"
                        }
                      },
                      "id": 15204,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "proposer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8417,
                      "src": "1336:35:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 15205,
                      "name": "_proposer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15155,
                      "src": "1374:9:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1336:47:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 15207,
                  "nodeType": "ExpressionStatement",
                  "src": "1336:47:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15213,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 15208,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15138,
                          "src": "1393:13:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                          }
                        },
                        "id": 15210,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 15209,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15153,
                          "src": "1407:11:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1393:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                          "typeString": "struct DaoStructs.SpecialProposal storage ref"
                        }
                      },
                      "id": 15211,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "timeCreated",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8404,
                      "src": "1393:38:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 15212,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26184,
                      "src": "1434:3:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1393:44:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 15214,
                  "nodeType": "ExpressionStatement",
                  "src": "1393:44:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15220,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 15215,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15138,
                          "src": "1447:13:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                          }
                        },
                        "id": 15217,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 15216,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15153,
                          "src": "1461:11:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1447:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                          "typeString": "struct DaoStructs.SpecialProposal storage ref"
                        }
                      },
                      "id": 15218,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "uintConfigs",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8409,
                      "src": "1447:38:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 15219,
                      "name": "_uintConfigs",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15158,
                      "src": "1488:12:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "src": "1447:53:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                      "typeString": "uint256[] storage ref"
                    }
                  },
                  "id": 15221,
                  "nodeType": "ExpressionStatement",
                  "src": "1447:53:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15227,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 15222,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15138,
                          "src": "1510:13:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                          }
                        },
                        "id": 15224,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 15223,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15153,
                          "src": "1524:11:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1510:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                          "typeString": "struct DaoStructs.SpecialProposal storage ref"
                        }
                      },
                      "id": 15225,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "addressConfigs",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8412,
                      "src": "1510:41:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                        "typeString": "address[] storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 15226,
                      "name": "_addressConfigs",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15161,
                      "src": "1554:15:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "src": "1510:59:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage",
                      "typeString": "address[] storage ref"
                    }
                  },
                  "id": 15228,
                  "nodeType": "ExpressionStatement",
                  "src": "1510:59:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15234,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 15229,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15138,
                          "src": "1579:13:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                          }
                        },
                        "id": 15231,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 15230,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15153,
                          "src": "1593:11:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1579:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                          "typeString": "struct DaoStructs.SpecialProposal storage ref"
                        }
                      },
                      "id": 15232,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "bytesConfigs",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8415,
                      "src": "1579:39:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                        "typeString": "bytes32[] storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 15233,
                      "name": "_bytesConfigs",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15164,
                      "src": "1621:13:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "src": "1579:55:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                      "typeString": "bytes32[] storage ref"
                    }
                  },
                  "id": 15235,
                  "nodeType": "ExpressionStatement",
                  "src": "1579:55:58"
                }
              ]
            },
            "documentation": null,
            "id": 15237,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "addSpecialProposal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15165,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15153,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15237,
                  "src": "860:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15152,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "860:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15155,
                  "name": "_proposer",
                  "nodeType": "VariableDeclaration",
                  "scope": 15237,
                  "src": "889:17:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 15154,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "889:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15158,
                  "name": "_uintConfigs",
                  "nodeType": "VariableDeclaration",
                  "scope": 15237,
                  "src": "916:22:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15156,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "916:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 15157,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "916:9:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15161,
                  "name": "_addressConfigs",
                  "nodeType": "VariableDeclaration",
                  "scope": 15237,
                  "src": "948:25:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15159,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "948:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 15160,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "948:9:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15164,
                  "name": "_bytesConfigs",
                  "nodeType": "VariableDeclaration",
                  "scope": 15237,
                  "src": "983:23:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15162,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "983:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 15163,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "983:9:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "850:162:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15166,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1032:0:58"
            },
            "scope": 15599,
            "src": "823:818:58",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15279,
              "nodeType": "Block",
              "src": "1879:254:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15255,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 15250,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15242,
                      "src": "1889:3:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 15251,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15138,
                          "src": "1895:13:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                          }
                        },
                        "id": 15253,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 15252,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15239,
                          "src": "1909:11:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1895:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                          "typeString": "struct DaoStructs.SpecialProposal storage ref"
                        }
                      },
                      "id": 15254,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "proposalId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8402,
                      "src": "1895:37:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "1889:43:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 15256,
                  "nodeType": "ExpressionStatement",
                  "src": "1889:43:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15262,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 15257,
                      "name": "_proposer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15244,
                      "src": "1942:9:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 15258,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15138,
                          "src": "1954:13:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                          }
                        },
                        "id": 15260,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 15259,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15239,
                          "src": "1968:11:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1954:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                          "typeString": "struct DaoStructs.SpecialProposal storage ref"
                        }
                      },
                      "id": 15261,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "proposer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8417,
                      "src": "1954:35:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1942:47:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 15263,
                  "nodeType": "ExpressionStatement",
                  "src": "1942:47:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15269,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 15264,
                      "name": "_timeCreated",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15246,
                      "src": "1999:12:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 15265,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15138,
                          "src": "2014:13:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                          }
                        },
                        "id": 15267,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 15266,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15239,
                          "src": "2028:11:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2014:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                          "typeString": "struct DaoStructs.SpecialProposal storage ref"
                        }
                      },
                      "id": 15268,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "timeCreated",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8404,
                      "src": "2014:38:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1999:53:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 15270,
                  "nodeType": "ExpressionStatement",
                  "src": "1999:53:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15277,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 15271,
                      "name": "_timeVotingStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15248,
                      "src": "2062:18:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 15272,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15138,
                            "src": "2083:13:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                            }
                          },
                          "id": 15274,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 15273,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15239,
                            "src": "2097:11:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2083:26:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                            "typeString": "struct DaoStructs.SpecialProposal storage ref"
                          }
                        },
                        "id": 15275,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "voting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8406,
                        "src": "2083:33:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 15276,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "startTime",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7907,
                      "src": "2083:43:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2062:64:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 15278,
                  "nodeType": "ExpressionStatement",
                  "src": "2062:64:58"
                }
              ]
            },
            "documentation": null,
            "id": 15280,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15240,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15239,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15280,
                  "src": "1669:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15238,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1669:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1668:21:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15249,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15242,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 15280,
                  "src": "1748:11:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15241,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1748:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15244,
                  "name": "_proposer",
                  "nodeType": "VariableDeclaration",
                  "scope": 15280,
                  "src": "1773:17:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 15243,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1773:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15246,
                  "name": "_timeCreated",
                  "nodeType": "VariableDeclaration",
                  "scope": 15280,
                  "src": "1804:20:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 15245,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1804:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15248,
                  "name": "_timeVotingStarted",
                  "nodeType": "VariableDeclaration",
                  "scope": 15280,
                  "src": "1838:26:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 15247,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1838:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1734:140:58"
            },
            "scope": 15599,
            "src": "1647:486:58",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15294,
              "nodeType": "Block",
              "src": "2258:64:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15292,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 15287,
                      "name": "_proposer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15285,
                      "src": "2268:9:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 15288,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15138,
                          "src": "2280:13:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                          }
                        },
                        "id": 15290,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 15289,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15282,
                          "src": "2294:11:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2280:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                          "typeString": "struct DaoStructs.SpecialProposal storage ref"
                        }
                      },
                      "id": 15291,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "proposer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8417,
                      "src": "2280:35:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2268:47:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 15293,
                  "nodeType": "ExpressionStatement",
                  "src": "2268:47:58"
                }
              ]
            },
            "documentation": null,
            "id": 15295,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposalProposer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15283,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15282,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15295,
                  "src": "2169:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15281,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2169:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2168:21:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15286,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15285,
                  "name": "_proposer",
                  "nodeType": "VariableDeclaration",
                  "scope": 15295,
                  "src": "2235:17:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 15284,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2235:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2234:19:58"
            },
            "scope": 15599,
            "src": "2139:183:58",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15330,
              "nodeType": "Block",
              "src": "2562:204:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15314,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 15309,
                      "name": "_uintConfigs",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15301,
                      "src": "2572:12:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 15310,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15138,
                          "src": "2587:13:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                          }
                        },
                        "id": 15312,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 15311,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15297,
                          "src": "2601:11:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2587:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                          "typeString": "struct DaoStructs.SpecialProposal storage ref"
                        }
                      },
                      "id": 15313,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "uintConfigs",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8409,
                      "src": "2587:38:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "src": "2572:53:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "id": 15315,
                  "nodeType": "ExpressionStatement",
                  "src": "2572:53:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15321,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 15316,
                      "name": "_addressConfigs",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15304,
                      "src": "2635:15:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 15317,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15138,
                          "src": "2653:13:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                          }
                        },
                        "id": 15319,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 15318,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15297,
                          "src": "2667:11:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2653:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                          "typeString": "struct DaoStructs.SpecialProposal storage ref"
                        }
                      },
                      "id": 15320,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "addressConfigs",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8412,
                      "src": "2653:41:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                        "typeString": "address[] storage ref"
                      }
                    },
                    "src": "2635:59:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "id": 15322,
                  "nodeType": "ExpressionStatement",
                  "src": "2635:59:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15328,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 15323,
                      "name": "_bytesConfigs",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15307,
                      "src": "2704:13:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 15324,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15138,
                          "src": "2720:13:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                          }
                        },
                        "id": 15326,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 15325,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15297,
                          "src": "2734:11:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2720:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                          "typeString": "struct DaoStructs.SpecialProposal storage ref"
                        }
                      },
                      "id": 15327,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "bytesConfigs",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8415,
                      "src": "2720:39:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                        "typeString": "bytes32[] storage ref"
                      }
                    },
                    "src": "2704:55:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "id": 15329,
                  "nodeType": "ExpressionStatement",
                  "src": "2704:55:58"
                }
              ]
            },
            "documentation": null,
            "id": 15331,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readConfigs",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15298,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15297,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15331,
                  "src": "2349:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15296,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2349:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2348:21:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15308,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15301,
                  "name": "_uintConfigs",
                  "nodeType": "VariableDeclaration",
                  "scope": 15331,
                  "src": "2428:29:58",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15299,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "2428:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 15300,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2428:9:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15304,
                  "name": "_addressConfigs",
                  "nodeType": "VariableDeclaration",
                  "scope": 15331,
                  "src": "2471:32:58",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15302,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "2471:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 15303,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2471:9:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15307,
                  "name": "_bytesConfigs",
                  "nodeType": "VariableDeclaration",
                  "scope": 15331,
                  "src": "2517:30:58",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15305,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "2517:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 15306,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2517:9:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2414:143:58"
            },
            "scope": 15599,
            "src": "2328:438:58",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15356,
              "nodeType": "Block",
              "src": "2922:121:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 15344,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "2940:21:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 15345,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2940:23:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15343,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "2932:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15346,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2932:32:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15347,
                  "nodeType": "ExpressionStatement",
                  "src": "2932:32:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 15353,
                        "name": "_allUsers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15336,
                        "src": "3026:9:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 15348,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15138,
                            "src": "2981:13:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                            }
                          },
                          "id": 15350,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 15349,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15333,
                            "src": "2995:11:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2981:26:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                            "typeString": "struct DaoStructs.SpecialProposal storage ref"
                          }
                        },
                        "id": 15351,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "voting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8406,
                        "src": "2981:33:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 15352,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "countVotes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8055,
                      "src": "2981:44:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Voting_$7930_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_uint256_$_t_uint256_$bound_to$_t_struct$_Voting_$7930_storage_ptr_$",
                        "typeString": "function (struct DaoStructs.Voting storage pointer,address[] memory) view returns (uint256,uint256)"
                      }
                    },
                    "id": 15354,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2981:55:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
                      "typeString": "tuple(uint256,uint256)"
                    }
                  },
                  "functionReturnParameters": 15342,
                  "id": 15355,
                  "nodeType": "Return",
                  "src": "2974:62:58"
                }
              ]
            },
            "documentation": null,
            "id": 15357,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readVotingCount",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15337,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15333,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15357,
                  "src": "2797:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15332,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2797:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15336,
                  "name": "_allUsers",
                  "nodeType": "VariableDeclaration",
                  "scope": 15357,
                  "src": "2818:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15334,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "2818:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 15335,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2818:9:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2796:42:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15342,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15339,
                  "name": "_for",
                  "nodeType": "VariableDeclaration",
                  "scope": 15357,
                  "src": "2886:12:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 15338,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2886:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15341,
                  "name": "_against",
                  "nodeType": "VariableDeclaration",
                  "scope": 15357,
                  "src": "2900:16:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 15340,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2900:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2885:32:58"
            },
            "scope": 15599,
            "src": "2772:271:58",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 15377,
              "nodeType": "Block",
              "src": "3159:111:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 15365,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "3177:21:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 15366,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3177:23:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15364,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "3169:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15367,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3169:32:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15368,
                  "nodeType": "ExpressionStatement",
                  "src": "3169:32:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15375,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 15369,
                      "name": "_start",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15362,
                      "src": "3211:6:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 15370,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15138,
                            "src": "3220:13:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                            }
                          },
                          "id": 15372,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 15371,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15359,
                            "src": "3234:11:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3220:26:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                            "typeString": "struct DaoStructs.SpecialProposal storage ref"
                          }
                        },
                        "id": 15373,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "voting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8406,
                        "src": "3220:33:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 15374,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "startTime",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7907,
                      "src": "3220:43:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3211:52:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 15376,
                  "nodeType": "ExpressionStatement",
                  "src": "3211:52:58"
                }
              ]
            },
            "documentation": null,
            "id": 15378,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readVotingTime",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15360,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15359,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15378,
                  "src": "3073:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15358,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3073:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3072:21:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15363,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15362,
                  "name": "_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 15378,
                  "src": "3139:14:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 15361,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3139:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3138:16:58"
            },
            "scope": 15599,
            "src": "3049:221:58",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15403,
              "nodeType": "Block",
              "src": "3397:123:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 15389,
                            "name": "CONTRACT_DAO_VOTING",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1355,
                            "src": "3425:19:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 15388,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "3415:9:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 15390,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3415:30:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15387,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "3407:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15391,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3407:39:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15392,
                  "nodeType": "ExpressionStatement",
                  "src": "3407:39:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15401,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 15393,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 15138,
                              "src": "3456:13:58",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                              }
                            },
                            "id": 15395,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 15394,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 15380,
                              "src": "3470:11:58",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3456:26:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                              "typeString": "struct DaoStructs.SpecialProposal storage ref"
                            }
                          },
                          "id": 15396,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "voting",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 8406,
                          "src": "3456:33:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Voting_$7930_storage",
                            "typeString": "struct DaoStructs.Voting storage ref"
                          }
                        },
                        "id": 15397,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "commits",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7915,
                        "src": "3456:41:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$",
                          "typeString": "mapping(address => bytes32)"
                        }
                      },
                      "id": 15399,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 15398,
                        "name": "_voter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15384,
                        "src": "3498:6:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3456:49:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 15400,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15382,
                      "src": "3508:5:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "3456:57:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 15402,
                  "nodeType": "ExpressionStatement",
                  "src": "3456:57:58"
                }
              ]
            },
            "documentation": null,
            "id": 15404,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "commitVote",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15385,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15380,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15404,
                  "src": "3305:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15379,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3305:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15382,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 15404,
                  "src": "3334:13:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15381,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3334:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15384,
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "scope": 15404,
                  "src": "3357:14:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 15383,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3357:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3295:82:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15386,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3397:0:58"
            },
            "scope": 15599,
            "src": "3276:244:58",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15428,
              "nodeType": "Block",
              "src": "3659:122:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 15414,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "3677:21:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 15415,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3677:23:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15413,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "3669:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15416,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3669:32:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15417,
                  "nodeType": "ExpressionStatement",
                  "src": "3669:32:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15426,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 15418,
                      "name": "_commitHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15411,
                      "src": "3711:11:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 15419,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 15138,
                              "src": "3725:13:58",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                              }
                            },
                            "id": 15421,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 15420,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 15406,
                              "src": "3739:11:58",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3725:26:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                              "typeString": "struct DaoStructs.SpecialProposal storage ref"
                            }
                          },
                          "id": 15422,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "voting",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 8406,
                          "src": "3725:33:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Voting_$7930_storage",
                            "typeString": "struct DaoStructs.Voting storage ref"
                          }
                        },
                        "id": 15423,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "commits",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7915,
                        "src": "3725:41:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$",
                          "typeString": "mapping(address => bytes32)"
                        }
                      },
                      "id": 15425,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 15424,
                        "name": "_voter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15408,
                        "src": "3767:6:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "3725:49:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "3711:63:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 15427,
                  "nodeType": "ExpressionStatement",
                  "src": "3711:63:58"
                }
              ]
            },
            "documentation": null,
            "id": 15429,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readComittedVote",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15409,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15406,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15429,
                  "src": "3552:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15405,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3552:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15408,
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "scope": 15429,
                  "src": "3573:14:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 15407,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3573:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3551:37:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15412,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15411,
                  "name": "_commitHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 15429,
                  "src": "3634:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15410,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3634:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3633:21:58"
            },
            "scope": 15599,
            "src": "3526:255:58",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15450,
              "nodeType": "Block",
              "src": "3865:127:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 15438,
                            "name": "CONTRACT_DAO_SPECIAL_PROPOSAL",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1349,
                            "src": "3893:29:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 15437,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "3883:9:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 15439,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3883:40:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15436,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "3875:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15440,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3875:49:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15441,
                  "nodeType": "ExpressionStatement",
                  "src": "3875:49:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15448,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 15442,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15138,
                            "src": "3934:13:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                            }
                          },
                          "id": 15444,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 15443,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15431,
                            "src": "3948:11:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3934:26:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                            "typeString": "struct DaoStructs.SpecialProposal storage ref"
                          }
                        },
                        "id": 15445,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "voting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8406,
                        "src": "3934:33:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 15446,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "startTime",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7907,
                      "src": "3934:43:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 15447,
                      "name": "_time",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15433,
                      "src": "3980:5:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3934:51:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 15449,
                  "nodeType": "ExpressionStatement",
                  "src": "3934:51:58"
                }
              ]
            },
            "documentation": null,
            "id": 15451,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setVotingTime",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15434,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15431,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15451,
                  "src": "3810:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15430,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3810:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15433,
                  "name": "_time",
                  "nodeType": "VariableDeclaration",
                  "scope": 15451,
                  "src": "3831:13:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 15432,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3831:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3809:36:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15435,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3865:0:58"
            },
            "scope": 15599,
            "src": "3787:205:58",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15471,
              "nodeType": "Block",
              "src": "4108:109:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 15459,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "4126:21:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 15460,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4126:23:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15458,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "4118:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15461,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4118:32:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15462,
                  "nodeType": "ExpressionStatement",
                  "src": "4118:32:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15469,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 15463,
                      "name": "_result",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15456,
                      "src": "4160:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 15464,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15138,
                            "src": "4170:13:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                            }
                          },
                          "id": 15466,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 15465,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15453,
                            "src": "4184:11:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "4170:26:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                            "typeString": "struct DaoStructs.SpecialProposal storage ref"
                          }
                        },
                        "id": 15467,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "voting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8406,
                        "src": "4170:33:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 15468,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "passed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7925,
                      "src": "4170:40:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4160:50:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 15470,
                  "nodeType": "ExpressionStatement",
                  "src": "4160:50:58"
                }
              ]
            },
            "documentation": null,
            "id": 15472,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readVotingResult",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15454,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15453,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15472,
                  "src": "4024:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15452,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4024:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4023:21:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15457,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15456,
                  "name": "_result",
                  "nodeType": "VariableDeclaration",
                  "scope": 15472,
                  "src": "4090:12:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 15455,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4090:4:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4089:14:58"
            },
            "scope": 15599,
            "src": "3998:219:58",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15493,
              "nodeType": "Block",
              "src": "4294:131:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 15481,
                            "name": "CONTRACT_DAO_SPECIAL_VOTING_CLAIMS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1361,
                            "src": "4322:34:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 15480,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "4312:9:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 15482,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4312:45:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15479,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "4304:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15483,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4304:54:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15484,
                  "nodeType": "ExpressionStatement",
                  "src": "4304:54:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15491,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 15485,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15138,
                            "src": "4368:13:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                            }
                          },
                          "id": 15487,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 15486,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15474,
                            "src": "4382:11:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "4368:26:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                            "typeString": "struct DaoStructs.SpecialProposal storage ref"
                          }
                        },
                        "id": 15488,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "voting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8406,
                        "src": "4368:33:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 15489,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "passed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7925,
                      "src": "4368:40:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 15490,
                      "name": "_result",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15476,
                      "src": "4411:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4368:50:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 15492,
                  "nodeType": "ExpressionStatement",
                  "src": "4368:50:58"
                }
              ]
            },
            "documentation": null,
            "id": 15494,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setPass",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15477,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15474,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15494,
                  "src": "4240:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15473,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4240:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15476,
                  "name": "_result",
                  "nodeType": "VariableDeclaration",
                  "scope": 15494,
                  "src": "4261:12:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 15475,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4261:4:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4239:35:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15478,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4294:0:58"
            },
            "scope": 15599,
            "src": "4223:202:58",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15523,
              "nodeType": "Block",
              "src": "4510:199:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 15503,
                            "name": "CONTRACT_DAO_SPECIAL_VOTING_CLAIMS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1361,
                            "src": "4538:34:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 15502,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "4528:9:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 15504,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4528:45:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15501,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "4520:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15505,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4520:54:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15506,
                  "nodeType": "ExpressionStatement",
                  "src": "4520:54:58"
                },
                {
                  "assignments": [
                    15510
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 15510,
                      "name": "_proposal",
                      "nodeType": "VariableDeclaration",
                      "scope": 15524,
                      "src": "4584:44:58",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage_ptr",
                        "typeString": "struct DaoStructs.SpecialProposal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 15509,
                        "name": "DaoStructs.SpecialProposal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 8418,
                        "src": "4584:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage_ptr",
                          "typeString": "struct DaoStructs.SpecialProposal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 15514,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 15511,
                      "name": "proposalsById",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15138,
                      "src": "4631:13:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                        "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                      }
                    },
                    "id": 15513,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 15512,
                      "name": "_proposalId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15496,
                      "src": "4645:11:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4631:26:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                      "typeString": "struct DaoStructs.SpecialProposal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4584:73:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15521,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 15515,
                          "name": "_proposal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15510,
                          "src": "4667:9:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage_ptr",
                            "typeString": "struct DaoStructs.SpecialProposal storage pointer"
                          }
                        },
                        "id": 15518,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "voting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8406,
                        "src": "4667:16:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 15519,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "claimed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7927,
                      "src": "4667:24:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 15520,
                      "name": "_claimed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15498,
                      "src": "4694:8:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4667:35:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 15522,
                  "nodeType": "ExpressionStatement",
                  "src": "4667:35:58"
                }
              ]
            },
            "documentation": null,
            "id": 15524,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setVotingClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15499,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15496,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15524,
                  "src": "4455:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15495,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4455:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15498,
                  "name": "_claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 15524,
                  "src": "4476:13:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 15497,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4476:4:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4454:36:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15500,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4510:0:58"
            },
            "scope": 15599,
            "src": "4431:278:58",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15544,
              "nodeType": "Block",
              "src": "4819:111:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 15532,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "4837:21:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 15533,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4837:23:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15531,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "4829:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15534,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4829:32:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15535,
                  "nodeType": "ExpressionStatement",
                  "src": "4829:32:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15542,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 15536,
                      "name": "_claimed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15529,
                      "src": "4871:8:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 15537,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15138,
                            "src": "4882:13:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                            }
                          },
                          "id": 15539,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 15538,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15526,
                            "src": "4896:11:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "4882:26:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                            "typeString": "struct DaoStructs.SpecialProposal storage ref"
                          }
                        },
                        "id": 15540,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "voting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8406,
                        "src": "4882:33:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 15541,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "claimed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7927,
                      "src": "4882:41:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4871:52:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 15543,
                  "nodeType": "ExpressionStatement",
                  "src": "4871:52:58"
                }
              ]
            },
            "documentation": null,
            "id": 15545,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isClaimed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15527,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15526,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15545,
                  "src": "4734:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15525,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4734:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4733:21:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15530,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15529,
                  "name": "_claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 15545,
                  "src": "4800:13:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 15528,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4800:4:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4799:15:58"
            },
            "scope": 15599,
            "src": "4715:215:58",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15569,
              "nodeType": "Block",
              "src": "5069:116:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 15557,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "5087:21:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 15558,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5087:23:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15556,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "5079:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15559,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5079:32:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15560,
                  "nodeType": "ExpressionStatement",
                  "src": "5079:32:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 15566,
                        "name": "_voter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15549,
                        "src": "5171:6:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 15561,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15138,
                            "src": "5128:13:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                            }
                          },
                          "id": 15563,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 15562,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15547,
                            "src": "5142:11:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "5128:26:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                            "typeString": "struct DaoStructs.SpecialProposal storage ref"
                          }
                        },
                        "id": 15564,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "voting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8406,
                        "src": "5128:33:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 15565,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "readVote",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8206,
                      "src": "5128:42:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Voting_$7930_storage_ptr_$_t_address_$returns$_t_bool_$_t_uint256_$bound_to$_t_struct$_Voting_$7930_storage_ptr_$",
                        "typeString": "function (struct DaoStructs.Voting storage pointer,address) view returns (bool,uint256)"
                      }
                    },
                    "id": 15567,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5128:50:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
                      "typeString": "tuple(bool,uint256)"
                    }
                  },
                  "functionReturnParameters": 15555,
                  "id": 15568,
                  "nodeType": "Return",
                  "src": "5121:57:58"
                }
              ]
            },
            "documentation": null,
            "id": 15570,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readVote",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15550,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15547,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15570,
                  "src": "4954:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15546,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4954:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15549,
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "scope": 15570,
                  "src": "4975:14:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 15548,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4975:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4953:37:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15555,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15552,
                  "name": "_vote",
                  "nodeType": "VariableDeclaration",
                  "scope": 15570,
                  "src": "5036:10:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 15551,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5036:4:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15554,
                  "name": "_weight",
                  "nodeType": "VariableDeclaration",
                  "scope": 15570,
                  "src": "5048:15:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 15553,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5048:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5035:29:58"
            },
            "scope": 15599,
            "src": "4936:249:58",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15597,
              "nodeType": "Block",
              "src": "5334:134:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 15583,
                            "name": "CONTRACT_DAO_VOTING",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1355,
                            "src": "5362:19:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 15582,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "5352:9:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 15584,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5352:30:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15581,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "5344:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15585,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5344:39:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15586,
                  "nodeType": "ExpressionStatement",
                  "src": "5344:39:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 15592,
                        "name": "_voter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15574,
                        "src": "5438:6:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 15593,
                        "name": "_vote",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15576,
                        "src": "5446:5:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 15594,
                        "name": "_weight",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15578,
                        "src": "5453:7:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 15587,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15138,
                            "src": "5393:13:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                            }
                          },
                          "id": 15589,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 15588,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15572,
                            "src": "5407:11:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "5393:26:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                            "typeString": "struct DaoStructs.SpecialProposal storage ref"
                          }
                        },
                        "id": 15590,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "voting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8406,
                        "src": "5393:33:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 15591,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "revealVote",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8238,
                      "src": "5393:44:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Voting_$7930_storage_ptr_$_t_address_$_t_bool_$_t_uint256_$returns$__$bound_to$_t_struct$_Voting_$7930_storage_ptr_$",
                        "typeString": "function (struct DaoStructs.Voting storage pointer,address,bool,uint256)"
                      }
                    },
                    "id": 15595,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5393:68:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15596,
                  "nodeType": "ExpressionStatement",
                  "src": "5393:68:58"
                }
              ]
            },
            "documentation": null,
            "id": 15598,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "revealVote",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15579,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15572,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15598,
                  "src": "5220:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15571,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5220:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15574,
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "scope": 15598,
                  "src": "5249:14:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 15573,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5249:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15576,
                  "name": "_vote",
                  "nodeType": "VariableDeclaration",
                  "scope": 15598,
                  "src": "5273:10:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 15575,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5273:4:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15578,
                  "name": "_weight",
                  "nodeType": "VariableDeclaration",
                  "scope": 15598,
                  "src": "5293:15:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 15577,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5293:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5210:104:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15580,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5334:0:58"
            },
            "scope": 15599,
            "src": "5191:277:58",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 15600,
        "src": "217:5253:58"
      }
    ],
    "src": "0:5471:58"
  },
  "legacyAST": {
    "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoSpecialStorage.sol",
    "exportedSymbols": {
      "DaoSpecialStorage": [
        15599
      ]
    },
    "id": 15600,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 15117,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:58"
      },
      {
        "absolutePath": "@digix/solidity-collections/contracts/lib/DoublyLinkedList.sol",
        "file": "@digix/solidity-collections/contracts/lib/DoublyLinkedList.sol",
        "id": 15118,
        "nodeType": "ImportDirective",
        "scope": 15600,
        "sourceUnit": 25117,
        "src": "26:72:58",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/common/DaoWhitelistingCommon.sol",
        "file": "../common/DaoWhitelistingCommon.sol",
        "id": 15119,
        "nodeType": "ImportDirective",
        "scope": 15600,
        "sourceUnit": 1869,
        "src": "99:45:58",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/lib/DaoStructs.sol",
        "file": "../lib/DaoStructs.sol",
        "id": 15120,
        "nodeType": "ImportDirective",
        "scope": 15600,
        "sourceUnit": 8452,
        "src": "145:31:58",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoWhitelistingStorage.sol",
        "file": "./DaoWhitelistingStorage.sol",
        "id": 15121,
        "nodeType": "ImportDirective",
        "scope": 15600,
        "sourceUnit": 18011,
        "src": "177:38:58",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 15122,
              "name": "DaoWhitelistingCommon",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1868,
              "src": "247:21:58",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoWhitelistingCommon_$1868",
                "typeString": "contract DaoWhitelistingCommon"
              }
            },
            "id": 15123,
            "nodeType": "InheritanceSpecifier",
            "src": "247:21:58"
          }
        ],
        "contractDependencies": [
          1629,
          1868,
          18628
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 15599,
        "linearizedBaseContracts": [
          15599,
          1868,
          1629,
          18628
        ],
        "name": "DaoSpecialStorage",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 15126,
            "libraryName": {
              "contractScope": null,
              "id": 15124,
              "name": "DoublyLinkedList",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 25116,
              "src": "281:16:58",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DoublyLinkedList_$25116",
                "typeString": "library DoublyLinkedList"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "275:50:58",
            "typeName": {
              "contractScope": null,
              "id": 15125,
              "name": "DoublyLinkedList.Bytes",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 22605,
              "src": "302:22:58",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                "typeString": "struct DoublyLinkedList.Bytes"
              }
            }
          },
          {
            "id": 15129,
            "libraryName": {
              "contractScope": null,
              "id": 15127,
              "name": "DaoStructs",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8451,
              "src": "336:10:58",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoStructs_$8451",
                "typeString": "library DaoStructs"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "330:48:58",
            "typeName": {
              "contractScope": null,
              "id": 15128,
              "name": "DaoStructs.SpecialProposal",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8418,
              "src": "351:26:58",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage_ptr",
                "typeString": "struct DaoStructs.SpecialProposal"
              }
            }
          },
          {
            "id": 15132,
            "libraryName": {
              "contractScope": null,
              "id": 15130,
              "name": "DaoStructs",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8451,
              "src": "389:10:58",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoStructs_$8451",
                "typeString": "library DaoStructs"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "383:39:58",
            "typeName": {
              "contractScope": null,
              "id": 15131,
              "name": "DaoStructs.Voting",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 7930,
              "src": "404:17:58",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                "typeString": "struct DaoStructs.Voting"
              }
            }
          },
          {
            "constant": false,
            "id": 15134,
            "name": "proposals",
            "nodeType": "VariableDeclaration",
            "scope": 15599,
            "src": "494:32:58",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_Bytes_$22605_storage",
              "typeString": "struct DoublyLinkedList.Bytes"
            },
            "typeName": {
              "contractScope": null,
              "id": 15133,
              "name": "DoublyLinkedList.Bytes",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 22605,
              "src": "494:22:58",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                "typeString": "struct DoublyLinkedList.Bytes"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 15138,
            "name": "proposalsById",
            "nodeType": "VariableDeclaration",
            "scope": 15599,
            "src": "640:61:58",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
              "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal)"
            },
            "typeName": {
              "id": 15137,
              "keyType": {
                "id": 15135,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "649:7:58",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "640:47:58",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal)"
              },
              "valueType": {
                "contractScope": null,
                "id": 15136,
                "name": "DaoStructs.SpecialProposal",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 8418,
                "src": "660:26:58",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage_ptr",
                  "typeString": "struct DaoStructs.SpecialProposal"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 15150,
              "nodeType": "Block",
              "src": "746:71:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 15145,
                            "name": "CONTRACT_STORAGE_DAO_SPECIAL",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1412,
                            "src": "769:28:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 15146,
                            "name": "_resolver",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15140,
                            "src": "799:9:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 15144,
                          "name": "init",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18596,
                          "src": "764:4:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$",
                            "typeString": "function (bytes32,address) returns (bool)"
                          }
                        },
                        "id": 15147,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "764:45:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15143,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "756:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15148,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "756:54:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15149,
                  "nodeType": "ExpressionStatement",
                  "src": "756:54:58"
                }
              ]
            },
            "documentation": null,
            "id": 15151,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15141,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15140,
                  "name": "_resolver",
                  "nodeType": "VariableDeclaration",
                  "scope": 15151,
                  "src": "720:17:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 15139,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "720:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "719:19:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15142,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "746:0:58"
            },
            "scope": 15599,
            "src": "708:109:58",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15236,
              "nodeType": "Block",
              "src": "1032:609:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 15169,
                            "name": "CONTRACT_DAO_SPECIAL_PROPOSAL",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1349,
                            "src": "1060:29:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 15168,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "1050:9:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 15170,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1050:40:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15167,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "1042:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15171,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1042:49:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15172,
                  "nodeType": "ExpressionStatement",
                  "src": "1042:49:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 15185,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 15179,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 15174,
                                    "name": "proposalsById",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 15138,
                                    "src": "1121:13:58",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                                      "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                                    }
                                  },
                                  "id": 15176,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 15175,
                                    "name": "_proposalId",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 15153,
                                    "src": "1135:11:58",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1121:26:58",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                                    "typeString": "struct DaoStructs.SpecialProposal storage ref"
                                  }
                                },
                                "id": 15177,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "proposalId",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 8402,
                                "src": "1121:37:58",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 15178,
                                "name": "EMPTY_BYTES",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1293,
                                "src": "1162:11:58",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "src": "1121:52:58",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 15180,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "1120:54:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 15183,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 15181,
                                "name": "_proposalId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 15153,
                                "src": "1189:11:58",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "!=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 15182,
                                "name": "EMPTY_BYTES",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1293,
                                "src": "1204:11:58",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "src": "1189:26:58",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 15184,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "1188:28:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1120:96:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15173,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "1101:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15186,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1101:125:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15187,
                  "nodeType": "ExpressionStatement",
                  "src": "1101:125:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 15191,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15153,
                        "src": "1253:11:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 15188,
                        "name": "proposals",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15134,
                        "src": "1236:9:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                          "typeString": "struct DoublyLinkedList.Bytes storage ref"
                        }
                      },
                      "id": 15190,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24585,
                      "src": "1236:16:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes_$22605_storage_ptr_$",
                        "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 15192,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1236:29:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 15193,
                  "nodeType": "ExpressionStatement",
                  "src": "1236:29:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15199,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 15194,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15138,
                          "src": "1275:13:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                          }
                        },
                        "id": 15196,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 15195,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15153,
                          "src": "1289:11:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1275:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                          "typeString": "struct DaoStructs.SpecialProposal storage ref"
                        }
                      },
                      "id": 15197,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "proposalId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8402,
                      "src": "1275:37:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 15198,
                      "name": "_proposalId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15153,
                      "src": "1315:11:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "1275:51:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 15200,
                  "nodeType": "ExpressionStatement",
                  "src": "1275:51:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15206,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 15201,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15138,
                          "src": "1336:13:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                          }
                        },
                        "id": 15203,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 15202,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15153,
                          "src": "1350:11:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1336:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                          "typeString": "struct DaoStructs.SpecialProposal storage ref"
                        }
                      },
                      "id": 15204,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "proposer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8417,
                      "src": "1336:35:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 15205,
                      "name": "_proposer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15155,
                      "src": "1374:9:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1336:47:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 15207,
                  "nodeType": "ExpressionStatement",
                  "src": "1336:47:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15213,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 15208,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15138,
                          "src": "1393:13:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                          }
                        },
                        "id": 15210,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 15209,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15153,
                          "src": "1407:11:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1393:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                          "typeString": "struct DaoStructs.SpecialProposal storage ref"
                        }
                      },
                      "id": 15211,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "timeCreated",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8404,
                      "src": "1393:38:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 15212,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26184,
                      "src": "1434:3:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1393:44:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 15214,
                  "nodeType": "ExpressionStatement",
                  "src": "1393:44:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15220,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 15215,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15138,
                          "src": "1447:13:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                          }
                        },
                        "id": 15217,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 15216,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15153,
                          "src": "1461:11:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1447:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                          "typeString": "struct DaoStructs.SpecialProposal storage ref"
                        }
                      },
                      "id": 15218,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "uintConfigs",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8409,
                      "src": "1447:38:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 15219,
                      "name": "_uintConfigs",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15158,
                      "src": "1488:12:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "src": "1447:53:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                      "typeString": "uint256[] storage ref"
                    }
                  },
                  "id": 15221,
                  "nodeType": "ExpressionStatement",
                  "src": "1447:53:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15227,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 15222,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15138,
                          "src": "1510:13:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                          }
                        },
                        "id": 15224,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 15223,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15153,
                          "src": "1524:11:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1510:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                          "typeString": "struct DaoStructs.SpecialProposal storage ref"
                        }
                      },
                      "id": 15225,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "addressConfigs",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8412,
                      "src": "1510:41:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                        "typeString": "address[] storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 15226,
                      "name": "_addressConfigs",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15161,
                      "src": "1554:15:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "src": "1510:59:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage",
                      "typeString": "address[] storage ref"
                    }
                  },
                  "id": 15228,
                  "nodeType": "ExpressionStatement",
                  "src": "1510:59:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15234,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 15229,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15138,
                          "src": "1579:13:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                          }
                        },
                        "id": 15231,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 15230,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15153,
                          "src": "1593:11:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1579:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                          "typeString": "struct DaoStructs.SpecialProposal storage ref"
                        }
                      },
                      "id": 15232,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "bytesConfigs",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8415,
                      "src": "1579:39:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                        "typeString": "bytes32[] storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 15233,
                      "name": "_bytesConfigs",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15164,
                      "src": "1621:13:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "src": "1579:55:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                      "typeString": "bytes32[] storage ref"
                    }
                  },
                  "id": 15235,
                  "nodeType": "ExpressionStatement",
                  "src": "1579:55:58"
                }
              ]
            },
            "documentation": null,
            "id": 15237,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "addSpecialProposal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15165,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15153,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15237,
                  "src": "860:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15152,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "860:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15155,
                  "name": "_proposer",
                  "nodeType": "VariableDeclaration",
                  "scope": 15237,
                  "src": "889:17:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 15154,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "889:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15158,
                  "name": "_uintConfigs",
                  "nodeType": "VariableDeclaration",
                  "scope": 15237,
                  "src": "916:22:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15156,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "916:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 15157,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "916:9:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15161,
                  "name": "_addressConfigs",
                  "nodeType": "VariableDeclaration",
                  "scope": 15237,
                  "src": "948:25:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15159,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "948:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 15160,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "948:9:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15164,
                  "name": "_bytesConfigs",
                  "nodeType": "VariableDeclaration",
                  "scope": 15237,
                  "src": "983:23:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15162,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "983:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 15163,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "983:9:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "850:162:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15166,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1032:0:58"
            },
            "scope": 15599,
            "src": "823:818:58",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15279,
              "nodeType": "Block",
              "src": "1879:254:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15255,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 15250,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15242,
                      "src": "1889:3:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 15251,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15138,
                          "src": "1895:13:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                          }
                        },
                        "id": 15253,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 15252,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15239,
                          "src": "1909:11:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1895:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                          "typeString": "struct DaoStructs.SpecialProposal storage ref"
                        }
                      },
                      "id": 15254,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "proposalId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8402,
                      "src": "1895:37:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "1889:43:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 15256,
                  "nodeType": "ExpressionStatement",
                  "src": "1889:43:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15262,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 15257,
                      "name": "_proposer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15244,
                      "src": "1942:9:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 15258,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15138,
                          "src": "1954:13:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                          }
                        },
                        "id": 15260,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 15259,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15239,
                          "src": "1968:11:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1954:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                          "typeString": "struct DaoStructs.SpecialProposal storage ref"
                        }
                      },
                      "id": 15261,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "proposer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8417,
                      "src": "1954:35:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1942:47:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 15263,
                  "nodeType": "ExpressionStatement",
                  "src": "1942:47:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15269,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 15264,
                      "name": "_timeCreated",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15246,
                      "src": "1999:12:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 15265,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15138,
                          "src": "2014:13:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                          }
                        },
                        "id": 15267,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 15266,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15239,
                          "src": "2028:11:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2014:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                          "typeString": "struct DaoStructs.SpecialProposal storage ref"
                        }
                      },
                      "id": 15268,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "timeCreated",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8404,
                      "src": "2014:38:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1999:53:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 15270,
                  "nodeType": "ExpressionStatement",
                  "src": "1999:53:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15277,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 15271,
                      "name": "_timeVotingStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15248,
                      "src": "2062:18:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 15272,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15138,
                            "src": "2083:13:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                            }
                          },
                          "id": 15274,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 15273,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15239,
                            "src": "2097:11:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2083:26:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                            "typeString": "struct DaoStructs.SpecialProposal storage ref"
                          }
                        },
                        "id": 15275,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "voting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8406,
                        "src": "2083:33:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 15276,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "startTime",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7907,
                      "src": "2083:43:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2062:64:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 15278,
                  "nodeType": "ExpressionStatement",
                  "src": "2062:64:58"
                }
              ]
            },
            "documentation": null,
            "id": 15280,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15240,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15239,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15280,
                  "src": "1669:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15238,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1669:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1668:21:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15249,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15242,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 15280,
                  "src": "1748:11:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15241,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1748:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15244,
                  "name": "_proposer",
                  "nodeType": "VariableDeclaration",
                  "scope": 15280,
                  "src": "1773:17:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 15243,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1773:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15246,
                  "name": "_timeCreated",
                  "nodeType": "VariableDeclaration",
                  "scope": 15280,
                  "src": "1804:20:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 15245,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1804:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15248,
                  "name": "_timeVotingStarted",
                  "nodeType": "VariableDeclaration",
                  "scope": 15280,
                  "src": "1838:26:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 15247,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1838:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1734:140:58"
            },
            "scope": 15599,
            "src": "1647:486:58",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15294,
              "nodeType": "Block",
              "src": "2258:64:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15292,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 15287,
                      "name": "_proposer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15285,
                      "src": "2268:9:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 15288,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15138,
                          "src": "2280:13:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                          }
                        },
                        "id": 15290,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 15289,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15282,
                          "src": "2294:11:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2280:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                          "typeString": "struct DaoStructs.SpecialProposal storage ref"
                        }
                      },
                      "id": 15291,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "proposer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8417,
                      "src": "2280:35:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2268:47:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 15293,
                  "nodeType": "ExpressionStatement",
                  "src": "2268:47:58"
                }
              ]
            },
            "documentation": null,
            "id": 15295,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposalProposer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15283,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15282,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15295,
                  "src": "2169:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15281,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2169:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2168:21:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15286,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15285,
                  "name": "_proposer",
                  "nodeType": "VariableDeclaration",
                  "scope": 15295,
                  "src": "2235:17:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 15284,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2235:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2234:19:58"
            },
            "scope": 15599,
            "src": "2139:183:58",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15330,
              "nodeType": "Block",
              "src": "2562:204:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15314,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 15309,
                      "name": "_uintConfigs",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15301,
                      "src": "2572:12:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 15310,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15138,
                          "src": "2587:13:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                          }
                        },
                        "id": 15312,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 15311,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15297,
                          "src": "2601:11:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2587:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                          "typeString": "struct DaoStructs.SpecialProposal storage ref"
                        }
                      },
                      "id": 15313,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "uintConfigs",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8409,
                      "src": "2587:38:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "src": "2572:53:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "id": 15315,
                  "nodeType": "ExpressionStatement",
                  "src": "2572:53:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15321,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 15316,
                      "name": "_addressConfigs",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15304,
                      "src": "2635:15:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 15317,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15138,
                          "src": "2653:13:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                          }
                        },
                        "id": 15319,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 15318,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15297,
                          "src": "2667:11:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2653:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                          "typeString": "struct DaoStructs.SpecialProposal storage ref"
                        }
                      },
                      "id": 15320,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "addressConfigs",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8412,
                      "src": "2653:41:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                        "typeString": "address[] storage ref"
                      }
                    },
                    "src": "2635:59:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "id": 15322,
                  "nodeType": "ExpressionStatement",
                  "src": "2635:59:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15328,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 15323,
                      "name": "_bytesConfigs",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15307,
                      "src": "2704:13:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 15324,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15138,
                          "src": "2720:13:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                          }
                        },
                        "id": 15326,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 15325,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15297,
                          "src": "2734:11:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2720:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                          "typeString": "struct DaoStructs.SpecialProposal storage ref"
                        }
                      },
                      "id": 15327,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "bytesConfigs",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8415,
                      "src": "2720:39:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                        "typeString": "bytes32[] storage ref"
                      }
                    },
                    "src": "2704:55:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "id": 15329,
                  "nodeType": "ExpressionStatement",
                  "src": "2704:55:58"
                }
              ]
            },
            "documentation": null,
            "id": 15331,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readConfigs",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15298,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15297,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15331,
                  "src": "2349:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15296,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2349:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2348:21:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15308,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15301,
                  "name": "_uintConfigs",
                  "nodeType": "VariableDeclaration",
                  "scope": 15331,
                  "src": "2428:29:58",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15299,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "2428:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 15300,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2428:9:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15304,
                  "name": "_addressConfigs",
                  "nodeType": "VariableDeclaration",
                  "scope": 15331,
                  "src": "2471:32:58",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15302,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "2471:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 15303,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2471:9:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15307,
                  "name": "_bytesConfigs",
                  "nodeType": "VariableDeclaration",
                  "scope": 15331,
                  "src": "2517:30:58",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15305,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "2517:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 15306,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2517:9:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2414:143:58"
            },
            "scope": 15599,
            "src": "2328:438:58",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15356,
              "nodeType": "Block",
              "src": "2922:121:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 15344,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "2940:21:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 15345,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2940:23:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15343,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "2932:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15346,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2932:32:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15347,
                  "nodeType": "ExpressionStatement",
                  "src": "2932:32:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 15353,
                        "name": "_allUsers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15336,
                        "src": "3026:9:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 15348,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15138,
                            "src": "2981:13:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                            }
                          },
                          "id": 15350,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 15349,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15333,
                            "src": "2995:11:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2981:26:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                            "typeString": "struct DaoStructs.SpecialProposal storage ref"
                          }
                        },
                        "id": 15351,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "voting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8406,
                        "src": "2981:33:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 15352,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "countVotes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8055,
                      "src": "2981:44:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Voting_$7930_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_uint256_$_t_uint256_$bound_to$_t_struct$_Voting_$7930_storage_ptr_$",
                        "typeString": "function (struct DaoStructs.Voting storage pointer,address[] memory) view returns (uint256,uint256)"
                      }
                    },
                    "id": 15354,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2981:55:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
                      "typeString": "tuple(uint256,uint256)"
                    }
                  },
                  "functionReturnParameters": 15342,
                  "id": 15355,
                  "nodeType": "Return",
                  "src": "2974:62:58"
                }
              ]
            },
            "documentation": null,
            "id": 15357,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readVotingCount",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15337,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15333,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15357,
                  "src": "2797:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15332,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2797:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15336,
                  "name": "_allUsers",
                  "nodeType": "VariableDeclaration",
                  "scope": 15357,
                  "src": "2818:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15334,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "2818:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 15335,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2818:9:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2796:42:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15342,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15339,
                  "name": "_for",
                  "nodeType": "VariableDeclaration",
                  "scope": 15357,
                  "src": "2886:12:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 15338,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2886:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15341,
                  "name": "_against",
                  "nodeType": "VariableDeclaration",
                  "scope": 15357,
                  "src": "2900:16:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 15340,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2900:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2885:32:58"
            },
            "scope": 15599,
            "src": "2772:271:58",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 15377,
              "nodeType": "Block",
              "src": "3159:111:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 15365,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "3177:21:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 15366,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3177:23:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15364,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "3169:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15367,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3169:32:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15368,
                  "nodeType": "ExpressionStatement",
                  "src": "3169:32:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15375,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 15369,
                      "name": "_start",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15362,
                      "src": "3211:6:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 15370,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15138,
                            "src": "3220:13:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                            }
                          },
                          "id": 15372,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 15371,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15359,
                            "src": "3234:11:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3220:26:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                            "typeString": "struct DaoStructs.SpecialProposal storage ref"
                          }
                        },
                        "id": 15373,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "voting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8406,
                        "src": "3220:33:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 15374,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "startTime",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7907,
                      "src": "3220:43:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3211:52:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 15376,
                  "nodeType": "ExpressionStatement",
                  "src": "3211:52:58"
                }
              ]
            },
            "documentation": null,
            "id": 15378,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readVotingTime",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15360,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15359,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15378,
                  "src": "3073:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15358,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3073:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3072:21:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15363,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15362,
                  "name": "_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 15378,
                  "src": "3139:14:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 15361,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3139:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3138:16:58"
            },
            "scope": 15599,
            "src": "3049:221:58",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15403,
              "nodeType": "Block",
              "src": "3397:123:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 15389,
                            "name": "CONTRACT_DAO_VOTING",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1355,
                            "src": "3425:19:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 15388,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "3415:9:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 15390,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3415:30:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15387,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "3407:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15391,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3407:39:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15392,
                  "nodeType": "ExpressionStatement",
                  "src": "3407:39:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15401,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 15393,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 15138,
                              "src": "3456:13:58",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                              }
                            },
                            "id": 15395,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 15394,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 15380,
                              "src": "3470:11:58",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3456:26:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                              "typeString": "struct DaoStructs.SpecialProposal storage ref"
                            }
                          },
                          "id": 15396,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "voting",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 8406,
                          "src": "3456:33:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Voting_$7930_storage",
                            "typeString": "struct DaoStructs.Voting storage ref"
                          }
                        },
                        "id": 15397,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "commits",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7915,
                        "src": "3456:41:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$",
                          "typeString": "mapping(address => bytes32)"
                        }
                      },
                      "id": 15399,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 15398,
                        "name": "_voter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15384,
                        "src": "3498:6:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3456:49:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 15400,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15382,
                      "src": "3508:5:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "3456:57:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 15402,
                  "nodeType": "ExpressionStatement",
                  "src": "3456:57:58"
                }
              ]
            },
            "documentation": null,
            "id": 15404,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "commitVote",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15385,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15380,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15404,
                  "src": "3305:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15379,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3305:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15382,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 15404,
                  "src": "3334:13:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15381,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3334:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15384,
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "scope": 15404,
                  "src": "3357:14:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 15383,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3357:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3295:82:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15386,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3397:0:58"
            },
            "scope": 15599,
            "src": "3276:244:58",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15428,
              "nodeType": "Block",
              "src": "3659:122:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 15414,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "3677:21:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 15415,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3677:23:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15413,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "3669:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15416,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3669:32:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15417,
                  "nodeType": "ExpressionStatement",
                  "src": "3669:32:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15426,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 15418,
                      "name": "_commitHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15411,
                      "src": "3711:11:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 15419,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 15138,
                              "src": "3725:13:58",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                              }
                            },
                            "id": 15421,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 15420,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 15406,
                              "src": "3739:11:58",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3725:26:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                              "typeString": "struct DaoStructs.SpecialProposal storage ref"
                            }
                          },
                          "id": 15422,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "voting",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 8406,
                          "src": "3725:33:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Voting_$7930_storage",
                            "typeString": "struct DaoStructs.Voting storage ref"
                          }
                        },
                        "id": 15423,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "commits",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7915,
                        "src": "3725:41:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$",
                          "typeString": "mapping(address => bytes32)"
                        }
                      },
                      "id": 15425,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 15424,
                        "name": "_voter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15408,
                        "src": "3767:6:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "3725:49:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "3711:63:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 15427,
                  "nodeType": "ExpressionStatement",
                  "src": "3711:63:58"
                }
              ]
            },
            "documentation": null,
            "id": 15429,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readComittedVote",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15409,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15406,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15429,
                  "src": "3552:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15405,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3552:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15408,
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "scope": 15429,
                  "src": "3573:14:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 15407,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3573:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3551:37:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15412,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15411,
                  "name": "_commitHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 15429,
                  "src": "3634:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15410,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3634:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3633:21:58"
            },
            "scope": 15599,
            "src": "3526:255:58",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15450,
              "nodeType": "Block",
              "src": "3865:127:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 15438,
                            "name": "CONTRACT_DAO_SPECIAL_PROPOSAL",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1349,
                            "src": "3893:29:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 15437,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "3883:9:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 15439,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3883:40:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15436,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "3875:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15440,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3875:49:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15441,
                  "nodeType": "ExpressionStatement",
                  "src": "3875:49:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15448,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 15442,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15138,
                            "src": "3934:13:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                            }
                          },
                          "id": 15444,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 15443,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15431,
                            "src": "3948:11:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3934:26:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                            "typeString": "struct DaoStructs.SpecialProposal storage ref"
                          }
                        },
                        "id": 15445,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "voting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8406,
                        "src": "3934:33:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 15446,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "startTime",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7907,
                      "src": "3934:43:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 15447,
                      "name": "_time",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15433,
                      "src": "3980:5:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3934:51:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 15449,
                  "nodeType": "ExpressionStatement",
                  "src": "3934:51:58"
                }
              ]
            },
            "documentation": null,
            "id": 15451,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setVotingTime",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15434,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15431,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15451,
                  "src": "3810:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15430,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3810:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15433,
                  "name": "_time",
                  "nodeType": "VariableDeclaration",
                  "scope": 15451,
                  "src": "3831:13:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 15432,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3831:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3809:36:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15435,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3865:0:58"
            },
            "scope": 15599,
            "src": "3787:205:58",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15471,
              "nodeType": "Block",
              "src": "4108:109:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 15459,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "4126:21:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 15460,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4126:23:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15458,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "4118:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15461,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4118:32:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15462,
                  "nodeType": "ExpressionStatement",
                  "src": "4118:32:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15469,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 15463,
                      "name": "_result",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15456,
                      "src": "4160:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 15464,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15138,
                            "src": "4170:13:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                            }
                          },
                          "id": 15466,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 15465,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15453,
                            "src": "4184:11:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "4170:26:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                            "typeString": "struct DaoStructs.SpecialProposal storage ref"
                          }
                        },
                        "id": 15467,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "voting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8406,
                        "src": "4170:33:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 15468,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "passed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7925,
                      "src": "4170:40:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4160:50:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 15470,
                  "nodeType": "ExpressionStatement",
                  "src": "4160:50:58"
                }
              ]
            },
            "documentation": null,
            "id": 15472,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readVotingResult",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15454,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15453,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15472,
                  "src": "4024:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15452,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4024:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4023:21:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15457,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15456,
                  "name": "_result",
                  "nodeType": "VariableDeclaration",
                  "scope": 15472,
                  "src": "4090:12:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 15455,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4090:4:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4089:14:58"
            },
            "scope": 15599,
            "src": "3998:219:58",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15493,
              "nodeType": "Block",
              "src": "4294:131:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 15481,
                            "name": "CONTRACT_DAO_SPECIAL_VOTING_CLAIMS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1361,
                            "src": "4322:34:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 15480,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "4312:9:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 15482,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4312:45:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15479,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "4304:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15483,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4304:54:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15484,
                  "nodeType": "ExpressionStatement",
                  "src": "4304:54:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15491,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 15485,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15138,
                            "src": "4368:13:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                            }
                          },
                          "id": 15487,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 15486,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15474,
                            "src": "4382:11:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "4368:26:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                            "typeString": "struct DaoStructs.SpecialProposal storage ref"
                          }
                        },
                        "id": 15488,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "voting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8406,
                        "src": "4368:33:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 15489,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "passed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7925,
                      "src": "4368:40:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 15490,
                      "name": "_result",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15476,
                      "src": "4411:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4368:50:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 15492,
                  "nodeType": "ExpressionStatement",
                  "src": "4368:50:58"
                }
              ]
            },
            "documentation": null,
            "id": 15494,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setPass",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15477,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15474,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15494,
                  "src": "4240:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15473,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4240:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15476,
                  "name": "_result",
                  "nodeType": "VariableDeclaration",
                  "scope": 15494,
                  "src": "4261:12:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 15475,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4261:4:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4239:35:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15478,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4294:0:58"
            },
            "scope": 15599,
            "src": "4223:202:58",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15523,
              "nodeType": "Block",
              "src": "4510:199:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 15503,
                            "name": "CONTRACT_DAO_SPECIAL_VOTING_CLAIMS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1361,
                            "src": "4538:34:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 15502,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "4528:9:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 15504,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4528:45:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15501,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "4520:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15505,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4520:54:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15506,
                  "nodeType": "ExpressionStatement",
                  "src": "4520:54:58"
                },
                {
                  "assignments": [
                    15510
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 15510,
                      "name": "_proposal",
                      "nodeType": "VariableDeclaration",
                      "scope": 15524,
                      "src": "4584:44:58",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage_ptr",
                        "typeString": "struct DaoStructs.SpecialProposal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 15509,
                        "name": "DaoStructs.SpecialProposal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 8418,
                        "src": "4584:26:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage_ptr",
                          "typeString": "struct DaoStructs.SpecialProposal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 15514,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 15511,
                      "name": "proposalsById",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15138,
                      "src": "4631:13:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                        "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                      }
                    },
                    "id": 15513,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 15512,
                      "name": "_proposalId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15496,
                      "src": "4645:11:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4631:26:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                      "typeString": "struct DaoStructs.SpecialProposal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4584:73:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15521,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 15515,
                          "name": "_proposal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15510,
                          "src": "4667:9:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage_ptr",
                            "typeString": "struct DaoStructs.SpecialProposal storage pointer"
                          }
                        },
                        "id": 15518,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "voting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8406,
                        "src": "4667:16:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 15519,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "claimed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7927,
                      "src": "4667:24:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 15520,
                      "name": "_claimed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15498,
                      "src": "4694:8:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4667:35:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 15522,
                  "nodeType": "ExpressionStatement",
                  "src": "4667:35:58"
                }
              ]
            },
            "documentation": null,
            "id": 15524,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setVotingClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15499,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15496,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15524,
                  "src": "4455:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15495,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4455:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15498,
                  "name": "_claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 15524,
                  "src": "4476:13:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 15497,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4476:4:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4454:36:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15500,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4510:0:58"
            },
            "scope": 15599,
            "src": "4431:278:58",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15544,
              "nodeType": "Block",
              "src": "4819:111:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 15532,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "4837:21:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 15533,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4837:23:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15531,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "4829:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15534,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4829:32:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15535,
                  "nodeType": "ExpressionStatement",
                  "src": "4829:32:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 15542,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 15536,
                      "name": "_claimed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 15529,
                      "src": "4871:8:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 15537,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15138,
                            "src": "4882:13:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                            }
                          },
                          "id": 15539,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 15538,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15526,
                            "src": "4896:11:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "4882:26:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                            "typeString": "struct DaoStructs.SpecialProposal storage ref"
                          }
                        },
                        "id": 15540,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "voting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8406,
                        "src": "4882:33:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 15541,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "claimed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7927,
                      "src": "4882:41:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4871:52:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 15543,
                  "nodeType": "ExpressionStatement",
                  "src": "4871:52:58"
                }
              ]
            },
            "documentation": null,
            "id": 15545,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isClaimed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15527,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15526,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15545,
                  "src": "4734:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15525,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4734:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4733:21:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15530,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15529,
                  "name": "_claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 15545,
                  "src": "4800:13:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 15528,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4800:4:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4799:15:58"
            },
            "scope": 15599,
            "src": "4715:215:58",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15569,
              "nodeType": "Block",
              "src": "5069:116:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 15557,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "5087:21:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 15558,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5087:23:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15556,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "5079:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15559,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5079:32:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15560,
                  "nodeType": "ExpressionStatement",
                  "src": "5079:32:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 15566,
                        "name": "_voter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15549,
                        "src": "5171:6:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 15561,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15138,
                            "src": "5128:13:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                            }
                          },
                          "id": 15563,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 15562,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15547,
                            "src": "5142:11:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "5128:26:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                            "typeString": "struct DaoStructs.SpecialProposal storage ref"
                          }
                        },
                        "id": 15564,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "voting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8406,
                        "src": "5128:33:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 15565,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "readVote",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8206,
                      "src": "5128:42:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Voting_$7930_storage_ptr_$_t_address_$returns$_t_bool_$_t_uint256_$bound_to$_t_struct$_Voting_$7930_storage_ptr_$",
                        "typeString": "function (struct DaoStructs.Voting storage pointer,address) view returns (bool,uint256)"
                      }
                    },
                    "id": 15567,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5128:50:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
                      "typeString": "tuple(bool,uint256)"
                    }
                  },
                  "functionReturnParameters": 15555,
                  "id": 15568,
                  "nodeType": "Return",
                  "src": "5121:57:58"
                }
              ]
            },
            "documentation": null,
            "id": 15570,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readVote",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15550,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15547,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15570,
                  "src": "4954:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15546,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4954:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15549,
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "scope": 15570,
                  "src": "4975:14:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 15548,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4975:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4953:37:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15555,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15552,
                  "name": "_vote",
                  "nodeType": "VariableDeclaration",
                  "scope": 15570,
                  "src": "5036:10:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 15551,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5036:4:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15554,
                  "name": "_weight",
                  "nodeType": "VariableDeclaration",
                  "scope": 15570,
                  "src": "5048:15:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 15553,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5048:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5035:29:58"
            },
            "scope": 15599,
            "src": "4936:249:58",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 15597,
              "nodeType": "Block",
              "src": "5334:134:58",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 15583,
                            "name": "CONTRACT_DAO_VOTING",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1355,
                            "src": "5362:19:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 15582,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "5352:9:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 15584,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5352:30:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 15581,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "5344:7:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 15585,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5344:39:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15586,
                  "nodeType": "ExpressionStatement",
                  "src": "5344:39:58"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 15592,
                        "name": "_voter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15574,
                        "src": "5438:6:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 15593,
                        "name": "_vote",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15576,
                        "src": "5446:5:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 15594,
                        "name": "_weight",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15578,
                        "src": "5453:7:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 15587,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15138,
                            "src": "5393:13:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_SpecialProposal_$8418_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.SpecialProposal storage ref)"
                            }
                          },
                          "id": 15589,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 15588,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15572,
                            "src": "5407:11:58",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "5393:26:58",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_SpecialProposal_$8418_storage",
                            "typeString": "struct DaoStructs.SpecialProposal storage ref"
                          }
                        },
                        "id": 15590,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "voting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8406,
                        "src": "5393:33:58",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 15591,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "revealVote",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8238,
                      "src": "5393:44:58",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Voting_$7930_storage_ptr_$_t_address_$_t_bool_$_t_uint256_$returns$__$bound_to$_t_struct$_Voting_$7930_storage_ptr_$",
                        "typeString": "function (struct DaoStructs.Voting storage pointer,address,bool,uint256)"
                      }
                    },
                    "id": 15595,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5393:68:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 15596,
                  "nodeType": "ExpressionStatement",
                  "src": "5393:68:58"
                }
              ]
            },
            "documentation": null,
            "id": 15598,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "revealVote",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15579,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15572,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 15598,
                  "src": "5220:19:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 15571,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5220:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15574,
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "scope": 15598,
                  "src": "5249:14:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 15573,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5249:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15576,
                  "name": "_vote",
                  "nodeType": "VariableDeclaration",
                  "scope": 15598,
                  "src": "5273:10:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 15575,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5273:4:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15578,
                  "name": "_weight",
                  "nodeType": "VariableDeclaration",
                  "scope": 15598,
                  "src": "5293:15:58",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 15577,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5293:7:58",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5210:104:58"
            },
            "payable": false,
            "returnParameters": {
              "id": 15580,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5334:0:58"
            },
            "scope": 15599,
            "src": "5191:277:58",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 15600,
        "src": "217:5253:58"
      }
    ],
    "src": "0:5471:58"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {
    "42": {
      "events": {},
      "links": {
        "DaoStructs": "0xefd92aeabd90747620117fa2188697aef3043f6c",
        "DoublyLinkedList": "0x8045c179449f1501786a1bc68224fc49f8463d08"
      },
      "address": "0xf5ede64d7791e92eea47e599dcc8564834613a1c",
      "transactionHash": "0x0a0c9f8e95bbb66085aebb4d1363857590068fb00efae25ab5b34d8c8e9681e9"
    }
  },
  "schemaVersion": "2.0.2",
  "updatedAt": "2020-03-16T08:53:12.902Z"
}