{
  "contractName": "SplitterWallet",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "balanceTotal",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "recipients",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "payable": true,
      "stateMutability": "payable",
      "type": "fallback"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogWithdraw",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "addRecipient",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "old_addr",
          "type": "address"
        }
      ],
      "name": "removeRecipient",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "new_addr",
          "type": "address"
        }
      ],
      "name": "replaceSelf",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "allocate",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "withdraw",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405260008054600160a060020a031916331790556108a2806100256000396000f3006080604052600436106100a35763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166312a2919881146100a55780631c3101d3146100c65780633ccfd60b146100e757806342b8c415146100fc5780634a3f864b1461012357806370a08231146101445780638da5cb5b14610165578063abaa991614610196578063d1bc76a1146101ab578063f2fde38b146101c3575b005b3480156100b157600080fd5b506100a3600160a060020a03600435166101e4565b3480156100d257600080fd5b506100a3600160a060020a03600435166102c9565b3480156100f357600080fd5b506100a3610399565b34801561010857600080fd5b50610111610498565b60408051918252519081900360200190f35b34801561012f57600080fd5b506100a3600160a060020a036004351661049e565b34801561015057600080fd5b50610111600160a060020a036004351661051a565b34801561017157600080fd5b5061017a61052c565b60408051600160a060020a039092168252519081900360200190f35b3480156101a257600080fd5b506100a361053b565b3480156101b757600080fd5b5061017a6004356106ee565b3480156101cf57600080fd5b506100a3600160a060020a0360043516610716565b600080548190600160a060020a031633146101fe57600080fd5b6102078361075c565b915082600160a060020a031660038381548110151561022257fe5b600091825260209091200154600160a060020a03161461023e57fe5b50600354600019018181146102b057600380548290811061025b57fe5b60009182526020909120015460038054600160a060020a03909216918490811061028157fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a031602179055505b60038054906102c390600019830161082c565b50505050565b600054600160a060020a031633146102e057600080fd5b60035460641161033a576040805160e560020a62461bcd02815260206004820152601360248201527f546f6f206d616e7920726563697069656e747300000000000000000000000000604482015290519081900360640190fd5b600380546001810182556000919091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b33600090815260016020526040812054908111610400576040805160e560020a62461bcd02815260206004820152601860248201527f42616c616e6365206d75737420626520706f7369746976650000000000000000604482015290519081900360640190fd5b600254610413908263ffffffff61080416565b600255336000818152600160205260408082208290555183156108fc0291849190818181858888f19350505050158015610451573d6000803e3d6000fd5b5060408051828152905133917f4ce7033d118120e254016dccf195288400b28fc8936425acd5f17ce2df3ab708919081900360200190a26002543031101561049557fe5b50565b60025481565b60006104a93361075c565b600380549192503391839081106104bc57fe5b600091825260209091200154600160a060020a0316146104d857fe5b816003828154811015156104e857fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a031602179055505050565b60016020526000908152604090205481565b600054600160a060020a031681565b600080600080600061056260025430600160a060020a03163161080490919063ffffffff16565b9450600085116105bc576040805160e560020a62461bcd02815260206004820152601460248201527f4e6f2066756e647320746f20616c6c6f63617465000000000000000000000000604482015290519081900360640190fd5b600354935083858115156105cc57fe5b0492506000831161064d576040805160e560020a62461bcd02815260206004820152603160248201527f4e6f206d6f6e6579206c65667420746f20626520616c6c6f636174656420616660448201527f74657220726f756e64696e6720646f776e000000000000000000000000000000606482015290519081900360840190fd5b600091505b838210156106da57600380548390811061066857fe5b6000918252602080832090910154600160a060020a031680835260019091526040909120549091506106a0908463ffffffff61081616565b600160a060020a0382166000908152600160205260409020556002546106cc908463ffffffff61081616565b600255600190910190610652565b600254303110156106e757fe5b5050505050565b60038054829081106106fc57fe5b600091825260209091200154600160a060020a0316905081565b600054600160a060020a0316331461072d57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000805b6003548110156107ae5782600160a060020a031660038281548110151561078357fe5b600091825260209091200154600160a060020a031614156107a6578091506107fe565b600101610760565b6040805160e560020a62461bcd02815260206004820152601360248201527f526563697069656e74206e6f7420666f756e6400000000000000000000000000604482015290519081900360640190fd5b50919050565b60008282111561081057fe5b50900390565b60008282018381101561082557fe5b9392505050565b81548183558181111561085057600083815260209020610850918101908301610855565b505050565b61087391905b8082111561086f576000815560010161085b565b5090565b905600a165627a7a72305820ca9029923b645eafaa4dceec0c5fbeb1ec3dfb2939ff6442b5b1205ecd7e335c0029",
  "deployedBytecode": "0x6080604052600436106100a35763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166312a2919881146100a55780631c3101d3146100c65780633ccfd60b146100e757806342b8c415146100fc5780634a3f864b1461012357806370a08231146101445780638da5cb5b14610165578063abaa991614610196578063d1bc76a1146101ab578063f2fde38b146101c3575b005b3480156100b157600080fd5b506100a3600160a060020a03600435166101e4565b3480156100d257600080fd5b506100a3600160a060020a03600435166102c9565b3480156100f357600080fd5b506100a3610399565b34801561010857600080fd5b50610111610498565b60408051918252519081900360200190f35b34801561012f57600080fd5b506100a3600160a060020a036004351661049e565b34801561015057600080fd5b50610111600160a060020a036004351661051a565b34801561017157600080fd5b5061017a61052c565b60408051600160a060020a039092168252519081900360200190f35b3480156101a257600080fd5b506100a361053b565b3480156101b757600080fd5b5061017a6004356106ee565b3480156101cf57600080fd5b506100a3600160a060020a0360043516610716565b600080548190600160a060020a031633146101fe57600080fd5b6102078361075c565b915082600160a060020a031660038381548110151561022257fe5b600091825260209091200154600160a060020a03161461023e57fe5b50600354600019018181146102b057600380548290811061025b57fe5b60009182526020909120015460038054600160a060020a03909216918490811061028157fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a031602179055505b60038054906102c390600019830161082c565b50505050565b600054600160a060020a031633146102e057600080fd5b60035460641161033a576040805160e560020a62461bcd02815260206004820152601360248201527f546f6f206d616e7920726563697069656e747300000000000000000000000000604482015290519081900360640190fd5b600380546001810182556000919091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b33600090815260016020526040812054908111610400576040805160e560020a62461bcd02815260206004820152601860248201527f42616c616e6365206d75737420626520706f7369746976650000000000000000604482015290519081900360640190fd5b600254610413908263ffffffff61080416565b600255336000818152600160205260408082208290555183156108fc0291849190818181858888f19350505050158015610451573d6000803e3d6000fd5b5060408051828152905133917f4ce7033d118120e254016dccf195288400b28fc8936425acd5f17ce2df3ab708919081900360200190a26002543031101561049557fe5b50565b60025481565b60006104a93361075c565b600380549192503391839081106104bc57fe5b600091825260209091200154600160a060020a0316146104d857fe5b816003828154811015156104e857fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a031602179055505050565b60016020526000908152604090205481565b600054600160a060020a031681565b600080600080600061056260025430600160a060020a03163161080490919063ffffffff16565b9450600085116105bc576040805160e560020a62461bcd02815260206004820152601460248201527f4e6f2066756e647320746f20616c6c6f63617465000000000000000000000000604482015290519081900360640190fd5b600354935083858115156105cc57fe5b0492506000831161064d576040805160e560020a62461bcd02815260206004820152603160248201527f4e6f206d6f6e6579206c65667420746f20626520616c6c6f636174656420616660448201527f74657220726f756e64696e6720646f776e000000000000000000000000000000606482015290519081900360840190fd5b600091505b838210156106da57600380548390811061066857fe5b6000918252602080832090910154600160a060020a031680835260019091526040909120549091506106a0908463ffffffff61081616565b600160a060020a0382166000908152600160205260409020556002546106cc908463ffffffff61081616565b600255600190910190610652565b600254303110156106e757fe5b5050505050565b60038054829081106106fc57fe5b600091825260209091200154600160a060020a0316905081565b600054600160a060020a0316331461072d57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000805b6003548110156107ae5782600160a060020a031660038281548110151561078357fe5b600091825260209091200154600160a060020a031614156107a6578091506107fe565b600101610760565b6040805160e560020a62461bcd02815260206004820152601360248201527f526563697069656e74206e6f7420666f756e6400000000000000000000000000604482015290519081900360640190fd5b50919050565b60008282111561081057fe5b50900390565b60008282018381101561082557fe5b9392505050565b81548183558181111561085057600083815260209020610850918101908301610855565b505050565b61087391905b8082111561086f576000815560010161085b565b5090565b905600a165627a7a72305820ca9029923b645eafaa4dceec0c5fbeb1ec3dfb2939ff6442b5b1205ecd7e335c0029",
  "sourceMap": "982:3680:12:-;;;111:5:7;:18;;-1:-1:-1;;;;;;111:18:7;119:10;111:18;;;982:3680:12;;;;;;",
  "deployedSourceMap": "982:3680:12:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2378:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2378:458:12;-1:-1:-1;;;;;2378:458:12;;;;;2013:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2013:182:12;-1:-1:-1;;;;;2013:182:12;;;;;4256:358;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4256:358:12;;;;1296:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1296:27:12;;;;;;;;;;;;;;;;;;;;3027:199;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3027:199:12;-1:-1:-1;;;;;3027:199:12;;;;;1201:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1201:44:12;-1:-1:-1;;;;;1201:44:12;;;;;48:20:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;48:20:7;;;;;;;;-1:-1:-1;;;;;48:20:7;;;;;;;;;;;;;;3463:721:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3463:721:12;;;;1400:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1400:27:12;;;;;223:109:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;223:109:7;-1:-1:-1;;;;;223:109:7;;;;;2378:458:12;2464:11;193:5:7;;2464:11:12;;-1:-1:-1;;;;;193:5:7;179:10;:19;171:28;;;;;;2478:30:12;2499:8;2478:20;:30::i;:::-;2464:44;;2544:8;-1:-1:-1;;;;;2525:27:12;:10;2536:3;2525:15;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2525:15:12;:27;2518:35;;;;-1:-1:-1;2685:10:12;:17;-1:-1:-1;;2685:21:12;2720:15;;;2716:84;;2769:10;:20;;2780:8;;2769:20;;;;;;;;;;;;;;;;2751:10;:15;;-1:-1:-1;;;;;2769:20:12;;;;2762:3;;2751:15;;;;;;;;;;;;;;:38;;;;;-1:-1:-1;;;;;2751:38:12;;;;;-1:-1:-1;;;;;2751:38:12;;;;;;2716:84;2810:10;:19;;;;;-1:-1:-1;;2810:19:12;;;:::i;:::-;;2378:458;;;:::o;2013:182::-;193:5:7;;-1:-1:-1;;;;;193:5:7;179:10;:19;171:28;;;;;;2099:10:12;:17;1147:3;-1:-1:-1;2091:66:12;;;;;-1:-1:-1;;;;;2091:66:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;2167:10;27::-1;;39:1;23:18;;45:23;;-1:-1;2167:21:12;;;;;;;;-1:-1:-1;;2167:21:12;-1:-1:-1;;;;;2167:21:12;;;;;;;;;;2013:182::o;4256:358::-;4325:10;4301:11;4315:21;;;:9;:21;;;;;;;4354:7;;4346:44;;;;;-1:-1:-1;;;;;4346:44:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;4416:12;;:21;;4433:3;4416:21;:16;:21;:::i;:::-;4401:12;:36;4457:10;4471:1;4447:21;;;:9;:21;;;;;;:25;;;4482:24;;;;;;4502:3;;4482:24;;4471:1;4482:24;4502:3;4457:10;4482:24;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;4522:28:12;;;;;;;;4534:10;;4522:28;;;;;;;;;;4593:12;;4576:4;4568:21;:37;;4561:45;;;;4256:358;:::o;1296:27::-;;;;:::o;3027:199::-;3090:11;3104:32;3125:10;3104:20;:32::i;:::-;3153:10;:15;;3090:46;;-1:-1:-1;3172:10:12;;3090:46;;3153:15;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3153:15:12;:29;3146:37;;;;3211:8;3193:10;3204:3;3193:15;;;;;;;;;;;;;;;;;;:26;;;;;-1:-1:-1;;;;;3193:26:12;;;;;-1:-1:-1;;;;;3193:26:12;;;;;;3027:199;;:::o;1201:44::-;;;;;;;;;;;;;:::o;48:20:7:-;;;-1:-1:-1;;;;;48:20:7;;:::o;3463:721:12:-;3507:19;3637:22;3771:12;3905:9;3971:13;3529:39;3555:12;;3537:4;-1:-1:-1;;;;;3529:21:12;;:25;;:39;;;;:::i;:::-;3507:61;-1:-1:-1;3600:1:12;3586:15;;3578:48;;;;;-1:-1:-1;;;;;3578:48:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;3662:10;:17;;-1:-1:-1;3662:17:12;3786:11;:28;;;;;;;;;-1:-1:-1;3839:1:12;3832:8;;3824:70;;;;;-1:-1:-1;;;;;3824:70:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3931:1;3929:3;;3924:197;3936:14;3934:1;:16;3924:197;;;3987:10;:13;;3998:1;;3987:13;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3987:13:12;4033:16;;;3987:13;4033:16;;;;;;;;3987:13;;-1:-1:-1;4033:26:12;;4054:4;4033:26;:20;:26;:::i;:::-;-1:-1:-1;;;;;4014:16:12;;;;;;:9;:16;;;;;:45;4088:12;;:22;;4105:4;4088:22;:16;:22;:::i;:::-;4073:12;:37;3952:3;;;;;3924:197;;;4163:12;;4146:4;4138:21;:37;;4131:45;;;;3463:721;;;;;:::o;1400:27::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1400:27:12;;-1:-1:-1;1400:27:12;:::o;223:109:7:-;193:5;;-1:-1:-1;;;;;193:5:7;179:10;:19;171:28;;;;;;309:5;:16;;-1:-1:-1;;309:16:7;-1:-1:-1;;;;;309:16:7;;;;;;;;;;223:109::o;1518:295:12:-;1598:7;;1641:127;1652:10;:17;1650:19;;1641:127;;;1711:4;-1:-1:-1;;;;;1694:21:12;:10;1705:1;1694:13;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1694:13:12;:21;1690:68;;;1742:1;1735:8;;;;1690:68;1671:3;;1641:127;;;1777:29;;;-1:-1:-1;;;;;1777:29:12;;;;;;;;;;;;;;;;;;;;;;;;;;;1518:295;;;;;:::o;605:110:9:-;663:7;685:6;;;;678:14;;;;-1:-1:-1;705:5:9;;;605:110::o;719:129::-;777:7;804:5;;;822:6;;;;815:14;;;;842:1;719:129;-1:-1:-1;;;719:129:9:o;982:3680:12:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o",
  "source": "pragma solidity ^0.4.25;\n\nimport './Owned.sol';\nimport './RealitioSafeMath256.sol';\n\n/*\nThis contract allows you to split ETH between up to 100 receivers.\n\nEach receiver can withdraw their own share of the funds without the cooperation of the others. \nThey can also replace their own address with a different one.\n\nThe receivers can be added by the `owner` contract, for example a multisig wallet. \nThe same receiver can be added multiple times if you want an unequal distribution.\nTransfer ownership to 0x0 if you want to lock the receiver list and prevent further changes.\n\nThis contract receives ETH normally, without using extra gas that could cause incoming payments to fail.\nAnyone can then call allocate() to assign any unassigned balance to the receivers.\nThe `allocate()` call may leave a small amount of ETH unassigned due to rounding. This can be allocated in a future call.\n\nOnce funds are allocated, each party can withdraw their own funds by calling `withdraw()`.\n*/\n\ncontract SplitterWallet is Owned {\n\n    // We sometimes loop over our recipient list, so set a maximum to avoid gas exhaustion\n    uint256 constant MAX_RECIPIENTS = 100;\n\n    using RealitioSafeMath256 for uint256;\n\n    mapping(address => uint256) public balanceOf;\n    \n    // Sum of all balances in balanceOf\n    uint256 public balanceTotal; \n\n    // List of recipients. May contain duplicates to get paid twice.\n    address[] public recipients;\n\n    event LogWithdraw(\n        address indexed user,\n        uint256 amount\n    );\n\n    function _firstRecipientIndex(address addr) \n        internal\n    view returns (uint256) \n    {\n        uint256 i;\n        for(i=0; i<recipients.length; i++) {\n            if (recipients[i] == addr) {\n                return i;\n            }\n        }\n        revert(\"Recipient not found\");\n    }\n\n    /// @notice Add a recipient to the list\n    /// @param addr The address to add\n    /// @dev Doesn't check for duplicates, it's OK to add the same recipient twice for an unequal distribution\n    function addRecipient(address addr) \n        onlyOwner\n    external {\n        require(recipients.length < MAX_RECIPIENTS, \"Too many recipients\");\n        recipients.push(addr);\n    }\n\n    /// @notice Remove a recipient from the list\n    /// @param old_addr The address to remove\n    /// @dev If your address shows up more than once, removes the first occurance\n    function removeRecipient(address old_addr) \n        onlyOwner\n    external {\n\n        uint256 idx = _firstRecipientIndex(old_addr);\n        assert(recipients[idx] == old_addr);\n\n        // If you're not deleting the last item, copy the last item over to the thing you're deleting\n        uint256 last_idx = recipients.length - 1;\n        if (idx != last_idx) {\n            recipients[idx] = recipients[last_idx];\n        }\n\n        recipients.length--;\n    }\n\n    /// @notice Replace your own address with a different one\n    /// @param new_addr The new address\n    /// @dev If your address shows up more than once, replaces the first occurance\n    function replaceSelf(address new_addr) \n    external {\n        uint256 idx = _firstRecipientIndex(msg.sender);\n        assert(recipients[idx] == msg.sender);\n        recipients[idx] = new_addr;\n    }\n\n    /// @notice Allocate any unallocated funds from the contract balance\n    /// @dev Any time the contract gets funds, they will appear as unallocated\n    /// @dev Assign them to the current recipients, and mark them as allocated\n    function allocate()\n    external {\n\n        uint256 unallocated = address(this).balance.sub(balanceTotal);\n        require(unallocated > 0, \"No funds to allocate\");\n\n        uint256 num_recipients = recipients.length;\n\n        // NB Rounding may leave some funds unallocated, we can claim them later\n        uint256 each = unallocated / num_recipients;\n        require(each > 0, \"No money left to be allocated after rounding down\");\n\n        uint256 i;\n        for (i=0; i<num_recipients; i++) {\n            address recip = recipients[i];\n            balanceOf[recip] = balanceOf[recip].add(each);\n            balanceTotal = balanceTotal.add(each);\n        }\n\n        assert(address(this).balance >= balanceTotal);\n\n    }\n\n    /// @notice Withdraw the address balance to the owner account\n    function withdraw() \n    external {\n\n        uint256 bal = balanceOf[msg.sender];\n        require(bal > 0, \"Balance must be positive\");\n\n        balanceTotal = balanceTotal.sub(bal);\n        balanceOf[msg.sender] = 0;\n        msg.sender.transfer(bal);\n\n        emit LogWithdraw(msg.sender, bal);\n\n        assert(address(this).balance >= balanceTotal);\n\n    }\n\n    function()\n    external payable {\n    }\n\n}\n",
  "sourcePath": "/home/ed/working/realitio-contracts-newtest/truffle/contracts/SplitterWallet.sol",
  "ast": {
    "absolutePath": "/home/ed/working/realitio-contracts-newtest/truffle/contracts/SplitterWallet.sol",
    "exportedSymbols": {
      "SplitterWallet": [
        3347
      ]
    },
    "id": 3348,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 3041,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:12"
      },
      {
        "absolutePath": "/home/ed/working/realitio-contracts-newtest/truffle/contracts/Owned.sol",
        "file": "./Owned.sol",
        "id": 3042,
        "nodeType": "ImportDirective",
        "scope": 3348,
        "sourceUnit": 848,
        "src": "26:21:12",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/ed/working/realitio-contracts-newtest/truffle/contracts/RealitioSafeMath256.sol",
        "file": "./RealitioSafeMath256.sol",
        "id": 3043,
        "nodeType": "ImportDirective",
        "scope": 3348,
        "sourceUnit": 2964,
        "src": "48:35:12",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 3044,
              "name": "Owned",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 847,
              "src": "1009:5:12",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Owned_$847",
                "typeString": "contract Owned"
              }
            },
            "id": 3045,
            "nodeType": "InheritanceSpecifier",
            "src": "1009:5:12"
          }
        ],
        "contractDependencies": [
          847
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 3347,
        "linearizedBaseContracts": [
          3347,
          847
        ],
        "name": "SplitterWallet",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "id": 3048,
            "name": "MAX_RECIPIENTS",
            "nodeType": "VariableDeclaration",
            "scope": 3347,
            "src": "1113:37:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 3046,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1113:7:12",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "313030",
              "id": 3047,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1147:3:12",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_100_by_1",
                "typeString": "int_const 100"
              },
              "value": "100"
            },
            "visibility": "internal"
          },
          {
            "id": 3051,
            "libraryName": {
              "contractScope": null,
              "id": 3049,
              "name": "RealitioSafeMath256",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2963,
              "src": "1163:19:12",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_RealitioSafeMath256_$2963",
                "typeString": "library RealitioSafeMath256"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "1157:38:12",
            "typeName": {
              "id": 3050,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1187:7:12",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "constant": false,
            "id": 3055,
            "name": "balanceOf",
            "nodeType": "VariableDeclaration",
            "scope": 3347,
            "src": "1201:44:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
              "typeString": "mapping(address => uint256)"
            },
            "typeName": {
              "id": 3054,
              "keyType": {
                "id": 3052,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "1209:7:12",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "1201:27:12",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
              },
              "valueType": {
                "id": 3053,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1220:7:12",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3057,
            "name": "balanceTotal",
            "nodeType": "VariableDeclaration",
            "scope": 3347,
            "src": "1296:27:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 3056,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1296:7:12",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3060,
            "name": "recipients",
            "nodeType": "VariableDeclaration",
            "scope": 3347,
            "src": "1400:27:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_address_$dyn_storage",
              "typeString": "address[]"
            },
            "typeName": {
              "baseType": {
                "id": 3058,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "1400:7:12",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "id": 3059,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "1400:9:12",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                "typeString": "address[]"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 3066,
            "name": "LogWithdraw",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3065,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3062,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 3066,
                  "src": "1461:20:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3061,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1461:7:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3064,
                  "indexed": false,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 3066,
                  "src": "1491:14:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3063,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1491:7:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1451:60:12"
            },
            "src": "1434:78:12"
          },
          {
            "body": {
              "id": 3102,
              "nodeType": "Block",
              "src": "1612:201:12",
              "statements": [
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3074,
                      "name": "i",
                      "nodeType": "VariableDeclaration",
                      "scope": 3103,
                      "src": "1622:9:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3073,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1622:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3075,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1622:9:12"
                },
                {
                  "body": {
                    "id": 3096,
                    "nodeType": "Block",
                    "src": "1676:92:12",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 3091,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3087,
                              "name": "recipients",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3060,
                              "src": "1694:10:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                "typeString": "address[] storage ref"
                              }
                            },
                            "id": 3089,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3088,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3074,
                              "src": "1705:1:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "1694:13:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 3090,
                            "name": "addr",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3068,
                            "src": "1711:4:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "1694:21:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 3095,
                        "nodeType": "IfStatement",
                        "src": "1690:68:12",
                        "trueBody": {
                          "id": 3094,
                          "nodeType": "Block",
                          "src": "1717:41:12",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 3092,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3074,
                                "src": "1742:1:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "functionReturnParameters": 3072,
                              "id": 3093,
                              "nodeType": "Return",
                              "src": "1735:8:12"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3083,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3080,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3074,
                      "src": "1650:1:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3081,
                        "name": "recipients",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3060,
                        "src": "1652:10:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 3082,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1652:17:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1650:19:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3097,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3078,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "id": 3076,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3074,
                        "src": "1645:1:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 3077,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1647:1:12",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "1645:3:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3079,
                    "nodeType": "ExpressionStatement",
                    "src": "1645:3:12"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3085,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "1671:3:12",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 3084,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3074,
                        "src": "1671:1:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3086,
                    "nodeType": "ExpressionStatement",
                    "src": "1671:3:12"
                  },
                  "nodeType": "ForStatement",
                  "src": "1641:127:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "526563697069656e74206e6f7420666f756e64",
                        "id": 3099,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1784:21:12",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_93db40798ebf892ca23a5d6cec2fe2152d9e58f4b4cfd72807d0aa4100f88354",
                          "typeString": "literal_string \"Recipient not found\""
                        },
                        "value": "Recipient not found"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_93db40798ebf892ca23a5d6cec2fe2152d9e58f4b4cfd72807d0aa4100f88354",
                          "typeString": "literal_string \"Recipient not found\""
                        }
                      ],
                      "id": 3098,
                      "name": "revert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3388,
                        3389
                      ],
                      "referencedDeclaration": 3389,
                      "src": "1777:6:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory) pure"
                      }
                    },
                    "id": 3100,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1777:29:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3101,
                  "nodeType": "ExpressionStatement",
                  "src": "1777:29:12"
                }
              ]
            },
            "documentation": null,
            "id": 3103,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "_firstRecipientIndex",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3069,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3068,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 3103,
                  "src": "1548:12:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3067,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1548:7:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1547:14:12"
            },
            "payable": false,
            "returnParameters": {
              "id": 3072,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3071,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3103,
                  "src": "1598:7:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3070,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1598:7:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1597:9:12"
            },
            "scope": 3347,
            "src": "1518:295:12",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3124,
              "nodeType": "Block",
              "src": "2081:114:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3114,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3111,
                            "name": "recipients",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3060,
                            "src": "2099:10:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                              "typeString": "address[] storage ref"
                            }
                          },
                          "id": 3112,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "2099:17:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3113,
                          "name": "MAX_RECIPIENTS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3048,
                          "src": "2119:14:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "2099:34:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "546f6f206d616e7920726563697069656e7473",
                        "id": 3115,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2135:21:12",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_45a01ff2d08f54e7df8aa7ce797bcd893de9361372881bed847a4facf2f85f66",
                          "typeString": "literal_string \"Too many recipients\""
                        },
                        "value": "Too many recipients"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_45a01ff2d08f54e7df8aa7ce797bcd893de9361372881bed847a4facf2f85f66",
                          "typeString": "literal_string \"Too many recipients\""
                        }
                      ],
                      "id": 3110,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3386,
                        3387
                      ],
                      "referencedDeclaration": 3387,
                      "src": "2091:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3116,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2091:66:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3117,
                  "nodeType": "ExpressionStatement",
                  "src": "2091:66:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3121,
                        "name": "addr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3105,
                        "src": "2183:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3118,
                        "name": "recipients",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3060,
                        "src": "2167:10:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 3120,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2167:15:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$",
                        "typeString": "function (address) returns (uint256)"
                      }
                    },
                    "id": 3122,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2167:21:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3123,
                  "nodeType": "ExpressionStatement",
                  "src": "2167:21:12"
                }
              ]
            },
            "documentation": "@notice Add a recipient to the list\n @param addr The address to add\n @dev Doesn't check for duplicates, it's OK to add the same recipient twice for an unequal distribution",
            "id": 3125,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 3108,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3107,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 834,
                  "src": "2058:9:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2058:9:12"
              }
            ],
            "name": "addRecipient",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3106,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3105,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 3125,
                  "src": "2035:12:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3104,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2035:7:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2034:14:12"
            },
            "payable": false,
            "returnParameters": {
              "id": 3109,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2081:0:12"
            },
            "scope": 3347,
            "src": "2013:182:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3171,
              "nodeType": "Block",
              "src": "2453:383:12",
              "statements": [
                {
                  "assignments": [
                    3133
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3133,
                      "name": "idx",
                      "nodeType": "VariableDeclaration",
                      "scope": 3172,
                      "src": "2464:11:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3132,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2464:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3137,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3135,
                        "name": "old_addr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3127,
                        "src": "2499:8:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 3134,
                      "name": "_firstRecipientIndex",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3103,
                      "src": "2478:20:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
                        "typeString": "function (address) view returns (uint256)"
                      }
                    },
                    "id": 3136,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2478:30:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2464:44:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 3143,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3139,
                            "name": "recipients",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3060,
                            "src": "2525:10:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                              "typeString": "address[] storage ref"
                            }
                          },
                          "id": 3141,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3140,
                            "name": "idx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3133,
                            "src": "2536:3:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2525:15:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3142,
                          "name": "old_addr",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3127,
                          "src": "2544:8:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "2525:27:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3138,
                      "name": "assert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3372,
                      "src": "2518:6:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3144,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2518:35:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3145,
                  "nodeType": "ExpressionStatement",
                  "src": "2518:35:12"
                },
                {
                  "assignments": [
                    3147
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3147,
                      "name": "last_idx",
                      "nodeType": "VariableDeclaration",
                      "scope": 3172,
                      "src": "2666:16:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3146,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2666:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3152,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3151,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3148,
                        "name": "recipients",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3060,
                        "src": "2685:10:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 3149,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2685:17:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "-",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 3150,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2705:1:12",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "2685:21:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2666:40:12"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3155,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3153,
                      "name": "idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3133,
                      "src": "2720:3:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 3154,
                      "name": "last_idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3147,
                      "src": "2727:8:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2720:15:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3165,
                  "nodeType": "IfStatement",
                  "src": "2716:84:12",
                  "trueBody": {
                    "id": 3164,
                    "nodeType": "Block",
                    "src": "2737:63:12",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3162,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3156,
                              "name": "recipients",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3060,
                              "src": "2751:10:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                "typeString": "address[] storage ref"
                              }
                            },
                            "id": 3158,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3157,
                              "name": "idx",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3133,
                              "src": "2762:3:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "2751:15:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3159,
                              "name": "recipients",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3060,
                              "src": "2769:10:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                "typeString": "address[] storage ref"
                              }
                            },
                            "id": 3161,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3160,
                              "name": "last_idx",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3147,
                              "src": "2780:8:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2769:20:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "2751:38:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 3163,
                        "nodeType": "ExpressionStatement",
                        "src": "2751:38:12"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3169,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "--",
                    "prefix": false,
                    "src": "2810:19:12",
                    "subExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3166,
                        "name": "recipients",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3060,
                        "src": "2810:10:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 3168,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2810:17:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3170,
                  "nodeType": "ExpressionStatement",
                  "src": "2810:19:12"
                }
              ]
            },
            "documentation": "@notice Remove a recipient from the list\n @param old_addr The address to remove\n @dev If your address shows up more than once, removes the first occurance",
            "id": 3172,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 3130,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3129,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 834,
                  "src": "2430:9:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2430:9:12"
              }
            ],
            "name": "removeRecipient",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3128,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3127,
                  "name": "old_addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 3172,
                  "src": "2403:16:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3126,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2403:7:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2402:18:12"
            },
            "payable": false,
            "returnParameters": {
              "id": 3131,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2453:0:12"
            },
            "scope": 3347,
            "src": "2378:458:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3199,
              "nodeType": "Block",
              "src": "3080:146:12",
              "statements": [
                {
                  "assignments": [
                    3178
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3178,
                      "name": "idx",
                      "nodeType": "VariableDeclaration",
                      "scope": 3200,
                      "src": "3090:11:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3177,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3090:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3183,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3180,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3383,
                          "src": "3125:3:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3181,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "3125:10:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 3179,
                      "name": "_firstRecipientIndex",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3103,
                      "src": "3104:20:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
                        "typeString": "function (address) view returns (uint256)"
                      }
                    },
                    "id": 3182,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3104:32:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3090:46:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 3190,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3185,
                            "name": "recipients",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3060,
                            "src": "3153:10:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                              "typeString": "address[] storage ref"
                            }
                          },
                          "id": 3187,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3186,
                            "name": "idx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3178,
                            "src": "3164:3:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3153:15:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3188,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3383,
                            "src": "3172:3:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 3189,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3172:10:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "3153:29:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3184,
                      "name": "assert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3372,
                      "src": "3146:6:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3191,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3146:37:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3192,
                  "nodeType": "ExpressionStatement",
                  "src": "3146:37:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3197,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3193,
                        "name": "recipients",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3060,
                        "src": "3193:10:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 3195,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3194,
                        "name": "idx",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3178,
                        "src": "3204:3:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3193:15:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3196,
                      "name": "new_addr",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3174,
                      "src": "3211:8:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "3193:26:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 3198,
                  "nodeType": "ExpressionStatement",
                  "src": "3193:26:12"
                }
              ]
            },
            "documentation": "@notice Replace your own address with a different one\n @param new_addr The new address\n @dev If your address shows up more than once, replaces the first occurance",
            "id": 3200,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "replaceSelf",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3175,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3174,
                  "name": "new_addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 3200,
                  "src": "3048:16:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3173,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3048:7:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3047:18:12"
            },
            "payable": false,
            "returnParameters": {
              "id": 3176,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3080:0:12"
            },
            "scope": 3347,
            "src": "3027:199:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3286,
              "nodeType": "Block",
              "src": "3496:688:12",
              "statements": [
                {
                  "assignments": [
                    3204
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3204,
                      "name": "unallocated",
                      "nodeType": "VariableDeclaration",
                      "scope": 3287,
                      "src": "3507:19:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3203,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3507:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3212,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3210,
                        "name": "balanceTotal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3057,
                        "src": "3555:12:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3206,
                              "name": "this",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3420,
                              "src": "3537:4:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_SplitterWallet_$3347",
                                "typeString": "contract SplitterWallet"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_SplitterWallet_$3347",
                                "typeString": "contract SplitterWallet"
                              }
                            ],
                            "id": 3205,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "3529:7:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 3207,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3529:13:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 3208,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "3529:21:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 3209,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sub",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2938,
                      "src": "3529:25:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 3211,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3529:39:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3507:61:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3216,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3214,
                          "name": "unallocated",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3204,
                          "src": "3586:11:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3215,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3600:1:12",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "3586:15:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f2066756e647320746f20616c6c6f63617465",
                        "id": 3217,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3603:22:12",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a4660e151b5f885c8671e8cfd42d7171849b69a5056c2980dc553caaac562aac",
                          "typeString": "literal_string \"No funds to allocate\""
                        },
                        "value": "No funds to allocate"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a4660e151b5f885c8671e8cfd42d7171849b69a5056c2980dc553caaac562aac",
                          "typeString": "literal_string \"No funds to allocate\""
                        }
                      ],
                      "id": 3213,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3386,
                        3387
                      ],
                      "referencedDeclaration": 3387,
                      "src": "3578:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3218,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3578:48:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3219,
                  "nodeType": "ExpressionStatement",
                  "src": "3578:48:12"
                },
                {
                  "assignments": [
                    3221
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3221,
                      "name": "num_recipients",
                      "nodeType": "VariableDeclaration",
                      "scope": 3287,
                      "src": "3637:22:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3220,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3637:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3224,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3222,
                      "name": "recipients",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3060,
                      "src": "3662:10:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                        "typeString": "address[] storage ref"
                      }
                    },
                    "id": 3223,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "3662:17:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3637:42:12"
                },
                {
                  "assignments": [
                    3226
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3226,
                      "name": "each",
                      "nodeType": "VariableDeclaration",
                      "scope": 3287,
                      "src": "3771:12:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3225,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3771:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3230,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3229,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3227,
                      "name": "unallocated",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3204,
                      "src": "3786:11:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 3228,
                      "name": "num_recipients",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3221,
                      "src": "3800:14:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3786:28:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3771:43:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3234,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3232,
                          "name": "each",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3226,
                          "src": "3832:4:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3233,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3839:1:12",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "3832:8:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f206d6f6e6579206c65667420746f20626520616c6c6f636174656420616674657220726f756e64696e6720646f776e",
                        "id": 3235,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3842:51:12",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b0335c03f38cd29b16d1807f5716f6bfc7a7c7c677cba03cee2fd55ad39e1610",
                          "typeString": "literal_string \"No money left to be allocated after rounding down\""
                        },
                        "value": "No money left to be allocated after rounding down"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b0335c03f38cd29b16d1807f5716f6bfc7a7c7c677cba03cee2fd55ad39e1610",
                          "typeString": "literal_string \"No money left to be allocated after rounding down\""
                        }
                      ],
                      "id": 3231,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3386,
                        3387
                      ],
                      "referencedDeclaration": 3387,
                      "src": "3824:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3236,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3824:70:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3237,
                  "nodeType": "ExpressionStatement",
                  "src": "3824:70:12"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3239,
                      "name": "i",
                      "nodeType": "VariableDeclaration",
                      "scope": 3287,
                      "src": "3905:9:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3238,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3905:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3240,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3905:9:12"
                },
                {
                  "body": {
                    "id": 3275,
                    "nodeType": "Block",
                    "src": "3957:164:12",
                    "statements": [
                      {
                        "assignments": [
                          3252
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 3252,
                            "name": "recip",
                            "nodeType": "VariableDeclaration",
                            "scope": 3287,
                            "src": "3971:13:12",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "typeName": {
                              "id": 3251,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "3971:7:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 3256,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3253,
                            "name": "recipients",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3060,
                            "src": "3987:10:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                              "typeString": "address[] storage ref"
                            }
                          },
                          "id": 3255,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3254,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3239,
                            "src": "3998:1:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3987:13:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "3971:29:12"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3266,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3257,
                              "name": "balanceOf",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3055,
                              "src": "4014:9:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 3259,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3258,
                              "name": "recip",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3252,
                              "src": "4024:5:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "4014:16:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3264,
                                "name": "each",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3226,
                                "src": "4054:4:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 3260,
                                  "name": "balanceOf",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3055,
                                  "src": "4033:9:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                    "typeString": "mapping(address => uint256)"
                                  }
                                },
                                "id": 3262,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 3261,
                                  "name": "recip",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3252,
                                  "src": "4043:5:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "4033:16:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 3263,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "add",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2962,
                              "src": "4033:20:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 3265,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4033:26:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "4014:45:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3267,
                        "nodeType": "ExpressionStatement",
                        "src": "4014:45:12"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3273,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 3268,
                            "name": "balanceTotal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3057,
                            "src": "4073:12:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3271,
                                "name": "each",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3226,
                                "src": "4105:4:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 3269,
                                "name": "balanceTotal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3057,
                                "src": "4088:12:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 3270,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "add",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2962,
                              "src": "4088:16:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 3272,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4088:22:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "4073:37:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3274,
                        "nodeType": "ExpressionStatement",
                        "src": "4073:37:12"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3247,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3245,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3239,
                      "src": "3934:1:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 3246,
                      "name": "num_recipients",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3221,
                      "src": "3936:14:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3934:16:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3276,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3243,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "id": 3241,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3239,
                        "src": "3929:1:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 3242,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3931:1:12",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "3929:3:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3244,
                    "nodeType": "ExpressionStatement",
                    "src": "3929:3:12"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3249,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "3952:3:12",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 3248,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3239,
                        "src": "3952:1:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3250,
                    "nodeType": "ExpressionStatement",
                    "src": "3952:3:12"
                  },
                  "nodeType": "ForStatement",
                  "src": "3924:197:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3283,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3279,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3420,
                                "src": "4146:4:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_SplitterWallet_$3347",
                                  "typeString": "contract SplitterWallet"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_SplitterWallet_$3347",
                                  "typeString": "contract SplitterWallet"
                                }
                              ],
                              "id": 3278,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4138:7:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 3280,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4138:13:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 3281,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "balance",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4138:21:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3282,
                          "name": "balanceTotal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3057,
                          "src": "4163:12:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "4138:37:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3277,
                      "name": "assert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3372,
                      "src": "4131:6:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3284,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4131:45:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3285,
                  "nodeType": "ExpressionStatement",
                  "src": "4131:45:12"
                }
              ]
            },
            "documentation": "@notice Allocate any unallocated funds from the contract balance\n @dev Any time the contract gets funds, they will appear as unallocated\n @dev Assign them to the current recipients, and mark them as allocated",
            "id": 3287,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "allocate",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3201,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3480:2:12"
            },
            "payable": false,
            "returnParameters": {
              "id": 3202,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3496:0:12"
            },
            "scope": 3347,
            "src": "3463:721:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3341,
              "nodeType": "Block",
              "src": "4290:324:12",
              "statements": [
                {
                  "assignments": [
                    3291
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3291,
                      "name": "bal",
                      "nodeType": "VariableDeclaration",
                      "scope": 3342,
                      "src": "4301:11:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3290,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4301:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3296,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3292,
                      "name": "balanceOf",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3055,
                      "src": "4315:9:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                        "typeString": "mapping(address => uint256)"
                      }
                    },
                    "id": 3295,
                    "indexExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3293,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3383,
                        "src": "4325:3:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 3294,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "4325:10:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4315:21:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4301:35:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3300,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3298,
                          "name": "bal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3291,
                          "src": "4354:3:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3299,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4360:1:12",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "4354:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "42616c616e6365206d75737420626520706f736974697665",
                        "id": 3301,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4363:26:12",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_340afe6947da449d67e81dc123ad935e96abad6e36a90276f86359ba7bdeb815",
                          "typeString": "literal_string \"Balance must be positive\""
                        },
                        "value": "Balance must be positive"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_340afe6947da449d67e81dc123ad935e96abad6e36a90276f86359ba7bdeb815",
                          "typeString": "literal_string \"Balance must be positive\""
                        }
                      ],
                      "id": 3297,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3386,
                        3387
                      ],
                      "referencedDeclaration": 3387,
                      "src": "4346:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3302,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4346:44:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3303,
                  "nodeType": "ExpressionStatement",
                  "src": "4346:44:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3309,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3304,
                      "name": "balanceTotal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3057,
                      "src": "4401:12:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 3307,
                          "name": "bal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3291,
                          "src": "4433:3:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 3305,
                          "name": "balanceTotal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3057,
                          "src": "4416:12:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3306,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2938,
                        "src": "4416:16:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 3308,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4416:21:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4401:36:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3310,
                  "nodeType": "ExpressionStatement",
                  "src": "4401:36:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3316,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3311,
                        "name": "balanceOf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3055,
                        "src": "4447:9:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 3314,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3312,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3383,
                          "src": "4457:3:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3313,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4457:10:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4447:21:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3315,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4471:1:12",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "4447:25:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3317,
                  "nodeType": "ExpressionStatement",
                  "src": "4447:25:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3323,
                        "name": "bal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3291,
                        "src": "4502:3:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3318,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3383,
                          "src": "4482:3:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3321,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4482:10:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 3322,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "4482:19:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 3324,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4482:24:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3325,
                  "nodeType": "ExpressionStatement",
                  "src": "4482:24:12"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3327,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3383,
                          "src": "4534:3:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3328,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4534:10:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3329,
                        "name": "bal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3291,
                        "src": "4546:3:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3326,
                      "name": "LogWithdraw",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3066,
                      "src": "4522:11:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 3330,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4522:28:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3331,
                  "nodeType": "EmitStatement",
                  "src": "4517:33:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3338,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3334,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3420,
                                "src": "4576:4:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_SplitterWallet_$3347",
                                  "typeString": "contract SplitterWallet"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_SplitterWallet_$3347",
                                  "typeString": "contract SplitterWallet"
                                }
                              ],
                              "id": 3333,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4568:7:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 3335,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4568:13:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 3336,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "balance",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4568:21:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3337,
                          "name": "balanceTotal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3057,
                          "src": "4593:12:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "4568:37:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3332,
                      "name": "assert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3372,
                      "src": "4561:6:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3339,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4561:45:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3340,
                  "nodeType": "ExpressionStatement",
                  "src": "4561:45:12"
                }
              ]
            },
            "documentation": "@notice Withdraw the address balance to the owner account",
            "id": 3342,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "withdraw",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3288,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4273:2:12"
            },
            "payable": false,
            "returnParameters": {
              "id": 3289,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4290:0:12"
            },
            "scope": 3347,
            "src": "4256:358:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3345,
              "nodeType": "Block",
              "src": "4652:7:12",
              "statements": []
            },
            "documentation": null,
            "id": 3346,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3343,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4628:2:12"
            },
            "payable": true,
            "returnParameters": {
              "id": 3344,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4652:0:12"
            },
            "scope": 3347,
            "src": "4620:39:12",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 3348,
        "src": "982:3680:12"
      }
    ],
    "src": "0:4663:12"
  },
  "legacyAST": {
    "absolutePath": "/home/ed/working/realitio-contracts-newtest/truffle/contracts/SplitterWallet.sol",
    "exportedSymbols": {
      "SplitterWallet": [
        3347
      ]
    },
    "id": 3348,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 3041,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:12"
      },
      {
        "absolutePath": "/home/ed/working/realitio-contracts-newtest/truffle/contracts/Owned.sol",
        "file": "./Owned.sol",
        "id": 3042,
        "nodeType": "ImportDirective",
        "scope": 3348,
        "sourceUnit": 848,
        "src": "26:21:12",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/ed/working/realitio-contracts-newtest/truffle/contracts/RealitioSafeMath256.sol",
        "file": "./RealitioSafeMath256.sol",
        "id": 3043,
        "nodeType": "ImportDirective",
        "scope": 3348,
        "sourceUnit": 2964,
        "src": "48:35:12",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 3044,
              "name": "Owned",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 847,
              "src": "1009:5:12",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Owned_$847",
                "typeString": "contract Owned"
              }
            },
            "id": 3045,
            "nodeType": "InheritanceSpecifier",
            "src": "1009:5:12"
          }
        ],
        "contractDependencies": [
          847
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 3347,
        "linearizedBaseContracts": [
          3347,
          847
        ],
        "name": "SplitterWallet",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "id": 3048,
            "name": "MAX_RECIPIENTS",
            "nodeType": "VariableDeclaration",
            "scope": 3347,
            "src": "1113:37:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 3046,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1113:7:12",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "313030",
              "id": 3047,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1147:3:12",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_100_by_1",
                "typeString": "int_const 100"
              },
              "value": "100"
            },
            "visibility": "internal"
          },
          {
            "id": 3051,
            "libraryName": {
              "contractScope": null,
              "id": 3049,
              "name": "RealitioSafeMath256",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2963,
              "src": "1163:19:12",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_RealitioSafeMath256_$2963",
                "typeString": "library RealitioSafeMath256"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "1157:38:12",
            "typeName": {
              "id": 3050,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1187:7:12",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "constant": false,
            "id": 3055,
            "name": "balanceOf",
            "nodeType": "VariableDeclaration",
            "scope": 3347,
            "src": "1201:44:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
              "typeString": "mapping(address => uint256)"
            },
            "typeName": {
              "id": 3054,
              "keyType": {
                "id": 3052,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "1209:7:12",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "1201:27:12",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
              },
              "valueType": {
                "id": 3053,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1220:7:12",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3057,
            "name": "balanceTotal",
            "nodeType": "VariableDeclaration",
            "scope": 3347,
            "src": "1296:27:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 3056,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1296:7:12",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3060,
            "name": "recipients",
            "nodeType": "VariableDeclaration",
            "scope": 3347,
            "src": "1400:27:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_address_$dyn_storage",
              "typeString": "address[]"
            },
            "typeName": {
              "baseType": {
                "id": 3058,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "1400:7:12",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "id": 3059,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "1400:9:12",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                "typeString": "address[]"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 3066,
            "name": "LogWithdraw",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3065,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3062,
                  "indexed": true,
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "scope": 3066,
                  "src": "1461:20:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3061,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1461:7:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3064,
                  "indexed": false,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 3066,
                  "src": "1491:14:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3063,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1491:7:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1451:60:12"
            },
            "src": "1434:78:12"
          },
          {
            "body": {
              "id": 3102,
              "nodeType": "Block",
              "src": "1612:201:12",
              "statements": [
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3074,
                      "name": "i",
                      "nodeType": "VariableDeclaration",
                      "scope": 3103,
                      "src": "1622:9:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3073,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1622:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3075,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1622:9:12"
                },
                {
                  "body": {
                    "id": 3096,
                    "nodeType": "Block",
                    "src": "1676:92:12",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 3091,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3087,
                              "name": "recipients",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3060,
                              "src": "1694:10:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                "typeString": "address[] storage ref"
                              }
                            },
                            "id": 3089,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3088,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3074,
                              "src": "1705:1:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "1694:13:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 3090,
                            "name": "addr",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3068,
                            "src": "1711:4:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "1694:21:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 3095,
                        "nodeType": "IfStatement",
                        "src": "1690:68:12",
                        "trueBody": {
                          "id": 3094,
                          "nodeType": "Block",
                          "src": "1717:41:12",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 3092,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3074,
                                "src": "1742:1:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "functionReturnParameters": 3072,
                              "id": 3093,
                              "nodeType": "Return",
                              "src": "1735:8:12"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3083,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3080,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3074,
                      "src": "1650:1:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3081,
                        "name": "recipients",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3060,
                        "src": "1652:10:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 3082,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1652:17:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1650:19:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3097,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3078,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "id": 3076,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3074,
                        "src": "1645:1:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 3077,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1647:1:12",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "1645:3:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3079,
                    "nodeType": "ExpressionStatement",
                    "src": "1645:3:12"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3085,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "1671:3:12",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 3084,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3074,
                        "src": "1671:1:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3086,
                    "nodeType": "ExpressionStatement",
                    "src": "1671:3:12"
                  },
                  "nodeType": "ForStatement",
                  "src": "1641:127:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "526563697069656e74206e6f7420666f756e64",
                        "id": 3099,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1784:21:12",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_93db40798ebf892ca23a5d6cec2fe2152d9e58f4b4cfd72807d0aa4100f88354",
                          "typeString": "literal_string \"Recipient not found\""
                        },
                        "value": "Recipient not found"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_93db40798ebf892ca23a5d6cec2fe2152d9e58f4b4cfd72807d0aa4100f88354",
                          "typeString": "literal_string \"Recipient not found\""
                        }
                      ],
                      "id": 3098,
                      "name": "revert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3388,
                        3389
                      ],
                      "referencedDeclaration": 3389,
                      "src": "1777:6:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory) pure"
                      }
                    },
                    "id": 3100,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1777:29:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3101,
                  "nodeType": "ExpressionStatement",
                  "src": "1777:29:12"
                }
              ]
            },
            "documentation": null,
            "id": 3103,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "_firstRecipientIndex",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3069,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3068,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 3103,
                  "src": "1548:12:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3067,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1548:7:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1547:14:12"
            },
            "payable": false,
            "returnParameters": {
              "id": 3072,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3071,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3103,
                  "src": "1598:7:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3070,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1598:7:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1597:9:12"
            },
            "scope": 3347,
            "src": "1518:295:12",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3124,
              "nodeType": "Block",
              "src": "2081:114:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3114,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3111,
                            "name": "recipients",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3060,
                            "src": "2099:10:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                              "typeString": "address[] storage ref"
                            }
                          },
                          "id": 3112,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "2099:17:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3113,
                          "name": "MAX_RECIPIENTS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3048,
                          "src": "2119:14:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "2099:34:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "546f6f206d616e7920726563697069656e7473",
                        "id": 3115,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2135:21:12",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_45a01ff2d08f54e7df8aa7ce797bcd893de9361372881bed847a4facf2f85f66",
                          "typeString": "literal_string \"Too many recipients\""
                        },
                        "value": "Too many recipients"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_45a01ff2d08f54e7df8aa7ce797bcd893de9361372881bed847a4facf2f85f66",
                          "typeString": "literal_string \"Too many recipients\""
                        }
                      ],
                      "id": 3110,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3386,
                        3387
                      ],
                      "referencedDeclaration": 3387,
                      "src": "2091:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3116,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2091:66:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3117,
                  "nodeType": "ExpressionStatement",
                  "src": "2091:66:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3121,
                        "name": "addr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3105,
                        "src": "2183:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3118,
                        "name": "recipients",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3060,
                        "src": "2167:10:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 3120,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2167:15:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$",
                        "typeString": "function (address) returns (uint256)"
                      }
                    },
                    "id": 3122,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2167:21:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3123,
                  "nodeType": "ExpressionStatement",
                  "src": "2167:21:12"
                }
              ]
            },
            "documentation": "@notice Add a recipient to the list\n @param addr The address to add\n @dev Doesn't check for duplicates, it's OK to add the same recipient twice for an unequal distribution",
            "id": 3125,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 3108,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3107,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 834,
                  "src": "2058:9:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2058:9:12"
              }
            ],
            "name": "addRecipient",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3106,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3105,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 3125,
                  "src": "2035:12:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3104,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2035:7:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2034:14:12"
            },
            "payable": false,
            "returnParameters": {
              "id": 3109,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2081:0:12"
            },
            "scope": 3347,
            "src": "2013:182:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3171,
              "nodeType": "Block",
              "src": "2453:383:12",
              "statements": [
                {
                  "assignments": [
                    3133
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3133,
                      "name": "idx",
                      "nodeType": "VariableDeclaration",
                      "scope": 3172,
                      "src": "2464:11:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3132,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2464:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3137,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3135,
                        "name": "old_addr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3127,
                        "src": "2499:8:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 3134,
                      "name": "_firstRecipientIndex",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3103,
                      "src": "2478:20:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
                        "typeString": "function (address) view returns (uint256)"
                      }
                    },
                    "id": 3136,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2478:30:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2464:44:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 3143,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3139,
                            "name": "recipients",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3060,
                            "src": "2525:10:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                              "typeString": "address[] storage ref"
                            }
                          },
                          "id": 3141,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3140,
                            "name": "idx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3133,
                            "src": "2536:3:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2525:15:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3142,
                          "name": "old_addr",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3127,
                          "src": "2544:8:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "2525:27:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3138,
                      "name": "assert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3372,
                      "src": "2518:6:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3144,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2518:35:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3145,
                  "nodeType": "ExpressionStatement",
                  "src": "2518:35:12"
                },
                {
                  "assignments": [
                    3147
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3147,
                      "name": "last_idx",
                      "nodeType": "VariableDeclaration",
                      "scope": 3172,
                      "src": "2666:16:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3146,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2666:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3152,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3151,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3148,
                        "name": "recipients",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3060,
                        "src": "2685:10:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 3149,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2685:17:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "-",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 3150,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2705:1:12",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "2685:21:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2666:40:12"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3155,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3153,
                      "name": "idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3133,
                      "src": "2720:3:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 3154,
                      "name": "last_idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3147,
                      "src": "2727:8:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2720:15:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3165,
                  "nodeType": "IfStatement",
                  "src": "2716:84:12",
                  "trueBody": {
                    "id": 3164,
                    "nodeType": "Block",
                    "src": "2737:63:12",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3162,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3156,
                              "name": "recipients",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3060,
                              "src": "2751:10:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                "typeString": "address[] storage ref"
                              }
                            },
                            "id": 3158,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3157,
                              "name": "idx",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3133,
                              "src": "2762:3:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "2751:15:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3159,
                              "name": "recipients",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3060,
                              "src": "2769:10:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                "typeString": "address[] storage ref"
                              }
                            },
                            "id": 3161,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3160,
                              "name": "last_idx",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3147,
                              "src": "2780:8:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2769:20:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "2751:38:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 3163,
                        "nodeType": "ExpressionStatement",
                        "src": "2751:38:12"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3169,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "--",
                    "prefix": false,
                    "src": "2810:19:12",
                    "subExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3166,
                        "name": "recipients",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3060,
                        "src": "2810:10:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 3168,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2810:17:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3170,
                  "nodeType": "ExpressionStatement",
                  "src": "2810:19:12"
                }
              ]
            },
            "documentation": "@notice Remove a recipient from the list\n @param old_addr The address to remove\n @dev If your address shows up more than once, removes the first occurance",
            "id": 3172,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 3130,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3129,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 834,
                  "src": "2430:9:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2430:9:12"
              }
            ],
            "name": "removeRecipient",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3128,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3127,
                  "name": "old_addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 3172,
                  "src": "2403:16:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3126,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2403:7:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2402:18:12"
            },
            "payable": false,
            "returnParameters": {
              "id": 3131,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2453:0:12"
            },
            "scope": 3347,
            "src": "2378:458:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3199,
              "nodeType": "Block",
              "src": "3080:146:12",
              "statements": [
                {
                  "assignments": [
                    3178
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3178,
                      "name": "idx",
                      "nodeType": "VariableDeclaration",
                      "scope": 3200,
                      "src": "3090:11:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3177,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3090:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3183,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3180,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3383,
                          "src": "3125:3:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3181,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "3125:10:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 3179,
                      "name": "_firstRecipientIndex",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3103,
                      "src": "3104:20:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
                        "typeString": "function (address) view returns (uint256)"
                      }
                    },
                    "id": 3182,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3104:32:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3090:46:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 3190,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3185,
                            "name": "recipients",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3060,
                            "src": "3153:10:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                              "typeString": "address[] storage ref"
                            }
                          },
                          "id": 3187,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3186,
                            "name": "idx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3178,
                            "src": "3164:3:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3153:15:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3188,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3383,
                            "src": "3172:3:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 3189,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3172:10:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "3153:29:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3184,
                      "name": "assert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3372,
                      "src": "3146:6:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3191,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3146:37:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3192,
                  "nodeType": "ExpressionStatement",
                  "src": "3146:37:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3197,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3193,
                        "name": "recipients",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3060,
                        "src": "3193:10:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 3195,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3194,
                        "name": "idx",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3178,
                        "src": "3204:3:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3193:15:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3196,
                      "name": "new_addr",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3174,
                      "src": "3211:8:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "3193:26:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 3198,
                  "nodeType": "ExpressionStatement",
                  "src": "3193:26:12"
                }
              ]
            },
            "documentation": "@notice Replace your own address with a different one\n @param new_addr The new address\n @dev If your address shows up more than once, replaces the first occurance",
            "id": 3200,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "replaceSelf",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3175,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3174,
                  "name": "new_addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 3200,
                  "src": "3048:16:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3173,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3048:7:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3047:18:12"
            },
            "payable": false,
            "returnParameters": {
              "id": 3176,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3080:0:12"
            },
            "scope": 3347,
            "src": "3027:199:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3286,
              "nodeType": "Block",
              "src": "3496:688:12",
              "statements": [
                {
                  "assignments": [
                    3204
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3204,
                      "name": "unallocated",
                      "nodeType": "VariableDeclaration",
                      "scope": 3287,
                      "src": "3507:19:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3203,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3507:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3212,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3210,
                        "name": "balanceTotal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3057,
                        "src": "3555:12:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3206,
                              "name": "this",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3420,
                              "src": "3537:4:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_SplitterWallet_$3347",
                                "typeString": "contract SplitterWallet"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_SplitterWallet_$3347",
                                "typeString": "contract SplitterWallet"
                              }
                            ],
                            "id": 3205,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "3529:7:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 3207,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3529:13:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 3208,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "3529:21:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 3209,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sub",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2938,
                      "src": "3529:25:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 3211,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3529:39:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3507:61:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3216,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3214,
                          "name": "unallocated",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3204,
                          "src": "3586:11:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3215,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3600:1:12",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "3586:15:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f2066756e647320746f20616c6c6f63617465",
                        "id": 3217,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3603:22:12",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a4660e151b5f885c8671e8cfd42d7171849b69a5056c2980dc553caaac562aac",
                          "typeString": "literal_string \"No funds to allocate\""
                        },
                        "value": "No funds to allocate"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a4660e151b5f885c8671e8cfd42d7171849b69a5056c2980dc553caaac562aac",
                          "typeString": "literal_string \"No funds to allocate\""
                        }
                      ],
                      "id": 3213,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3386,
                        3387
                      ],
                      "referencedDeclaration": 3387,
                      "src": "3578:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3218,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3578:48:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3219,
                  "nodeType": "ExpressionStatement",
                  "src": "3578:48:12"
                },
                {
                  "assignments": [
                    3221
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3221,
                      "name": "num_recipients",
                      "nodeType": "VariableDeclaration",
                      "scope": 3287,
                      "src": "3637:22:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3220,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3637:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3224,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3222,
                      "name": "recipients",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3060,
                      "src": "3662:10:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                        "typeString": "address[] storage ref"
                      }
                    },
                    "id": 3223,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "3662:17:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3637:42:12"
                },
                {
                  "assignments": [
                    3226
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3226,
                      "name": "each",
                      "nodeType": "VariableDeclaration",
                      "scope": 3287,
                      "src": "3771:12:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3225,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3771:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3230,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3229,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3227,
                      "name": "unallocated",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3204,
                      "src": "3786:11:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 3228,
                      "name": "num_recipients",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3221,
                      "src": "3800:14:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3786:28:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3771:43:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3234,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3232,
                          "name": "each",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3226,
                          "src": "3832:4:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3233,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3839:1:12",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "3832:8:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f206d6f6e6579206c65667420746f20626520616c6c6f636174656420616674657220726f756e64696e6720646f776e",
                        "id": 3235,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3842:51:12",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b0335c03f38cd29b16d1807f5716f6bfc7a7c7c677cba03cee2fd55ad39e1610",
                          "typeString": "literal_string \"No money left to be allocated after rounding down\""
                        },
                        "value": "No money left to be allocated after rounding down"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b0335c03f38cd29b16d1807f5716f6bfc7a7c7c677cba03cee2fd55ad39e1610",
                          "typeString": "literal_string \"No money left to be allocated after rounding down\""
                        }
                      ],
                      "id": 3231,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3386,
                        3387
                      ],
                      "referencedDeclaration": 3387,
                      "src": "3824:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3236,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3824:70:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3237,
                  "nodeType": "ExpressionStatement",
                  "src": "3824:70:12"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3239,
                      "name": "i",
                      "nodeType": "VariableDeclaration",
                      "scope": 3287,
                      "src": "3905:9:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3238,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3905:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3240,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3905:9:12"
                },
                {
                  "body": {
                    "id": 3275,
                    "nodeType": "Block",
                    "src": "3957:164:12",
                    "statements": [
                      {
                        "assignments": [
                          3252
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 3252,
                            "name": "recip",
                            "nodeType": "VariableDeclaration",
                            "scope": 3287,
                            "src": "3971:13:12",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "typeName": {
                              "id": 3251,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "3971:7:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 3256,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3253,
                            "name": "recipients",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3060,
                            "src": "3987:10:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                              "typeString": "address[] storage ref"
                            }
                          },
                          "id": 3255,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3254,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3239,
                            "src": "3998:1:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3987:13:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "3971:29:12"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3266,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3257,
                              "name": "balanceOf",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3055,
                              "src": "4014:9:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 3259,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3258,
                              "name": "recip",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3252,
                              "src": "4024:5:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "4014:16:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3264,
                                "name": "each",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3226,
                                "src": "4054:4:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 3260,
                                  "name": "balanceOf",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3055,
                                  "src": "4033:9:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                    "typeString": "mapping(address => uint256)"
                                  }
                                },
                                "id": 3262,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 3261,
                                  "name": "recip",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3252,
                                  "src": "4043:5:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "4033:16:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 3263,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "add",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2962,
                              "src": "4033:20:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 3265,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4033:26:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "4014:45:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3267,
                        "nodeType": "ExpressionStatement",
                        "src": "4014:45:12"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3273,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 3268,
                            "name": "balanceTotal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3057,
                            "src": "4073:12:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3271,
                                "name": "each",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3226,
                                "src": "4105:4:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 3269,
                                "name": "balanceTotal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3057,
                                "src": "4088:12:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 3270,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "add",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2962,
                              "src": "4088:16:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 3272,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4088:22:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "4073:37:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3274,
                        "nodeType": "ExpressionStatement",
                        "src": "4073:37:12"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3247,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3245,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3239,
                      "src": "3934:1:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 3246,
                      "name": "num_recipients",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3221,
                      "src": "3936:14:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3934:16:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3276,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3243,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "id": 3241,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3239,
                        "src": "3929:1:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 3242,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3931:1:12",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "3929:3:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3244,
                    "nodeType": "ExpressionStatement",
                    "src": "3929:3:12"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3249,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "3952:3:12",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 3248,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3239,
                        "src": "3952:1:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3250,
                    "nodeType": "ExpressionStatement",
                    "src": "3952:3:12"
                  },
                  "nodeType": "ForStatement",
                  "src": "3924:197:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3283,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3279,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3420,
                                "src": "4146:4:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_SplitterWallet_$3347",
                                  "typeString": "contract SplitterWallet"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_SplitterWallet_$3347",
                                  "typeString": "contract SplitterWallet"
                                }
                              ],
                              "id": 3278,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4138:7:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 3280,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4138:13:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 3281,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "balance",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4138:21:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3282,
                          "name": "balanceTotal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3057,
                          "src": "4163:12:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "4138:37:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3277,
                      "name": "assert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3372,
                      "src": "4131:6:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3284,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4131:45:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3285,
                  "nodeType": "ExpressionStatement",
                  "src": "4131:45:12"
                }
              ]
            },
            "documentation": "@notice Allocate any unallocated funds from the contract balance\n @dev Any time the contract gets funds, they will appear as unallocated\n @dev Assign them to the current recipients, and mark them as allocated",
            "id": 3287,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "allocate",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3201,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3480:2:12"
            },
            "payable": false,
            "returnParameters": {
              "id": 3202,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3496:0:12"
            },
            "scope": 3347,
            "src": "3463:721:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3341,
              "nodeType": "Block",
              "src": "4290:324:12",
              "statements": [
                {
                  "assignments": [
                    3291
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3291,
                      "name": "bal",
                      "nodeType": "VariableDeclaration",
                      "scope": 3342,
                      "src": "4301:11:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3290,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4301:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3296,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3292,
                      "name": "balanceOf",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3055,
                      "src": "4315:9:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                        "typeString": "mapping(address => uint256)"
                      }
                    },
                    "id": 3295,
                    "indexExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3293,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3383,
                        "src": "4325:3:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 3294,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "4325:10:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4315:21:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4301:35:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3300,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3298,
                          "name": "bal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3291,
                          "src": "4354:3:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3299,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4360:1:12",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "4354:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "42616c616e6365206d75737420626520706f736974697665",
                        "id": 3301,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4363:26:12",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_340afe6947da449d67e81dc123ad935e96abad6e36a90276f86359ba7bdeb815",
                          "typeString": "literal_string \"Balance must be positive\""
                        },
                        "value": "Balance must be positive"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_340afe6947da449d67e81dc123ad935e96abad6e36a90276f86359ba7bdeb815",
                          "typeString": "literal_string \"Balance must be positive\""
                        }
                      ],
                      "id": 3297,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3386,
                        3387
                      ],
                      "referencedDeclaration": 3387,
                      "src": "4346:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3302,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4346:44:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3303,
                  "nodeType": "ExpressionStatement",
                  "src": "4346:44:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3309,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3304,
                      "name": "balanceTotal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3057,
                      "src": "4401:12:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 3307,
                          "name": "bal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3291,
                          "src": "4433:3:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 3305,
                          "name": "balanceTotal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3057,
                          "src": "4416:12:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3306,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2938,
                        "src": "4416:16:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 3308,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4416:21:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4401:36:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3310,
                  "nodeType": "ExpressionStatement",
                  "src": "4401:36:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3316,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3311,
                        "name": "balanceOf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3055,
                        "src": "4447:9:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 3314,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3312,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3383,
                          "src": "4457:3:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3313,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4457:10:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4447:21:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3315,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4471:1:12",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "4447:25:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3317,
                  "nodeType": "ExpressionStatement",
                  "src": "4447:25:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3323,
                        "name": "bal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3291,
                        "src": "4502:3:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3318,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3383,
                          "src": "4482:3:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3321,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4482:10:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 3322,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "4482:19:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 3324,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4482:24:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3325,
                  "nodeType": "ExpressionStatement",
                  "src": "4482:24:12"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3327,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3383,
                          "src": "4534:3:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3328,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4534:10:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3329,
                        "name": "bal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3291,
                        "src": "4546:3:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3326,
                      "name": "LogWithdraw",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3066,
                      "src": "4522:11:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 3330,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4522:28:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3331,
                  "nodeType": "EmitStatement",
                  "src": "4517:33:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3338,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3334,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3420,
                                "src": "4576:4:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_SplitterWallet_$3347",
                                  "typeString": "contract SplitterWallet"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_SplitterWallet_$3347",
                                  "typeString": "contract SplitterWallet"
                                }
                              ],
                              "id": 3333,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "4568:7:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 3335,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4568:13:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 3336,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "balance",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4568:21:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3337,
                          "name": "balanceTotal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3057,
                          "src": "4593:12:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "4568:37:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3332,
                      "name": "assert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3372,
                      "src": "4561:6:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3339,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4561:45:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3340,
                  "nodeType": "ExpressionStatement",
                  "src": "4561:45:12"
                }
              ]
            },
            "documentation": "@notice Withdraw the address balance to the owner account",
            "id": 3342,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "withdraw",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3288,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4273:2:12"
            },
            "payable": false,
            "returnParameters": {
              "id": 3289,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4290:0:12"
            },
            "scope": 3347,
            "src": "4256:358:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3345,
              "nodeType": "Block",
              "src": "4652:7:12",
              "statements": []
            },
            "documentation": null,
            "id": 3346,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3343,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4628:2:12"
            },
            "payable": true,
            "returnParameters": {
              "id": 3344,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4652:0:12"
            },
            "scope": 3347,
            "src": "4620:39:12",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 3348,
        "src": "982:3680:12"
      }
    ],
    "src": "0:4663:12"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {
    "123411710": {
      "events": {},
      "links": {},
      "address": "0x3e2F0C013d15270b2842a6aebb414C72511ff12F",
      "transactionHash": "0xabadbd8a5dd60a0740b179f9e392225035ffc45d51e827c9d7a4076d0643e493"
    }
  },
  "schemaVersion": "2.0.2",
  "updatedAt": "2019-05-25T02:18:58.921Z"
}