{
  "contractName": "ForkonomicToken",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        },
        {
          "name": "",
          "type": "bytes32"
        },
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "allowed",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "fSystem",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "lastDebitWindows",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_fSystem",
          "type": "address"
        },
        {
          "name": "initalFundingContracts",
          "type": "address[]"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_owner",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "ownerBox",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "_spender",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "spenderBox",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "_value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "branch",
          "type": "bytes32"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "from",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "fromBox",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "toBox",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "branch",
          "type": "bytes32"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_spender",
          "type": "address"
        },
        {
          "name": "_amount",
          "type": "uint256"
        },
        {
          "name": "_branch",
          "type": "bytes32"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "name": "success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "owner",
          "type": "address"
        },
        {
          "name": "spender",
          "type": "address"
        },
        {
          "name": "branch",
          "type": "bytes32"
        }
      ],
      "name": "allowance",
      "outputs": [
        {
          "name": "remaining",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_spender",
          "type": "address"
        },
        {
          "name": "_amount",
          "type": "uint256"
        },
        {
          "name": "_branch",
          "type": "bytes32"
        },
        {
          "name": "fromBox",
          "type": "bytes32"
        },
        {
          "name": "spenderBox",
          "type": "bytes32"
        }
      ],
      "name": "approveBox",
      "outputs": [
        {
          "name": "success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "owner",
          "type": "address"
        },
        {
          "name": "spender",
          "type": "address"
        },
        {
          "name": "branch",
          "type": "bytes32"
        },
        {
          "name": "senderBox",
          "type": "bytes32"
        },
        {
          "name": "receiverBox",
          "type": "bytes32"
        }
      ],
      "name": "allowanceBox",
      "outputs": [
        {
          "name": "remaining",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "addr",
          "type": "address"
        },
        {
          "name": "branch",
          "type": "bytes32"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "addr",
          "type": "address"
        },
        {
          "name": "branch",
          "type": "bytes32"
        },
        {
          "name": "acct",
          "type": "bytes32"
        }
      ],
      "name": "balanceOfBox",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "addr",
          "type": "address"
        },
        {
          "name": "minBalance",
          "type": "uint256"
        },
        {
          "name": "branchHash",
          "type": "bytes32"
        }
      ],
      "name": "isAmountSpendable",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "addr",
          "type": "address"
        },
        {
          "name": "minBalance",
          "type": "uint256"
        },
        {
          "name": "branchHash",
          "type": "bytes32"
        },
        {
          "name": "box",
          "type": "bytes32"
        }
      ],
      "name": "isAmountSpendableBox",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "addr",
          "type": "address"
        },
        {
          "name": "amount",
          "type": "uint256"
        },
        {
          "name": "branch",
          "type": "bytes32"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "addr",
          "type": "address"
        },
        {
          "name": "amount",
          "type": "uint256"
        },
        {
          "name": "branch",
          "type": "bytes32"
        },
        {
          "name": "fromBox",
          "type": "bytes32"
        },
        {
          "name": "toBox",
          "type": "bytes32"
        }
      ],
      "name": "boxTransfer",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "from",
          "type": "address"
        },
        {
          "name": "to",
          "type": "address"
        },
        {
          "name": "amount",
          "type": "uint256"
        },
        {
          "name": "branch",
          "type": "bytes32"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "addr",
          "type": "address"
        },
        {
          "name": "addrTo",
          "type": "address"
        },
        {
          "name": "amount",
          "type": "uint256"
        },
        {
          "name": "branch",
          "type": "bytes32"
        },
        {
          "name": "fromBox",
          "type": "bytes32"
        }
      ],
      "name": "boxTransferFrom",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "fromAddr",
          "type": "address"
        },
        {
          "name": "toAddr",
          "type": "address"
        },
        {
          "name": "amount",
          "type": "uint256"
        },
        {
          "name": "branch",
          "type": "bytes32"
        },
        {
          "name": "fromBox",
          "type": "bytes32"
        },
        {
          "name": "toBox",
          "type": "bytes32"
        }
      ],
      "name": "boxTransferFrom",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "box",
          "type": "bytes32"
        },
        {
          "name": "amount",
          "type": "uint256"
        },
        {
          "name": "branch",
          "type": "bytes32"
        }
      ],
      "name": "recordBoxWithdrawal",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "owner",
          "type": "address"
        },
        {
          "name": "box",
          "type": "bytes32"
        },
        {
          "name": "branchHash",
          "type": "bytes32"
        },
        {
          "name": "earliestPossibleBranch",
          "type": "bytes32"
        }
      ],
      "name": "hasBoxWithdrawal",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "owner",
          "type": "address"
        },
        {
          "name": "box",
          "type": "bytes32"
        },
        {
          "name": "branchHash",
          "type": "bytes32"
        },
        {
          "name": "earliestPossibleBranch",
          "type": "bytes32"
        }
      ],
      "name": "recordedBoxWithdrawalAmount",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "acct",
          "type": "bytes32"
        },
        {
          "name": "minBalance",
          "type": "uint256"
        },
        {
          "name": "branchHash",
          "type": "bytes32"
        }
      ],
      "name": "_isAmountSpendable",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040523480156200001157600080fd5b5060405162001e7a38038062001e7a833981016040818152825160208085015160058054600160a060020a031916600160a060020a0380861691909117918290557f176b6f010000000000000000000000000000000000000000000000000000000087529451939691909101946000948594859485949092169263176b6f0192600480830193919282900301818787803b158015620000af57600080fd5b505af1158015620000c4573d6000803e3d6000fd5b505050506040513d6020811015620000db57600080fd5b505185519094509250600c83106200015457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f20746f6f206d616e792066756e64696e67206163636f756e7473000000000000604482015290519081900360640190fd5b600091505b82821015620002645784828151811015156200017157fe5b9060200190602002015160006040516020018083600160a060020a0316600160a060020a03166c010000000000000000000000000281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b60208310620001fd5780518252601f199092019160209182019101620001dc565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912060008a8152808352848120828252909252929020805465befe6f6720009081019091556004805490910190555060019490940193925062000159915050565b505050505050611c00806200027a6000396000f30060806040526004361061013d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461014257806317d287e0146101cc57806318160ddd146102135780631b6672d21461023a5780631c8d5d381461026a578063313ce5671461029457806338487803146102bf578063401e3367146102e95780634d30b6be1461031657806357cfeeee1461033a57806366422c47146103615780636dd265a51461037f5780638180f2fc146103ac578063911651ac146103d357806395d89b41146103fa578063990861831461040f578063a53171a41461042d578063c34719791461044b578063cf54a3d31461047b578063d0c91487146104a5578063d1fe5313146104cf578063d440796e146104fc578063e10db5111461052d578063f2482e2b14610545575b600080fd5b34801561014e57600080fd5b5061015761056c565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610191578181015183820152602001610179565b50505050905090810190601f1680156101be5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d857600080fd5b506101ff600160a060020a036004358116906024351660443560643560843560a4356105a3565b604080519115158252519081900360200190f35b34801561021f57600080fd5b50610228610b34565b60408051918252519081900360200190f35b34801561024657600080fd5b506101ff600160a060020a0360043581169060243516604435606435608435610b3a565b34801561027657600080fd5b50610228600160a060020a0360043581169060243516604435610b55565b3480156102a057600080fd5b506102a9610b6d565b6040805160ff9092168252519081900360200190f35b3480156102cb57600080fd5b50610228600160a060020a0360043516602435604435606435610b72565b3480156102f557600080fd5b506101ff600160a060020a0360043581169060243516604435606435610cd0565b34801561032257600080fd5b50610228600160a060020a0360043516602435610cea565b34801561034657600080fd5b506101ff600160a060020a0360043516602435604435610cff565b34801561036d57600080fd5b506101ff600435602435604435610d0f565b34801561038b57600080fd5b506101ff600160a060020a0360043516602435604435606435608435610e3a565b3480156103b857600080fd5b506101ff600160a060020a03600435166024356044356112f9565b3480156103df57600080fd5b506101ff600160a060020a0360043516602435604435611309565b34801561040657600080fd5b506101576113aa565b34801561041b57600080fd5b506102286004356024356044356113e1565b34801561043957600080fd5b506101ff600435602435604435611404565b34801561045757600080fd5b50610228600160a060020a036004358116906024351660443560643560843561155e565b34801561048757600080fd5b506101ff600160a060020a03600435166024356044356064356116c4565b3480156104b157600080fd5b506101ff600160a060020a036004351660243560443560643561182d565b3480156104db57600080fd5b506101ff600160a060020a03600435166024356044356064356084356118cd565b34801561050857600080fd5b50610511611a64565b60408051600160a060020a039092168252519081900360200190f35b34801561053957600080fd5b50610228600435611a73565b34801561055157600080fd5b50610228600160a060020a0360043516602435604435611a85565b60408051808201909152600c81527f5265616c697479546f6b656e0000000000000000000000000000000000000000602082015281565b60008060008060008a876040516020018083600160a060020a0316600160a060020a0316606060020a0281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083106106225780518252601f199092019160209182019101610603565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020935089866040516020018083600160a060020a0316600160a060020a0316606060020a0281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083106106c85780518252601f1990920191602091820191016106a9565b51815160209384036101000a60001901801990921691161790526040805192909401829003822033606060020a028383015260348084018e90528551808503909101815260549093019485905282519099509195509293508392850191508083835b602083106107495780518252601f19909201916020918201910161072a565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912060008a81526003835284812082825283528481208f825290925292902054919550508b111591506107a3905057600080fd5b600554604080517f6ceccf73000000000000000000000000000000000000000000000000000000008152600481018b90529051600160a060020a0390921691636ceccf73916024808201926020929091908290030181600087803b15801561080a57600080fd5b505af115801561081e573d6000803e3d6000fd5b505050506040513d602081101561083457600080fd5b50519050660775f05a074000891115610897576040805160e560020a62461bcd02815260206004820152601f60248201527f20616d6f756e7420686967686572207468616e20746f74616c537570706c7900604482015290519081900360640190fd5b600554604080517f4dd8aa05000000000000000000000000000000000000000000000000000000008152600481018b90529051600160a060020a0390921691634dd8aa05916024808201926020929091908290030181600087803b1580156108fe57600080fd5b505af1158015610912573d6000803e3d6000fd5b505050506040513d602081101561092857600080fd5b50511515610980576040805160e560020a62461bcd02815260206004820152601160248201527f6272616e6368206d757374206578697374000000000000000000000000000000604482015290519081900360640190fd5b6000848152600260205260409020548110156109e6576040805160e560020a62461bcd02815260206004820152601860248201527f6465626974732063616e7420676f206261636b77617264730000000000000000604482015290519081900360640190fd5b6109f1848a8a610d0f565b1515610a47576040805160e560020a62461bcd02815260206004820152601860248201527f616d6f756e74206d757374206265207370656e6461626c650000000000000000604482015290519081900360640190fd5b60008481526002602090815260408083208490558a8352828252808320878452825280832080548d9003905585835280832080548d0190558683526003825280832085845282528083208b8452909152902054610aa4908a611bc2565b600085815260036020908152604080832086845282528083208c84528252808320939093558251600160a060020a038e8116825291810183905280840192909252606082018c9052608082018b90529151918d16917f0c6b0e76e483dcdd5bb0b263cc6619434b90af2c8728f59df72be0f801203dbd9181900360a00190a25060019a9950505050505050505050565b60045481565b6000610b4b868686868660006105a3565b9695505050505050565b6000610b6584848460008061155e565b949350505050565b601281565b60408051606060020a600160a060020a03871602602080830191909152603480830187905283518084039091018152605490920192839052815160009384938493909282918401908083835b60208310610bdd5780518252601f199092019160209182019101610bbe565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150600090505b8415801590610c205750848414155b15610cc4576000858152600160209081526040808320858452825280832054600554825160e060020a63f36b43cb028152600481018b905292519590910194600160a060020a039091169363f36b43cb93602480850194919392918390030190829087803b158015610c9157600080fd5b505af1158015610ca5573d6000803e3d6000fd5b505050506040513d6020811015610cbb57600080fd5b50519450610c11565b841515610b4b57600080fd5b6000610ce1858585856000806105a3565b95945050505050565b6000610cf883836000611a85565b9392505050565b6000610b65848484600080610e3a565b60008080660775f05a074000851115610d72576040805160e560020a62461bcd02815260206004820152601e60248201527f616d6f756e7420626967676572207468616e20746f74616c537570706c790000604482015290519081900360640190fd5b5060009050835b8315610e2c57600084815260208181526040808320898452825280832054600554825160e060020a63f36b43cb028152600481018a905292519690910195600160a060020a039091169363f36b43cb93602480850194919392918390030190829087803b158015610de957600080fd5b505af1158015610dfd573d6000803e3d6000fd5b505050506040513d6020811015610e1357600080fd5b50519350808212610e275760019250610e31565b610d79565b600092505b50509392505050565b600554604080517f6ceccf7300000000000000000000000000000000000000000000000000000000815260048101869052905160009283928392600160a060020a0390921691636ceccf739160248082019260209290919082900301818787803b158015610ea757600080fd5b505af1158015610ebb573d6000803e3d6000fd5b505050506040513d6020811015610ed157600080fd5b50519150660775f05a074000871115610f5a576040805160e560020a62461bcd02815260206004820152602760248201527f2073656e64696e6720616d6f756e7420626967676572207468616e20746f746160448201527f6c537570706c7900000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600554604080517f4dd8aa05000000000000000000000000000000000000000000000000000000008152600481018990529051600160a060020a0390921691634dd8aa05916024808201926020929091908290030181600087803b158015610fc157600080fd5b505af1158015610fd5573d6000803e3d6000fd5b505050506040513d6020811015610feb57600080fd5b50511515611043576040805160e560020a62461bcd02815260206004820152601260248201527f206272616e6368206d7573742065786973740000000000000000000000000000604482015290519081900360640190fd5b60408051606060020a3302602080830191909152603480830189905283518084039091018152605490920192839052815191929182918401908083835b6020831061109f5780518252601f199092019160209182019101611080565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120600081815260029092529290205491945050841015915061115a9050576040805160e560020a62461bcd02815260206004820152602a60248201527f206272616e636857696e646f77203e3d206c617374446562697457696e646f7760448201527f735b6163636f756e745d00000000000000000000000000000000000000000000606482015290519081900360840190fd5b611165818888610d0f565b15156111bb576040805160e560020a62461bcd02815260206004820152601960248201527f20616d6f756e7420776173206e6f74207370656e6461626c6500000000000000604482015290519081900360640190fd5b600081815260026020908152604080832085905588835282825280832084845280835281842080548c900390558984528383528151606060020a600160a060020a038e16028185015260348082018a90528351808303909101815260549091019283905280518c959294929391928291908401908083835b602083106112525780518252601f199092019160209182019101611233565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600020805495909501909455508051338152918201889052818101879052606082018a90526080820189905251600160a060020a038b1692507f0c6b0e76e483dcdd5bb0b263cc6619434b90af2c8728f59df72be0f801203dbd9160a0908290030190a2506001979650505050505050565b6000610b658484846000806118cd565b60408051606060020a600160a060020a03861602602080830191909152600060348084018290528451808503909101815260549093019384905282519093610b659392909182918401908083835b602083106113765780518252601f199092019160209182019101611357565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208484610d0f565b60408051808201909152600381527f524c540000000000000000000000000000000000000000000000000000000000602082015281565b600360209081526000938452604080852082529284528284209052825290205481565b600554604080517f0236b8170000000000000000000000000000000000000000000000000000000081526004810184905290516000928392600160a060020a0390911691630236b8179160248082019260209290919082900301818787803b15801561146f57600080fd5b505af1158015611483573d6000803e3d6000fd5b505050506040513d602081101561149957600080fd5b5051116114a557600080fd5b60008281526001602090815260408083208151606060020a33028185015260348082018a905283518083039091018152605490910192839052805188959294929391928291908401908083835b602083106115115780518252601f1990920191602091820191016114f2565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000208054949094019093555060019695505050505050565b60408051606060020a600160a060020a03871602602080830191909152603480830186905283518084039091018152605490920192839052815160009384938493909282918401908083835b602083106115c95780518252601f1990920191602091820191016115aa565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020915087846040516020018083600160a060020a0316600160a060020a0316606060020a0281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061166f5780518252601f199092019160209182019101611650565b51815160209384036101000a600019018019909216911617905260408051929094018290039091206000908152600382528381209781529681528287209a875299909952909320549998505050505050505050565b60408051606060020a600160a060020a038716026020808301919091526034808301879052835180840390910181526054909201928390528151600093849392909182918401908083835b6020831061172e5780518252601f19909201916020918201910161170f565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090505b831580159061176d5750838314155b1561181f576000848152600160209081526040808320848452909152812054131561179b5760019150611824565b6005546040805160e060020a63f36b43cb028152600481018790529051600160a060020a039092169163f36b43cb916024808201926020929091908290030181600087803b1580156117ec57600080fd5b505af1158015611800573d6000803e3d6000fd5b505050506040513d602081101561181657600080fd5b5051935061175e565b600091505b50949350505050565b60408051606060020a600160a060020a038716026020808301919091526034808301859052835180840390910181526054909201928390528151600093610ce19392909182918401908083835b602083106118995780518252601f19909201916020918201910161187a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208585610d0f565b60408051606060020a600160a060020a03881602602080830191909152603480830185905283518084039091018152605490920192839052815160009384938493909282918401908083835b602083106119385780518252601f199092019160209182019101611919565b51815160209384036101000a60001901801990921691161790526040805192909401829003822033606060020a028383015260348084018d90528551808503909101815260549093019485905282519098509195509293508392850191508083835b602083106119b95780518252601f19909201916020918201910161199a565b51815160001960209485036101000a01908116901991909116179052604080519490920184900384206000818152600383528381208a825283528381208e825283528390208e90558b85529084018a90528382018d9052606084018c90529051909550600160a060020a038d1694503393507f3676da71ebbe2008b6d2bf52b4ab0678cb2166150551071ce4f784087bec6186928190036080019150a3506001979650505050505050565b600554600160a060020a031681565b60026020526000908152604090205481565b6000805b8315610b65576000848152602081815260408083208151606060020a600160a060020a038b160281850152603480820189905283518083039091018152605490910192839052805191949390929182918401908083835b60208310611aff5780518252601f199092019160209182019101611ae0565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812054600554855160e060020a63f36b43cb028152600481018c905295519790910196600160a060020a039091169563f36b43cb95602480820196509194509192918390030190829087803b158015611b8f57600080fd5b505af1158015611ba3573d6000803e3d6000fd5b505050506040513d6020811015611bb957600080fd5b50519350611a89565b600082821115611bce57fe5b509003905600a165627a7a72305820a31a7017d183c33b71d43593cc4f8bf736a1607efff86e1c84b987a7329a0cc80029",
  "deployedBytecode": "0x60806040526004361061013d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461014257806317d287e0146101cc57806318160ddd146102135780631b6672d21461023a5780631c8d5d381461026a578063313ce5671461029457806338487803146102bf578063401e3367146102e95780634d30b6be1461031657806357cfeeee1461033a57806366422c47146103615780636dd265a51461037f5780638180f2fc146103ac578063911651ac146103d357806395d89b41146103fa578063990861831461040f578063a53171a41461042d578063c34719791461044b578063cf54a3d31461047b578063d0c91487146104a5578063d1fe5313146104cf578063d440796e146104fc578063e10db5111461052d578063f2482e2b14610545575b600080fd5b34801561014e57600080fd5b5061015761056c565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610191578181015183820152602001610179565b50505050905090810190601f1680156101be5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d857600080fd5b506101ff600160a060020a036004358116906024351660443560643560843560a4356105a3565b604080519115158252519081900360200190f35b34801561021f57600080fd5b50610228610b34565b60408051918252519081900360200190f35b34801561024657600080fd5b506101ff600160a060020a0360043581169060243516604435606435608435610b3a565b34801561027657600080fd5b50610228600160a060020a0360043581169060243516604435610b55565b3480156102a057600080fd5b506102a9610b6d565b6040805160ff9092168252519081900360200190f35b3480156102cb57600080fd5b50610228600160a060020a0360043516602435604435606435610b72565b3480156102f557600080fd5b506101ff600160a060020a0360043581169060243516604435606435610cd0565b34801561032257600080fd5b50610228600160a060020a0360043516602435610cea565b34801561034657600080fd5b506101ff600160a060020a0360043516602435604435610cff565b34801561036d57600080fd5b506101ff600435602435604435610d0f565b34801561038b57600080fd5b506101ff600160a060020a0360043516602435604435606435608435610e3a565b3480156103b857600080fd5b506101ff600160a060020a03600435166024356044356112f9565b3480156103df57600080fd5b506101ff600160a060020a0360043516602435604435611309565b34801561040657600080fd5b506101576113aa565b34801561041b57600080fd5b506102286004356024356044356113e1565b34801561043957600080fd5b506101ff600435602435604435611404565b34801561045757600080fd5b50610228600160a060020a036004358116906024351660443560643560843561155e565b34801561048757600080fd5b506101ff600160a060020a03600435166024356044356064356116c4565b3480156104b157600080fd5b506101ff600160a060020a036004351660243560443560643561182d565b3480156104db57600080fd5b506101ff600160a060020a03600435166024356044356064356084356118cd565b34801561050857600080fd5b50610511611a64565b60408051600160a060020a039092168252519081900360200190f35b34801561053957600080fd5b50610228600435611a73565b34801561055157600080fd5b50610228600160a060020a0360043516602435604435611a85565b60408051808201909152600c81527f5265616c697479546f6b656e0000000000000000000000000000000000000000602082015281565b60008060008060008a876040516020018083600160a060020a0316600160a060020a0316606060020a0281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083106106225780518252601f199092019160209182019101610603565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020935089866040516020018083600160a060020a0316600160a060020a0316606060020a0281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083106106c85780518252601f1990920191602091820191016106a9565b51815160209384036101000a60001901801990921691161790526040805192909401829003822033606060020a028383015260348084018e90528551808503909101815260549093019485905282519099509195509293508392850191508083835b602083106107495780518252601f19909201916020918201910161072a565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912060008a81526003835284812082825283528481208f825290925292902054919550508b111591506107a3905057600080fd5b600554604080517f6ceccf73000000000000000000000000000000000000000000000000000000008152600481018b90529051600160a060020a0390921691636ceccf73916024808201926020929091908290030181600087803b15801561080a57600080fd5b505af115801561081e573d6000803e3d6000fd5b505050506040513d602081101561083457600080fd5b50519050660775f05a074000891115610897576040805160e560020a62461bcd02815260206004820152601f60248201527f20616d6f756e7420686967686572207468616e20746f74616c537570706c7900604482015290519081900360640190fd5b600554604080517f4dd8aa05000000000000000000000000000000000000000000000000000000008152600481018b90529051600160a060020a0390921691634dd8aa05916024808201926020929091908290030181600087803b1580156108fe57600080fd5b505af1158015610912573d6000803e3d6000fd5b505050506040513d602081101561092857600080fd5b50511515610980576040805160e560020a62461bcd02815260206004820152601160248201527f6272616e6368206d757374206578697374000000000000000000000000000000604482015290519081900360640190fd5b6000848152600260205260409020548110156109e6576040805160e560020a62461bcd02815260206004820152601860248201527f6465626974732063616e7420676f206261636b77617264730000000000000000604482015290519081900360640190fd5b6109f1848a8a610d0f565b1515610a47576040805160e560020a62461bcd02815260206004820152601860248201527f616d6f756e74206d757374206265207370656e6461626c650000000000000000604482015290519081900360640190fd5b60008481526002602090815260408083208490558a8352828252808320878452825280832080548d9003905585835280832080548d0190558683526003825280832085845282528083208b8452909152902054610aa4908a611bc2565b600085815260036020908152604080832086845282528083208c84528252808320939093558251600160a060020a038e8116825291810183905280840192909252606082018c9052608082018b90529151918d16917f0c6b0e76e483dcdd5bb0b263cc6619434b90af2c8728f59df72be0f801203dbd9181900360a00190a25060019a9950505050505050505050565b60045481565b6000610b4b868686868660006105a3565b9695505050505050565b6000610b6584848460008061155e565b949350505050565b601281565b60408051606060020a600160a060020a03871602602080830191909152603480830187905283518084039091018152605490920192839052815160009384938493909282918401908083835b60208310610bdd5780518252601f199092019160209182019101610bbe565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150600090505b8415801590610c205750848414155b15610cc4576000858152600160209081526040808320858452825280832054600554825160e060020a63f36b43cb028152600481018b905292519590910194600160a060020a039091169363f36b43cb93602480850194919392918390030190829087803b158015610c9157600080fd5b505af1158015610ca5573d6000803e3d6000fd5b505050506040513d6020811015610cbb57600080fd5b50519450610c11565b841515610b4b57600080fd5b6000610ce1858585856000806105a3565b95945050505050565b6000610cf883836000611a85565b9392505050565b6000610b65848484600080610e3a565b60008080660775f05a074000851115610d72576040805160e560020a62461bcd02815260206004820152601e60248201527f616d6f756e7420626967676572207468616e20746f74616c537570706c790000604482015290519081900360640190fd5b5060009050835b8315610e2c57600084815260208181526040808320898452825280832054600554825160e060020a63f36b43cb028152600481018a905292519690910195600160a060020a039091169363f36b43cb93602480850194919392918390030190829087803b158015610de957600080fd5b505af1158015610dfd573d6000803e3d6000fd5b505050506040513d6020811015610e1357600080fd5b50519350808212610e275760019250610e31565b610d79565b600092505b50509392505050565b600554604080517f6ceccf7300000000000000000000000000000000000000000000000000000000815260048101869052905160009283928392600160a060020a0390921691636ceccf739160248082019260209290919082900301818787803b158015610ea757600080fd5b505af1158015610ebb573d6000803e3d6000fd5b505050506040513d6020811015610ed157600080fd5b50519150660775f05a074000871115610f5a576040805160e560020a62461bcd02815260206004820152602760248201527f2073656e64696e6720616d6f756e7420626967676572207468616e20746f746160448201527f6c537570706c7900000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600554604080517f4dd8aa05000000000000000000000000000000000000000000000000000000008152600481018990529051600160a060020a0390921691634dd8aa05916024808201926020929091908290030181600087803b158015610fc157600080fd5b505af1158015610fd5573d6000803e3d6000fd5b505050506040513d6020811015610feb57600080fd5b50511515611043576040805160e560020a62461bcd02815260206004820152601260248201527f206272616e6368206d7573742065786973740000000000000000000000000000604482015290519081900360640190fd5b60408051606060020a3302602080830191909152603480830189905283518084039091018152605490920192839052815191929182918401908083835b6020831061109f5780518252601f199092019160209182019101611080565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120600081815260029092529290205491945050841015915061115a9050576040805160e560020a62461bcd02815260206004820152602a60248201527f206272616e636857696e646f77203e3d206c617374446562697457696e646f7760448201527f735b6163636f756e745d00000000000000000000000000000000000000000000606482015290519081900360840190fd5b611165818888610d0f565b15156111bb576040805160e560020a62461bcd02815260206004820152601960248201527f20616d6f756e7420776173206e6f74207370656e6461626c6500000000000000604482015290519081900360640190fd5b600081815260026020908152604080832085905588835282825280832084845280835281842080548c900390558984528383528151606060020a600160a060020a038e16028185015260348082018a90528351808303909101815260549091019283905280518c959294929391928291908401908083835b602083106112525780518252601f199092019160209182019101611233565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600020805495909501909455508051338152918201889052818101879052606082018a90526080820189905251600160a060020a038b1692507f0c6b0e76e483dcdd5bb0b263cc6619434b90af2c8728f59df72be0f801203dbd9160a0908290030190a2506001979650505050505050565b6000610b658484846000806118cd565b60408051606060020a600160a060020a03861602602080830191909152600060348084018290528451808503909101815260549093019384905282519093610b659392909182918401908083835b602083106113765780518252601f199092019160209182019101611357565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208484610d0f565b60408051808201909152600381527f524c540000000000000000000000000000000000000000000000000000000000602082015281565b600360209081526000938452604080852082529284528284209052825290205481565b600554604080517f0236b8170000000000000000000000000000000000000000000000000000000081526004810184905290516000928392600160a060020a0390911691630236b8179160248082019260209290919082900301818787803b15801561146f57600080fd5b505af1158015611483573d6000803e3d6000fd5b505050506040513d602081101561149957600080fd5b5051116114a557600080fd5b60008281526001602090815260408083208151606060020a33028185015260348082018a905283518083039091018152605490910192839052805188959294929391928291908401908083835b602083106115115780518252601f1990920191602091820191016114f2565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000208054949094019093555060019695505050505050565b60408051606060020a600160a060020a03871602602080830191909152603480830186905283518084039091018152605490920192839052815160009384938493909282918401908083835b602083106115c95780518252601f1990920191602091820191016115aa565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020915087846040516020018083600160a060020a0316600160a060020a0316606060020a0281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061166f5780518252601f199092019160209182019101611650565b51815160209384036101000a600019018019909216911617905260408051929094018290039091206000908152600382528381209781529681528287209a875299909952909320549998505050505050505050565b60408051606060020a600160a060020a038716026020808301919091526034808301879052835180840390910181526054909201928390528151600093849392909182918401908083835b6020831061172e5780518252601f19909201916020918201910161170f565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090505b831580159061176d5750838314155b1561181f576000848152600160209081526040808320848452909152812054131561179b5760019150611824565b6005546040805160e060020a63f36b43cb028152600481018790529051600160a060020a039092169163f36b43cb916024808201926020929091908290030181600087803b1580156117ec57600080fd5b505af1158015611800573d6000803e3d6000fd5b505050506040513d602081101561181657600080fd5b5051935061175e565b600091505b50949350505050565b60408051606060020a600160a060020a038716026020808301919091526034808301859052835180840390910181526054909201928390528151600093610ce19392909182918401908083835b602083106118995780518252601f19909201916020918201910161187a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208585610d0f565b60408051606060020a600160a060020a03881602602080830191909152603480830185905283518084039091018152605490920192839052815160009384938493909282918401908083835b602083106119385780518252601f199092019160209182019101611919565b51815160209384036101000a60001901801990921691161790526040805192909401829003822033606060020a028383015260348084018d90528551808503909101815260549093019485905282519098509195509293508392850191508083835b602083106119b95780518252601f19909201916020918201910161199a565b51815160001960209485036101000a01908116901991909116179052604080519490920184900384206000818152600383528381208a825283528381208e825283528390208e90558b85529084018a90528382018d9052606084018c90529051909550600160a060020a038d1694503393507f3676da71ebbe2008b6d2bf52b4ab0678cb2166150551071ce4f784087bec6186928190036080019150a3506001979650505050505050565b600554600160a060020a031681565b60026020526000908152604090205481565b6000805b8315610b65576000848152602081815260408083208151606060020a600160a060020a038b160281850152603480820189905283518083039091018152605490910192839052805191949390929182918401908083835b60208310611aff5780518252601f199092019160209182019101611ae0565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812054600554855160e060020a63f36b43cb028152600481018c905295519790910196600160a060020a039091169563f36b43cb95602480820196509194509192918390030190829087803b158015611b8f57600080fd5b505af1158015611ba3573d6000803e3d6000fd5b505050506040513d6020811015611bb957600080fd5b50519350611a89565b600082821115611bce57fe5b509003905600a165627a7a72305820a31a7017d183c33b71d43593cc4f8bf736a1607efff86e1c84b987a7329a0cc80029",
  "sourceMap": "120:9436:3:-;;;1503:582;8:9:-1;5:2;;;30:1;27;20:12;5:2;1503:582:3;;;;;;;;;;;;;;;;;;;;;;;1598:7;:18;;-1:-1:-1;;;;;;1598:18:3;-1:-1:-1;;;;;1598:18:3;;;;;;;;;;;1654:27;;;;;1503:582;;;;;;;-1:-1:-1;;;;;;;;1654:7:3;;;;:25;;:27;;;;;1503:582;;1654:27;;;;;-1:-1:-1;1654:7:3;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;1654:27:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1654:27:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1654:27:3;1711:29;;1654:27;;-1:-1:-1;1711:29:3;-1:-1:-1;1771:2:3;1759:14;;1751:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1830:1;1820:11;;1815:264;1837:9;1833:1;:13;1815:264;;;1912:22;1935:1;1912:25;;;;;;;;;;;;;;;;;;1939:9;1895:54;;;;;;-1:-1:-1;;;;;1895:54:3;-1:-1:-1;;;;;1895:54:3;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1895:54:3;;;1885:65;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1885:65:3;;;;;;;;;;;;;-1:-1:-1;1964:32:3;;;;;;;;;:41;;;;;;;;;:60;;2009:15;1964:60;;;;;;2038:11;:30;;;;;;;-1:-1:-1;;1848:3:3;;;;;1885:65;-1:-1:-1;1815:264:3;;-1:-1:-1;;1815:264:3;;1503:582;;;;;;120:9436;;;;;;",
  "deployedSourceMap": "120:9436:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;485:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;485:44:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;485:44:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5707:1287;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5707:1287:3;-1:-1:-1;;;;;5707:1287:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1433:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1433:26:3;;;;;;;;;;;;;;;;;;;;7000:219;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7000:219:3;-1:-1:-1;;;;;7000:219:3;;;;;;;;;;;;;;;;2284:194;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2284:194:3;-1:-1:-1;;;;;2284:194:3;;;;;;;;;;;;578:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;578:35:3;;;;;;;;;;;;;;;;;;;;;;;8161:532;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8161:532:3;-1:-1:-1;;;;;8161:532:3;;;;;;;;;;;5508:193;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5508:193:3;-1:-1:-1;;;;;5508:193:3;;;;;;;;;;;;;;3351:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3351:148:3;-1:-1:-1;;;;;3351:148:3;;;;;;;4339:169;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4339:169:3;-1:-1:-1;;;;;4339:169:3;;;;;;;;;9003:550;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9003:550:3;;;;;;;;;4514:988;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4514:988:3;-1:-1:-1;;;;;4514:988:3;;;;;;;;;;;;;2091:187;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2091:187:3;-1:-1:-1;;;;;2091:187:3;;;;;;;;;3861:228;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3861:228:3;-1:-1:-1;;;;;3861:228:3;;;;;;;;;535:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;535:37:3;;;;1345:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1345:81:3;;;;;;;;;7275:297;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7275:297:3;;;;;;;;;2958:387;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2958:387:3;-1:-1:-1;;;;;2958:387:3;;;;;;;;;;;;;;;;7632:483;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7632:483:3;-1:-1:-1;;;;;7632:483:3;;;;;;;;;;;4095:238;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4095:238:3;-1:-1:-1;;;;;4095:238:3;;;;;;;;;;;2484:468;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2484:468:3;-1:-1:-1;;;;;2484:468:3;;;;;;;;;;;;;1465:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1465:31:3;;;;;;;;-1:-1:-1;;;;;1465:31:3;;;;;;;;;;;;;;1172:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1172:51:3;;;;;3505:350;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3505:350:3;-1:-1:-1;;;;;3505:350:3;;;;;;;;;485:44;;;;;;;;;;;;;;;;;;;:::o;5707:1287::-;5858:4;5875:15;5948:13;6016:17;6157:20;5919:8;5929:7;5902:35;;;;;;-1:-1:-1;;;;;5902:35:3;-1:-1:-1;;;;;5902:35:3;-1:-1:-1;;;5902:35:3;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5902:35:3;;;5892:46;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;5892:46:3;;;;;;;;;;;;;;;;5875:63;;5991:6;5999:5;5974:31;;;;;;-1:-1:-1;;;;;5974:31:3;-1:-1:-1;;;;;5974:31:3;-1:-1:-1;;;5974:31:3;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5974:31:3;;;5964:42;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;5964:42:3;;;;;;;;;;;;6063:10;-1:-1:-1;;;6046:35:3;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;6046:35:3;;;;;;;;6036:46;;5964:42;;-1:-1:-1;6046:35:3;;-1:-1:-1;6046:35:3;;-1:-1:-1;6046:35:3;;6036:46;;;-1:-1:-1;6036:46:3;6046:35;6036:46;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;6036:46:3;;;;;;;;;;;;;-1:-1:-1;6100:16:3;;;:7;:16;;;;;:27;;;;;;;;:35;;;;;;;;;;6036:46;;-1:-1:-1;;;;6100:45:3;;-1:-1:-1;6092:54:3;;-1:-1:-1;6092:54:3;;;;;6180:7;;:28;;;;;;;;;;;;;;-1:-1:-1;;;;;6180:7:3;;;;:20;;:28;;;;;;;;;;;;;;;:7;;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;6180:28:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6180:28:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6180:28:3;;-1:-1:-1;6237:16:3;6227:26;;;6219:70;;;;;-1:-1:-1;;;;;6219:70:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;6307:7;;:31;;;;;;;;;;;;;;-1:-1:-1;;;;;6307:7:3;;;;:23;;:31;;;;;;;;;;;;;;;:7;;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;6307:31:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6307:31:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6307:31:3;6299:61;;;;;;;-1:-1:-1;;;;;6299:61:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;6415:25;;;;:16;:25;;;;;;6399:41;;;6391:78;;;;;-1:-1:-1;;;;;6391:78:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;6517:45;6537:7;6547:6;6555;6517:18;:45::i;:::-;6509:82;;;;;;;-1:-1:-1;;;;;6509:82:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;6635:25;;;;:16;:25;;;;;;;;:40;;;6685:21;;;;;;;;;:30;;;;;;;;:48;;;;;;;6743:28;;;;;;:46;;;;;;6838:16;;;:7;:16;;;;;:27;;;;;;;;:35;;;;;;;;;:47;;6685:48;6838:39;:47::i;:::-;6800:16;;;;:7;:16;;;;;;;;:27;;;;;;;;:35;;;;;;;;:85;;;;6901:64;;-1:-1:-1;;;;;6901:64:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6983:4:3;;5707:1287;-1:-1:-1;;;;;;;;;;5707:1287:3:o;1433:26::-;;;;:::o;7000:219::-;7124:4;7147:65;7163:4;7169:6;7177;7185;7193:7;7202:9;7147:15;:65::i;:::-;7140:72;7000:219;-1:-1:-1;;;;;;7000:219:3:o;2284:194::-;2380:14;2413:58;2426:5;2433:7;2442:6;2450:9;2461;2413:12;:58::i;:::-;2406:65;2284:194;-1:-1:-1;;;;2284:194:3:o;578:35::-;611:2;578:35;:::o;8161:532::-;8354:28;;;-1:-1:-1;;;;;;;;8354:28:3;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;8354:28:3;;;;;;;;8344:39;;8312:7;;;;;;8354:28;;;;8344:39;;;;8354:28;8344:39;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;8344:39:3;;;;;;;;;;;;;;;;8331:52;;8406:1;8393:14;;8417:199;8424:23;;;;;:63;;-1:-1:-1;8451:36:3;;;;8424:63;8417:199;;;8510:28;;;;:16;:28;;;;;;;;:32;;;;;;;;;8569:7;;:36;;-1:-1:-1;;;;;8569:36:3;;;;;;;;;;8503:39;;;;;-1:-1:-1;;;;;8569:7:3;;;;:24;;:36;;;;;8510:28;;8569:36;;;;;;;;;:7;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;8569:36:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8569:36:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8569:36:3;;-1:-1:-1;8417:199:3;;;8633:23;;;8625:32;;;;;5508:193;5608:4;5631:63;5647:4;5653:2;5657:6;5665;5673:9;5684;5631:15;:63::i;:::-;5624:70;5508:193;-1:-1:-1;;;;;5508:193:3:o;3351:148::-;3429:7;3455:37;3468:4;3474:6;3482:9;3455:12;:37::i;:::-;3448:44;3351:148;-1:-1:-1;;;3351:148:3:o;4339:169::-;4423:4;4446:55;4458:4;4464:6;4472;4480:9;4491;4446:11;:55::i;9003:550::-;9114:4;;;9152:16;9138:30;;;9130:73;;;;;-1:-1:-1;;;;;9130:73:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9226:1:3;;-1:-1:-1;9265:10:3;9286:239;9293:23;;9286:239;;9339:13;:25;;;;;;;;;;;:31;;;;;;;;;9397:7;;:36;;-1:-1:-1;;;;;9397:36:3;;;;;;;;;;9332:38;;;;;-1:-1:-1;;;;;9397:7:3;;;;:24;;:36;;;;;9339:25;;9397:36;;;;;;;;;:7;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;9397:36:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9397:36:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9397:36:3;;-1:-1:-1;9451:18:3;;;9447:68;;9496:4;9489:11;;;;9447:68;9286:239;;;9541:5;9534:12;;9003:550;;;;;;;;:::o;4514:988::-;4672:7;;:28;;;;;;;;;;;;;;4633:4;;;;;;-1:-1:-1;;;;;4672:7:3;;;;:20;;:28;;;;;;;;;;;;;;;4633:4;4672:7;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;4672:28:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4672:28:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4672:28:3;;-1:-1:-1;4729:16:3;4719:26;;;4711:78;;;;;-1:-1:-1;;;;;4711:78:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4807:7;;:31;;;;;;;;;;;;;;-1:-1:-1;;;;;4807:7:3;;;;:23;;:31;;;;;;;;;;;;;;;:7;;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;4807:31:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4807:31:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4807:31:3;4799:62;;;;;;;-1:-1:-1;;;;;4799:62:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;4899:37;;;-1:-1:-1;;;4916:10:3;4899:37;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;4899:37:3;;;;;;;;4889:48;;4899:37;;;;;4889:48;;;;4899:37;4889:48;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;4889:48:3;;;;;;;;;;;;;-1:-1:-1;4971:25:3;;;:16;:25;;;;;;;4889:48;;-1:-1:-1;;4955:41:3;;;;-1:-1:-1;4947:96:3;;-1:-1:-1;4947:96:3;;;;-1:-1:-1;;;;;4947:96:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5091:45;5111:7;5121:6;5129;5091:18;:45::i;:::-;5083:83;;;;;;;-1:-1:-1;;;;;5083:83:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;5210:25;;;;:16;:25;;;;;;;;:40;;;5260:21;;;;;;;;;:30;;;;;;;;;:48;;;;;;;5318:21;;;;;;5350:29;;-1:-1:-1;;;;;;;;5350:29:3;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;5350:29:3;;;;;;;;5340:40;;5301:6;;5260:21;;5210:25;;5350:29;;;;5340:40;;;;;5350:29;5340:40;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;5340:40:3;;;;;;;;;;;;;5318:63;;;;;;;;;-1:-1:-1;5318:63:3;;;-1:-1:-1;5318:63:3;:81;;;;;;;;;-1:-1:-1;5415:58:3;;5430:10;5415:58;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5415:58:3;;;-1:-1:-1;5415:58:3;;;;;;;;;;-1:-1:-1;5491:4:3;;4514:988;-1:-1:-1;;;;;;;4514:988:3:o;2091:187::-;2180:12;2211:60;2222:8;2232:7;2241;2250:9;2261;2211:10;:60::i;3861:228::-;4023:33;;;-1:-1:-1;;;;;;;;4023:33:3;;;;;;;;;;;3971:4;4023:33;;;;;;;;;26:21:-1;;;22:32;;;6:49;;4023:33:3;;;;;;;;4013:44;;3971:4;;3994:88;;4023:33;;;;;4013:44;;;;4023:33;4013:44;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4013:44:3;;;;;;;;;;;;;;;;4059:10;4071;3994:18;:88::i;535:37::-;;;;;;;;;;;;;;;;;;;:::o;1345:81::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7275:297::-;7389:7;;:31;;;;;;;;;;;;;;7365:4;;;;-1:-1:-1;;;;;7389:7:3;;;;:23;;:31;;;;;;;;;;;;;;;7365:4;7389:7;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;7389:31:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7389:31:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7389:31:3;:35;7381:44;;;;;;7456:24;;;;:16;:24;;;;;;;;7491:33;;-1:-1:-1;;;7508:10:3;7491:33;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;7491:33:3;;;;;;;;7481:44;;7537:6;;7456:24;;;;7491:33;;;;7481:44;;;;;7491:33;7481:44;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;7481:44:3;;;;;;;;;;;;;7456:70;;;;;;;;;;;;-1:-1:-1;7456:70:3;:88;;;;;;;;;-1:-1:-1;;;7275:297:3;-1:-1:-1;;;;;;7275:297:3:o;2958:387::-;3159:36;;;-1:-1:-1;;;;;;;;3159:36:3;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3159:36:3;;;;;;;;3149:47;;3097:14;;;;;;3159:36;;;;3149:47;;;;3159:36;3149:47;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3149:47:3;;;;;;;;;;;;;;;;3124:72;;3256:5;3263:11;3239:36;;;;;;-1:-1:-1;;;;;3239:36:3;-1:-1:-1;;;;;3239:36:3;-1:-1:-1;;;3239:36:3;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3239:36:3;;;3229:47;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;3229:47:3;;;;;;;;;;;;;-1:-1:-1;3293:21:3;;;:7;:21;;;;;:37;;;;;;;;;:45;;;;;;;;;;;;2958:387;-1:-1:-1;;;;;;;;;2958:387:3:o;7632:483::-;7803:28;;;-1:-1:-1;;;;;;;;7803:28:3;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;7803:28:3;;;;;;;;7793:39;;7764:4;;;;7803:28;;;;;7793:39;;;;7803:28;7793:39;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7793:39:3;;;;;;;;;;;;;;;;7780:52;;7842:245;7849:23;;;;;:63;;-1:-1:-1;7876:36:3;;;;7849:63;7842:245;;;7967:1;7932:28;;;:16;:28;;;;;;;;:32;;;;;;;;;:36;7928:86;;;7995:4;7988:11;;;;7928:86;8040:7;;:36;;;-1:-1:-1;;;;;8040:36:3;;;;;;;;;;-1:-1:-1;;;;;8040:7:3;;;;:24;;:36;;;;;;;;;;;;;;;:7;;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;8040:36:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8040:36:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8040:36:3;;-1:-1:-1;7842:245:3;;;8103:5;8096:12;;7632:483;;;;;;;;:::o;4095:238::-;4273:27;;;-1:-1:-1;;;;;;;;4273:27:3;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;4273:27:3;;;;;;;;4263:38;;4221:4;;4244:82;;4273:27;;;;;4263:38;;;;4273:27;4263:38;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4263:38:3;;;;;;;;;;;;;;;;4303:10;4315;4244:18;:82::i;2484:468::-;2668:38;;;-1:-1:-1;;;;;;;;2668:38:3;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;2668:38:3;;;;;;;;2658:49;;2613:12;;;;;;2668:38;;;;2658:49;;;;2668:38;2658:49;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;2658:49:3;;;;;;;;;;;;2762:10;-1:-1:-1;;;2745:37:3;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;2745:37:3;;;;;;;;2735:48;;2658:49;;-1:-1:-1;2745:37:3;;-1:-1:-1;2745:37:3;;-1:-1:-1;2745:37:3;;2735:48;;;-1:-1:-1;2735:48:3;2745:37;2735:48;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;246:30;340:21;;;311:9;;295:26;;;;377:20;365:33;;2735:48:3;;;;;;;;;;;;-1:-1:-1;2793:16:3;;;:7;:16;;;;;:28;;;;;;;;:37;;;;;;;;:47;;;2855:69;;;;;;;;;;;;;;;;;;;;;;;2735:48;;-1:-1:-1;;;;;;2855:69:3;;;-1:-1:-1;2864:10:3;;-1:-1:-1;2855:69:3;;;;;;;;-1:-1:-1;2855:69:3;-1:-1:-1;2941:4:3;;2484:468;-1:-1:-1;;;;;;;2484:468:3:o;1465:31::-;;;-1:-1:-1;;;;;1465:31:3;;:::o;1172:51::-;;;;;;;;;;;;;:::o;3505:350::-;3600:7;;3643:177;3650:19;;3643:177;;3692:13;:21;;;;;;;;;;;3724:28;;-1:-1:-1;;;;;;;;3724:28:3;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3724:28:3;;;;;;;;3714:39;;3692:21;;:13;3724:28;;;;;3714:39;;;;3724:28;3714:39;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;3714:39:3;;;;;;;;;;;;;3692:62;;;;;;;;;-1:-1:-1;3692:62:3;;;-1:-1:-1;3692:62:3;;;;3777:7;;:32;;-1:-1:-1;;;;;3777:32:3;;;;;;;;;;3685:69;;;;;-1:-1:-1;;;;;3777:7:3;;;;:24;;:32;;;;;-1:-1:-1;263:2;;-1:-1;3777:32:3;;;;;;;;;;:7;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;3777:32:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3777:32:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3777:32:3;;-1:-1:-1;3643:177:3;;1060:116:10;1120:7;1142:8;;;;1135:16;;;;-1:-1:-1;1164:7:10;;;1060:116::o",
  "source": "pragma solidity ^0.4.22;\nimport \"./ForkonomicSystem.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\n\ncontract ForkonomicToken {\n    using SafeMath for uint256;\n\n    event Approval(address indexed _owner, bytes32 ownerBox, address indexed _spender,\n        bytes32 spenderBox, uint _value, bytes32 branch);\n\n    event Transfer(address indexed from,\n        address to,\n        bytes32 fromBox,\n        bytes32 toBox,\n        uint value,\n        bytes32 branch);\n\n    string public constant name = \"RealityToken\";\n    string public constant symbol = \"RLT\";\n    uint8 public constant decimals = 18;  // 18 is the most common number of decimal places\n    \n    bytes32 constant NULL_HASH = \"\";\n\n    // users balance changes are stored in the following mapping\n    mapping(bytes32 => mapping(bytes32 => int256)) balanceChange; // user-account debits and credits\n\n    // withdraws of tokens from other smart contracts can be stored here\n    mapping(bytes32 => mapping(bytes32 => int256)) withdrawalRecord;\n\n    // Spends, which may cause debits, can only go forwards.\n    // That way when we check if you have enough to spend we only have to go backwards.\n    mapping(bytes32 => uint256) public lastDebitWindows; // index of last user debits to stop you going backwards\n\n    // allowances, as we have them in the ERC20 protocol \n    mapping(bytes32 => mapping(bytes32 => mapping(bytes32=> uint256))) public allowed;\n\n    uint256 public totalSupply;\n    ForkonomicSystem public fSystem;\n\n    constructor(ForkonomicSystem _fSystem, address[] initalFundingContracts)\n    public {\n\n        fSystem = _fSystem;\n        bytes32 genesisBranchHash = fSystem.genesisBranchHash();\n        uint256 numFunded = initalFundingContracts.length;\n\n        require(numFunded < 12, \" too many funding accounts\");\n\n        for (uint256 i=0; i < numFunded; i++) {\n            bytes32 account = keccak256(abi.encodePacked(initalFundingContracts[i], NULL_HASH));\n            balanceChange[genesisBranchHash][account] += 210000000000000;\n            totalSupply += 210000000000000;\n        }\n    }\n\n    function approve(address _spender, uint256 _amount, bytes32 _branch)\n    public returns (bool success) {\n        return approveBox(_spender, _amount, _branch, NULL_HASH, NULL_HASH);\n    }\n\n    function allowance(address owner, address spender, bytes32 branch)\n    public constant returns (uint remaining) {\n        return allowanceBox(owner, spender, branch, NULL_HASH, NULL_HASH);\n    }\n\n    function approveBox(address _spender, uint256 _amount, bytes32 _branch, bytes32 fromBox, bytes32 spenderBox)\n    public returns (bool success) {\n        bytes32 boxSpender = keccak256(abi.encodePacked(_spender, spenderBox));\n        bytes32 boxFrom = keccak256(abi.encodePacked(msg.sender, fromBox));\n        allowed[boxFrom][boxSpender][_branch] = _amount;\n        emit Approval(msg.sender, fromBox, _spender, spenderBox, _amount, _branch);\n        return true;\n    }\n\n    function allowanceBox(address owner, address spender, bytes32 branch, bytes32 senderBox, bytes32 receiverBox)\n    public constant returns (uint remaining) {\n\n        bytes32 spenderAccount = keccak256(abi.encodePacked(spender, senderBox));\n        bytes32 ownerAccount = keccak256(abi.encodePacked(owner, receiverBox));\n        return allowed[ownerAccount][spenderAccount][branch];\n    }\n\n    function balanceOf(address addr, bytes32 branch)\n    public constant returns (uint256) {\n        return balanceOfBox(addr, branch, NULL_HASH);\n    }\n\n    function balanceOfBox(address addr, bytes32 branch, bytes32 acct)\n    public constant returns (uint256) {\n        int256 bal = 0;\n        while (branch != NULL_HASH) {\n            bal += balanceChange[branch][keccak256(abi.encodePacked(addr, acct))];\n            branch = fSystem.branchParentHash(branch);\n        }\n        return uint256(bal);\n    }\n\n    function isAmountSpendable(address addr, uint256 minBalance, bytes32 branchHash)\n    public constant returns (bool) {\n        return _isAmountSpendable(keccak256(abi.encodePacked(addr, NULL_HASH)), minBalance, branchHash);\n    }\n\n    function isAmountSpendableBox(address addr, uint256 minBalance, bytes32 branchHash, bytes32 box)\n    public constant returns (bool) {\n        return _isAmountSpendable(keccak256(abi.encodePacked(addr, box)), minBalance, branchHash);\n    }\n\n    function transfer(address addr, uint256 amount, bytes32 branch)\n    public returns (bool) {\n        return boxTransfer(addr, amount, branch, NULL_HASH, NULL_HASH);\n    }\n\n    function boxTransfer(address addr, uint256 amount, bytes32 branch, bytes32 fromBox, bytes32 toBox)\n    public returns (bool) {\n        uint256 branchWindow = fSystem.branchWindow(branch);\n\n        require(amount <= 2100000000000000, \" sending amount bigger than totalSupply\");\n        require(fSystem.doesBranchExist(branch), \" branch must exist\"); \n        bytes32 account =keccak256(abi.encodePacked(msg.sender, fromBox));\n        require(branchWindow >= lastDebitWindows[account], \" branchWindow >= lastDebitWindows[account]\");  // debits can't go backwards\n        require(_isAmountSpendable((account), amount, branch), \" amount was not spendable\");  // can only spend what you have\n\n        lastDebitWindows[account] = branchWindow;\n        balanceChange[branch][account] -= int256(amount);\n        balanceChange[branch][keccak256(abi.encodePacked(addr, toBox))] += int256(amount);\n\n        emit Transfer(addr, msg.sender, fromBox, toBox, amount, branch);\n\n        return true;\n    }\n\n    function transferFrom(address from, address to, uint256 amount, bytes32 branch)\n    public returns (bool) {\n        return boxTransferFrom(from, to, amount, branch, NULL_HASH, NULL_HASH);\n    }\n\n    function boxTransferFrom(address fromAddr, address toAddr, uint256 amount,\n        bytes32 branch, bytes32 fromBox, bytes32 toBox)\n    public returns (bool) {\n\n        bytes32 boxFrom =keccak256(abi.encodePacked(fromAddr, fromBox));\n        bytes32 boxTo = keccak256(abi.encodePacked(toAddr, toBox));\n        bytes32 boxSender = keccak256(abi.encodePacked(msg.sender, toBox));\n        require(allowed[boxFrom][boxSender][branch] >= amount);\n\n        uint256 branchWindow = fSystem.branchWindow(branch);\n\n        require(amount <= 2100000000000000, \" amount higher than totalSupply\");\n        require(fSystem.doesBranchExist(branch), \"branch must exist\"); // branch must exist\n        require(branchWindow >= lastDebitWindows[boxFrom], \"debits cant go backwards\");  // debits can't go backwards\n        require(_isAmountSpendable((boxFrom), amount, branch), \"amount must be spendable\");  // can only spend what you have\n\n        lastDebitWindows[boxFrom] = branchWindow;\n        balanceChange[branch][boxFrom] -= int256(amount);\n        balanceChange[branch][boxTo] += int256(amount);\n\n        allowed[boxFrom][boxSender][branch] = allowed[boxFrom][boxSender][branch].sub(amount);\n\n        emit Transfer(fromAddr, toAddr, NULL_HASH, NULL_HASH, amount, branch);\n\n        return true;\n    }\n\n    function boxTransferFrom(address addr, address addrTo, uint256 amount, bytes32 branch, bytes32 fromBox)\n    public returns (bool) {\n        return boxTransferFrom(addr, addrTo, amount, branch, fromBox, NULL_HASH);\n    }\n\n    // record any withdrawal on a certain branch \n    function recordBoxWithdrawal(bytes32 box, uint256 amount, bytes32 branch) public returns (bool) {\n        require(fSystem.branchTimestamp(branch) > 0); // branch must exist\n        withdrawalRecord[branch][keccak256(abi.encodePacked(msg.sender, box))] += int256(amount);\n        return true;\n    }\n\n    // check whether a withdrawal has already happend\n    function hasBoxWithdrawal(address owner, bytes32 box, bytes32 branchHash, bytes32 earliestPossibleBranch) \n    public view returns (bool) {\n        bytes32 id = keccak256(abi.encodePacked(owner, box));\n        while (branchHash != NULL_HASH && branchHash != earliestPossibleBranch) {\n            if (withdrawalRecord[branchHash][id] > 0) {\n                return true;\n            }\n            branchHash = fSystem.branchParentHash(branchHash);\n        }\n        return false;\n    }\n\n    // check the sum of all withdrawals\n    function recordedBoxWithdrawalAmount(address owner, bytes32 box,\n        bytes32 branchHash, bytes32 earliestPossibleBranch) \n    public view returns (uint256) {\n        bytes32 id = keccak256(abi.encodePacked(owner, box));\n        int256 bal = 0;\n        while (branchHash != NULL_HASH && branchHash != earliestPossibleBranch) {\n            bal += withdrawalRecord[branchHash][id];\n            branchHash = fSystem.branchParentHash(branchHash);\n        }\n        require(branchHash != NULL_HASH);\n        return uint256(bal);\n    }\n\n    // Crawl up towards the root of the tree until we get enough, or return false if we never do.\n    // You never have negative total balance above you, so if you have enough credit at any point then return.\n    // This uses less gas than balanceOfAbove, which always has to go all the way to the root.\n    function _isAmountSpendable(bytes32 acct, uint256 minBalance, bytes32 branchHash)\n    public constant returns (bool) {\n        require(minBalance <= 2100000000000000, \"amount bigger than totalSupply\");\n        int256 bal = 0;\n        int256 iminBalance = int256(minBalance);\n        while (branchHash != NULL_HASH) {\n            bal += balanceChange[branchHash][acct];\n            branchHash = fSystem.branchParentHash(branchHash);\n            if (bal >= iminBalance) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n}\n",
  "sourcePath": "/home/josojo/reality/subjectivocracy/contracts/ForkonomicToken.sol",
  "ast": {
    "absolutePath": "/home/josojo/reality/subjectivocracy/contracts/ForkonomicToken.sol",
    "exportedSymbols": {
      "ForkonomicToken": [
        2262
      ]
    },
    "id": 2263,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1315,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".22"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:3"
      },
      {
        "absolutePath": "/home/josojo/reality/subjectivocracy/contracts/ForkonomicSystem.sol",
        "file": "./ForkonomicSystem.sol",
        "id": 1316,
        "nodeType": "ImportDirective",
        "scope": 2263,
        "sourceUnit": 1314,
        "src": "25:32:3",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol",
        "file": "openzeppelin-solidity/contracts/math/SafeMath.sol",
        "id": 1317,
        "nodeType": "ImportDirective",
        "scope": 2263,
        "sourceUnit": 4961,
        "src": "58:59:3",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2262,
        "linearizedBaseContracts": [
          2262
        ],
        "name": "ForkonomicToken",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 1320,
            "libraryName": {
              "contractScope": null,
              "id": 1318,
              "name": "SafeMath",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4960,
              "src": "157:8:3",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SafeMath_$4960",
                "typeString": "library SafeMath"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "151:27:3",
            "typeName": {
              "id": 1319,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "170:7:3",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1334,
            "name": "Approval",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1333,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1322,
                  "indexed": true,
                  "name": "_owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1334,
                  "src": "199:22:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1321,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "199:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1324,
                  "indexed": false,
                  "name": "ownerBox",
                  "nodeType": "VariableDeclaration",
                  "scope": 1334,
                  "src": "223:16:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1323,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "223:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1326,
                  "indexed": true,
                  "name": "_spender",
                  "nodeType": "VariableDeclaration",
                  "scope": 1334,
                  "src": "241:24:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1325,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "241:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1328,
                  "indexed": false,
                  "name": "spenderBox",
                  "nodeType": "VariableDeclaration",
                  "scope": 1334,
                  "src": "275:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1327,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "275:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1330,
                  "indexed": false,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1334,
                  "src": "295:11:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1329,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "295:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1332,
                  "indexed": false,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 1334,
                  "src": "308:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1331,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "308:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "198:125:3"
            },
            "src": "184:140:3"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1348,
            "name": "Transfer",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1347,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1336,
                  "indexed": true,
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "scope": 1348,
                  "src": "345:20:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1335,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "345:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1338,
                  "indexed": false,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 1348,
                  "src": "375:10:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1337,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "375:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1340,
                  "indexed": false,
                  "name": "fromBox",
                  "nodeType": "VariableDeclaration",
                  "scope": 1348,
                  "src": "395:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1339,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "395:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1342,
                  "indexed": false,
                  "name": "toBox",
                  "nodeType": "VariableDeclaration",
                  "scope": 1348,
                  "src": "420:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1341,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "420:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1344,
                  "indexed": false,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1348,
                  "src": "443:10:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1343,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "443:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1346,
                  "indexed": false,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 1348,
                  "src": "463:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1345,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "463:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "344:134:3"
            },
            "src": "330:149:3"
          },
          {
            "constant": true,
            "id": 1351,
            "name": "name",
            "nodeType": "VariableDeclaration",
            "scope": 2262,
            "src": "485:44:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1349,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "485:6:3",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "5265616c697479546f6b656e",
              "id": 1350,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "515:14:3",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_288b541dcd6823f25ab307bdfa655ac2119d11c7339e41792ae1c5b1836d83e9",
                "typeString": "literal_string \"RealityToken\""
              },
              "value": "RealityToken"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1354,
            "name": "symbol",
            "nodeType": "VariableDeclaration",
            "scope": 2262,
            "src": "535:37:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1352,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "535:6:3",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "524c54",
              "id": 1353,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "567:5:3",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_9c081cc912e332d6ab55711d4135b50cb0a1ea4e7373bdaaec428a25d29cea8f",
                "typeString": "literal_string \"RLT\""
              },
              "value": "RLT"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1357,
            "name": "decimals",
            "nodeType": "VariableDeclaration",
            "scope": 2262,
            "src": "578:35:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 1355,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "578:5:3",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "3138",
              "id": 1356,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "611:2:3",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_18_by_1",
                "typeString": "int_const 18"
              },
              "value": "18"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1360,
            "name": "NULL_HASH",
            "nodeType": "VariableDeclaration",
            "scope": 2262,
            "src": "675:31:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 1358,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "675:7:3",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "",
              "id": 1359,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "704:2:3",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                "typeString": "literal_string \"\""
              },
              "value": ""
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1366,
            "name": "balanceChange",
            "nodeType": "VariableDeclaration",
            "scope": 2262,
            "src": "778:60:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
              "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
            },
            "typeName": {
              "id": 1365,
              "keyType": {
                "id": 1361,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "786:7:3",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "778:46:3",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
                "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
              },
              "valueType": {
                "id": 1364,
                "keyType": {
                  "id": 1362,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "805:7:3",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "nodeType": "Mapping",
                "src": "797:26:3",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                  "typeString": "mapping(bytes32 => int256)"
                },
                "valueType": {
                  "id": 1363,
                  "name": "int256",
                  "nodeType": "ElementaryTypeName",
                  "src": "816:6:3",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  }
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1372,
            "name": "withdrawalRecord",
            "nodeType": "VariableDeclaration",
            "scope": 2262,
            "src": "953:63:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
              "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
            },
            "typeName": {
              "id": 1371,
              "keyType": {
                "id": 1367,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "961:7:3",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "953:46:3",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
                "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
              },
              "valueType": {
                "id": 1370,
                "keyType": {
                  "id": 1368,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "980:7:3",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "nodeType": "Mapping",
                "src": "972:26:3",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                  "typeString": "mapping(bytes32 => int256)"
                },
                "valueType": {
                  "id": 1369,
                  "name": "int256",
                  "nodeType": "ElementaryTypeName",
                  "src": "991:6:3",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  }
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1376,
            "name": "lastDebitWindows",
            "nodeType": "VariableDeclaration",
            "scope": 2262,
            "src": "1172:51:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
              "typeString": "mapping(bytes32 => uint256)"
            },
            "typeName": {
              "id": 1375,
              "keyType": {
                "id": 1373,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "1180:7:3",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "1172:27:3",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                "typeString": "mapping(bytes32 => uint256)"
              },
              "valueType": {
                "id": 1374,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1191:7:3",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1384,
            "name": "allowed",
            "nodeType": "VariableDeclaration",
            "scope": 2262,
            "src": "1345:81:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$",
              "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(bytes32 => uint256)))"
            },
            "typeName": {
              "id": 1383,
              "keyType": {
                "id": 1377,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "1353:7:3",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "1345:66:3",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$",
                "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(bytes32 => uint256)))"
              },
              "valueType": {
                "id": 1382,
                "keyType": {
                  "id": 1378,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "1372:7:3",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "nodeType": "Mapping",
                "src": "1364:46:3",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
                  "typeString": "mapping(bytes32 => mapping(bytes32 => uint256))"
                },
                "valueType": {
                  "id": 1381,
                  "keyType": {
                    "id": 1379,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1391:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "1383:26:3",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                    "typeString": "mapping(bytes32 => uint256)"
                  },
                  "valueType": {
                    "id": 1380,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1401:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1386,
            "name": "totalSupply",
            "nodeType": "VariableDeclaration",
            "scope": 2262,
            "src": "1433:26:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1385,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1433:7:3",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1388,
            "name": "fSystem",
            "nodeType": "VariableDeclaration",
            "scope": 2262,
            "src": "1465:31:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
              "typeString": "contract ForkonomicSystem"
            },
            "typeName": {
              "contractScope": null,
              "id": 1387,
              "name": "ForkonomicSystem",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1313,
              "src": "1465:16:3",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                "typeString": "contract ForkonomicSystem"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1454,
              "nodeType": "Block",
              "src": "1587:498:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1398,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1396,
                      "name": "fSystem",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1388,
                      "src": "1598:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                        "typeString": "contract ForkonomicSystem"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1397,
                      "name": "_fSystem",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1390,
                      "src": "1608:8:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                        "typeString": "contract ForkonomicSystem"
                      }
                    },
                    "src": "1598:18:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                      "typeString": "contract ForkonomicSystem"
                    }
                  },
                  "id": 1399,
                  "nodeType": "ExpressionStatement",
                  "src": "1598:18:3"
                },
                {
                  "assignments": [
                    1401
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1401,
                      "name": "genesisBranchHash",
                      "nodeType": "VariableDeclaration",
                      "scope": 1455,
                      "src": "1626:25:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1400,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "1626:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1405,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1402,
                        "name": "fSystem",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1388,
                        "src": "1654:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                          "typeString": "contract ForkonomicSystem"
                        }
                      },
                      "id": 1403,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "genesisBranchHash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 942,
                      "src": "1654:25:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                        "typeString": "function () view external returns (bytes32)"
                      }
                    },
                    "id": 1404,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1654:27:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1626:55:3"
                },
                {
                  "assignments": [
                    1407
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1407,
                      "name": "numFunded",
                      "nodeType": "VariableDeclaration",
                      "scope": 1455,
                      "src": "1691:17:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1406,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1691:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1410,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 1408,
                      "name": "initalFundingContracts",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1393,
                      "src": "1711:22:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "id": 1409,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "1711:29:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1691:49:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1414,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1412,
                          "name": "numFunded",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1407,
                          "src": "1759:9:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "3132",
                          "id": 1413,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1771:2:3",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_12_by_1",
                            "typeString": "int_const 12"
                          },
                          "value": "12"
                        },
                        "src": "1759:14:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "20746f6f206d616e792066756e64696e67206163636f756e7473",
                        "id": 1415,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1775:28:3",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_abc9a6e5adac5d46a04cbea20609d4fa429fa4ec6282474bf7fe2733456825b4",
                          "typeString": "literal_string \" too many funding accounts\""
                        },
                        "value": " too many funding accounts"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_abc9a6e5adac5d46a04cbea20609d4fa429fa4ec6282474bf7fe2733456825b4",
                          "typeString": "literal_string \" too many funding accounts\""
                        }
                      ],
                      "id": 1411,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "1751:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1416,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1751:53:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1417,
                  "nodeType": "ExpressionStatement",
                  "src": "1751:53:3"
                },
                {
                  "body": {
                    "id": 1452,
                    "nodeType": "Block",
                    "src": "1853:226:3",
                    "statements": [
                      {
                        "assignments": [
                          1429
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 1429,
                            "name": "account",
                            "nodeType": "VariableDeclaration",
                            "scope": 1455,
                            "src": "1867:15:3",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 1428,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "1867:7:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 1439,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 1433,
                                    "name": "initalFundingContracts",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1393,
                                    "src": "1912:22:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 1435,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 1434,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1419,
                                    "src": "1935:1:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1912:25:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 1436,
                                  "name": "NULL_HASH",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1360,
                                  "src": "1939:9:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1431,
                                  "name": "abi",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5380,
                                  "src": "1895:3:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_abi",
                                    "typeString": "abi"
                                  }
                                },
                                "id": 1432,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberName": "encodePacked",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "1895:16:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function () pure returns (bytes memory)"
                                }
                              },
                              "id": 1437,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1895:54:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 1430,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5387,
                            "src": "1885:9:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                              "typeString": "function () pure returns (bytes32)"
                            }
                          },
                          "id": 1438,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1885:65:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1867:83:3"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 1446,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 1440,
                                "name": "balanceChange",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1366,
                                "src": "1964:13:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
                                  "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
                                }
                              },
                              "id": 1443,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 1441,
                                "name": "genesisBranchHash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1401,
                                "src": "1978:17:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "1964:32:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                                "typeString": "mapping(bytes32 => int256)"
                              }
                            },
                            "id": 1444,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 1442,
                              "name": "account",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1429,
                              "src": "1997:7:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "1964:41:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "323130303030303030303030303030",
                            "id": 1445,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2009:15:3",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_210000000000000_by_1",
                              "typeString": "int_const 210000000000000"
                            },
                            "value": "210000000000000"
                          },
                          "src": "1964:60:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 1447,
                        "nodeType": "ExpressionStatement",
                        "src": "1964:60:3"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 1450,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 1448,
                            "name": "totalSupply",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1386,
                            "src": "2038:11:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "323130303030303030303030303030",
                            "id": 1449,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2053:15:3",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_210000000000000_by_1",
                              "typeString": "int_const 210000000000000"
                            },
                            "value": "210000000000000"
                          },
                          "src": "2038:30:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 1451,
                        "nodeType": "ExpressionStatement",
                        "src": "2038:30:3"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1424,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1422,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1419,
                      "src": "1833:1:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1423,
                      "name": "numFunded",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1407,
                      "src": "1837:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1833:13:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1453,
                  "initializationExpression": {
                    "assignments": [
                      1419
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 1419,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 1455,
                        "src": "1820:9:3",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1418,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1820:7:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 1421,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1420,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1830:1:3",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "1820:11:3"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1426,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "1848:3:3",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 1425,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1419,
                        "src": "1848:1:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 1427,
                    "nodeType": "ExpressionStatement",
                    "src": "1848:3:3"
                  },
                  "nodeType": "ForStatement",
                  "src": "1815:264:3"
                }
              ]
            },
            "documentation": null,
            "id": 1455,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1394,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1390,
                  "name": "_fSystem",
                  "nodeType": "VariableDeclaration",
                  "scope": 1455,
                  "src": "1515:25:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                    "typeString": "contract ForkonomicSystem"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1389,
                    "name": "ForkonomicSystem",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1313,
                    "src": "1515:16:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                      "typeString": "contract ForkonomicSystem"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1393,
                  "name": "initalFundingContracts",
                  "nodeType": "VariableDeclaration",
                  "scope": 1455,
                  "src": "1542:32:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1391,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "1542:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 1392,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "1542:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1514:61:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 1395,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1587:0:3"
            },
            "scope": 2262,
            "src": "1503:582:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1474,
              "nodeType": "Block",
              "src": "2194:84:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1467,
                        "name": "_spender",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1457,
                        "src": "2222:8:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1468,
                        "name": "_amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1459,
                        "src": "2232:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1469,
                        "name": "_branch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1461,
                        "src": "2241:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1470,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "2250:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1471,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "2261:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1466,
                      "name": "approveBox",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1554,
                      "src": "2211:10:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (address,uint256,bytes32,bytes32,bytes32) returns (bool)"
                      }
                    },
                    "id": 1472,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2211:60:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 1465,
                  "id": 1473,
                  "nodeType": "Return",
                  "src": "2204:67:3"
                }
              ]
            },
            "documentation": null,
            "id": 1475,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "approve",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1462,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1457,
                  "name": "_spender",
                  "nodeType": "VariableDeclaration",
                  "scope": 1475,
                  "src": "2108:16:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1456,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2108:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1459,
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 1475,
                  "src": "2126:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1458,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2126:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1461,
                  "name": "_branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 1475,
                  "src": "2143:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1460,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2143:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2107:52:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 1465,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1464,
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "scope": 1475,
                  "src": "2180:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1463,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2180:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2179:14:3"
            },
            "scope": 2262,
            "src": "2091:187:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1494,
              "nodeType": "Block",
              "src": "2396:82:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1487,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1477,
                        "src": "2426:5:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1488,
                        "name": "spender",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1479,
                        "src": "2433:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1489,
                        "name": "branch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1481,
                        "src": "2442:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1490,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "2450:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1491,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "2461:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1486,
                      "name": "allowanceBox",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1598,
                      "src": "2413:12:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$",
                        "typeString": "function (address,address,bytes32,bytes32,bytes32) view returns (uint256)"
                      }
                    },
                    "id": 1492,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2413:58:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1485,
                  "id": 1493,
                  "nodeType": "Return",
                  "src": "2406:65:3"
                }
              ]
            },
            "documentation": null,
            "id": 1495,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "allowance",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1482,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1477,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1495,
                  "src": "2303:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1476,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2303:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1479,
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "scope": 1495,
                  "src": "2318:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1478,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2318:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1481,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 1495,
                  "src": "2335:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1480,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2335:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2302:48:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 1485,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1484,
                  "name": "remaining",
                  "nodeType": "VariableDeclaration",
                  "scope": 1495,
                  "src": "2380:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1483,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2380:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2379:16:3"
            },
            "scope": 2262,
            "src": "2284:194:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1553,
              "nodeType": "Block",
              "src": "2627:325:3",
              "statements": [
                {
                  "assignments": [
                    1511
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1511,
                      "name": "boxSpender",
                      "nodeType": "VariableDeclaration",
                      "scope": 1554,
                      "src": "2637:18:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1510,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "2637:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1519,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1515,
                            "name": "_spender",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1497,
                            "src": "2685:8:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1516,
                            "name": "spenderBox",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1505,
                            "src": "2695:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1513,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "2668:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1514,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "2668:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1517,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2668:38:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1512,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "2658:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 1518,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2658:49:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2637:70:3"
                },
                {
                  "assignments": [
                    1521
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1521,
                      "name": "boxFrom",
                      "nodeType": "VariableDeclaration",
                      "scope": 1554,
                      "src": "2717:15:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1520,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "2717:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1530,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1525,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5393,
                              "src": "2762:3:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 1526,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2762:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1527,
                            "name": "fromBox",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1503,
                            "src": "2774:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1523,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "2745:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1524,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "2745:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1528,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2745:37:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1522,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "2735:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 1529,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2735:48:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2717:66:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1539,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 1531,
                            "name": "allowed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1384,
                            "src": "2793:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$",
                              "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(bytes32 => uint256)))"
                            }
                          },
                          "id": 1535,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 1532,
                            "name": "boxFrom",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1521,
                            "src": "2801:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2793:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
                            "typeString": "mapping(bytes32 => mapping(bytes32 => uint256))"
                          }
                        },
                        "id": 1536,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1533,
                          "name": "boxSpender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1511,
                          "src": "2810:10:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2793:28:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 1537,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1534,
                        "name": "_branch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1501,
                        "src": "2822:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2793:37:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1538,
                      "name": "_amount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1499,
                      "src": "2833:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2793:47:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1540,
                  "nodeType": "ExpressionStatement",
                  "src": "2793:47:3"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1542,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5393,
                          "src": "2864:3:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1543,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2864:10:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1544,
                        "name": "fromBox",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1503,
                        "src": "2876:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1545,
                        "name": "_spender",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1497,
                        "src": "2885:8:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1546,
                        "name": "spenderBox",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1505,
                        "src": "2895:10:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1547,
                        "name": "_amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1499,
                        "src": "2907:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1548,
                        "name": "_branch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1501,
                        "src": "2916:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1541,
                      "name": "Approval",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1334,
                      "src": "2855:8:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_bytes32_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,bytes32,address,bytes32,uint256,bytes32)"
                      }
                    },
                    "id": 1549,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2855:69:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1550,
                  "nodeType": "EmitStatement",
                  "src": "2850:74:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 1551,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2941:4:3",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 1509,
                  "id": 1552,
                  "nodeType": "Return",
                  "src": "2934:11:3"
                }
              ]
            },
            "documentation": null,
            "id": 1554,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "approveBox",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1506,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1497,
                  "name": "_spender",
                  "nodeType": "VariableDeclaration",
                  "scope": 1554,
                  "src": "2504:16:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1496,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2504:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1499,
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 1554,
                  "src": "2522:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1498,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2522:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1501,
                  "name": "_branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 1554,
                  "src": "2539:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1500,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2539:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1503,
                  "name": "fromBox",
                  "nodeType": "VariableDeclaration",
                  "scope": 1554,
                  "src": "2556:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1502,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2556:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1505,
                  "name": "spenderBox",
                  "nodeType": "VariableDeclaration",
                  "scope": 1554,
                  "src": "2573:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1504,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2573:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2503:89:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 1509,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1508,
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "scope": 1554,
                  "src": "2613:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1507,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2613:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2612:14:3"
            },
            "scope": 2262,
            "src": "2484:468:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1597,
              "nodeType": "Block",
              "src": "3113:232:3",
              "statements": [
                {
                  "assignments": [
                    1570
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1570,
                      "name": "spenderAccount",
                      "nodeType": "VariableDeclaration",
                      "scope": 1598,
                      "src": "3124:22:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1569,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3124:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1578,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1574,
                            "name": "spender",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1558,
                            "src": "3176:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1575,
                            "name": "senderBox",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1562,
                            "src": "3185:9:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1572,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "3159:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1573,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3159:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1576,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3159:36:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1571,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "3149:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 1577,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3149:47:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3124:72:3"
                },
                {
                  "assignments": [
                    1580
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1580,
                      "name": "ownerAccount",
                      "nodeType": "VariableDeclaration",
                      "scope": 1598,
                      "src": "3206:20:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1579,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3206:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1588,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1584,
                            "name": "owner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1556,
                            "src": "3256:5:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1585,
                            "name": "receiverBox",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1564,
                            "src": "3263:11:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1582,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "3239:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1583,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3239:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1586,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3239:36:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1581,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "3229:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 1587,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3229:47:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3206:70:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1589,
                          "name": "allowed",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1384,
                          "src": "3293:7:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$",
                            "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(bytes32 => uint256)))"
                          }
                        },
                        "id": 1591,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1590,
                          "name": "ownerAccount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1580,
                          "src": "3301:12:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3293:21:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
                          "typeString": "mapping(bytes32 => mapping(bytes32 => uint256))"
                        }
                      },
                      "id": 1593,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1592,
                        "name": "spenderAccount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1570,
                        "src": "3315:14:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "3293:37:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                        "typeString": "mapping(bytes32 => uint256)"
                      }
                    },
                    "id": 1595,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1594,
                      "name": "branch",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1560,
                      "src": "3331:6:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "3293:45:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1568,
                  "id": 1596,
                  "nodeType": "Return",
                  "src": "3286:52:3"
                }
              ]
            },
            "documentation": null,
            "id": 1598,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "allowanceBox",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1565,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1556,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1598,
                  "src": "2980:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1555,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2980:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1558,
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "scope": 1598,
                  "src": "2995:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1557,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2995:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1560,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 1598,
                  "src": "3012:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1559,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3012:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1562,
                  "name": "senderBox",
                  "nodeType": "VariableDeclaration",
                  "scope": 1598,
                  "src": "3028:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1561,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3028:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1564,
                  "name": "receiverBox",
                  "nodeType": "VariableDeclaration",
                  "scope": 1598,
                  "src": "3047:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1563,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3047:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2979:88:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 1568,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1567,
                  "name": "remaining",
                  "nodeType": "VariableDeclaration",
                  "scope": 1598,
                  "src": "3097:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1566,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3097:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3096:16:3"
            },
            "scope": 2262,
            "src": "2958:387:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1613,
              "nodeType": "Block",
              "src": "3438:61:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1608,
                        "name": "addr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1600,
                        "src": "3468:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1609,
                        "name": "branch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1602,
                        "src": "3474:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1610,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "3482:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1607,
                      "name": "balanceOfBox",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1660,
                      "src": "3455:12:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$",
                        "typeString": "function (address,bytes32,bytes32) view returns (uint256)"
                      }
                    },
                    "id": 1611,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3455:37:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1606,
                  "id": 1612,
                  "nodeType": "Return",
                  "src": "3448:44:3"
                }
              ]
            },
            "documentation": null,
            "id": 1614,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "balanceOf",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1603,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1600,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 1614,
                  "src": "3370:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1599,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3370:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1602,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 1614,
                  "src": "3384:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1601,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3384:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3369:30:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 1606,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1605,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1614,
                  "src": "3429:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1604,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3429:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3428:9:3"
            },
            "scope": 2262,
            "src": "3351:148:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1659,
              "nodeType": "Block",
              "src": "3609:246:3",
              "statements": [
                {
                  "assignments": [
                    1626
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1626,
                      "name": "bal",
                      "nodeType": "VariableDeclaration",
                      "scope": 1660,
                      "src": "3619:10:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 1625,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3619:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1628,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 1627,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "3632:1:3",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3619:14:3"
                },
                {
                  "body": {
                    "id": 1653,
                    "nodeType": "Block",
                    "src": "3671:149:3",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 1644,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 1632,
                            "name": "bal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1626,
                            "src": "3685:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 1633,
                                "name": "balanceChange",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1366,
                                "src": "3692:13:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
                                  "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
                                }
                              },
                              "id": 1635,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 1634,
                                "name": "branch",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1618,
                                "src": "3706:6:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "3692:21:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                                "typeString": "mapping(bytes32 => int256)"
                              }
                            },
                            "id": 1643,
                            "indexExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 1639,
                                      "name": "addr",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1616,
                                      "src": "3741:4:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 1640,
                                      "name": "acct",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1620,
                                      "src": "3747:4:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      },
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1637,
                                      "name": "abi",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5380,
                                      "src": "3724:3:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_abi",
                                        "typeString": "abi"
                                      }
                                    },
                                    "id": 1638,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "memberName": "encodePacked",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "3724:16:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                      "typeString": "function () pure returns (bytes memory)"
                                    }
                                  },
                                  "id": 1641,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "3724:28:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                ],
                                "id": 1636,
                                "name": "keccak256",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5387,
                                "src": "3714:9:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                                  "typeString": "function () pure returns (bytes32)"
                                }
                              },
                              "id": 1642,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3714:39:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3692:62:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "src": "3685:69:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 1645,
                        "nodeType": "ExpressionStatement",
                        "src": "3685:69:3"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 1651,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 1646,
                            "name": "branch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1618,
                            "src": "3768:6:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1649,
                                "name": "branch",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1618,
                                "src": "3802:6:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1647,
                                "name": "fSystem",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1388,
                                "src": "3777:7:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                                  "typeString": "contract ForkonomicSystem"
                                }
                              },
                              "id": 1648,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "branchParentHash",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 920,
                              "src": "3777:24:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                "typeString": "function (bytes32) view external returns (bytes32)"
                              }
                            },
                            "id": 1650,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3777:32:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "3768:41:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 1652,
                        "nodeType": "ExpressionStatement",
                        "src": "3768:41:3"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 1631,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1629,
                      "name": "branch",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1618,
                      "src": "3650:6:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1630,
                      "name": "NULL_HASH",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1360,
                      "src": "3660:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "3650:19:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1654,
                  "nodeType": "WhileStatement",
                  "src": "3643:177:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1656,
                        "name": "bal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1626,
                        "src": "3844:3:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "id": 1655,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "3836:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": "uint256"
                    },
                    "id": 1657,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3836:12:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1624,
                  "id": 1658,
                  "nodeType": "Return",
                  "src": "3829:19:3"
                }
              ]
            },
            "documentation": null,
            "id": 1660,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "balanceOfBox",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1621,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1616,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 1660,
                  "src": "3527:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1615,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3527:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1618,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 1660,
                  "src": "3541:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1617,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3541:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1620,
                  "name": "acct",
                  "nodeType": "VariableDeclaration",
                  "scope": 1660,
                  "src": "3557:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1619,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3557:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3526:44:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 1624,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1623,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1660,
                  "src": "3600:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1622,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3600:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3599:9:3"
            },
            "scope": 2262,
            "src": "3505:350:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1683,
              "nodeType": "Block",
              "src": "3977:112:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1675,
                                "name": "addr",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1662,
                                "src": "4040:4:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 1676,
                                "name": "NULL_HASH",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1360,
                                "src": "4046:9:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1673,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5380,
                                "src": "4023:3:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 1674,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "encodePacked",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "4023:16:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 1677,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4023:33:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 1672,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5387,
                          "src": "4013:9:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                            "typeString": "function () pure returns (bytes32)"
                          }
                        },
                        "id": 1678,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4013:44:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1679,
                        "name": "minBalance",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1664,
                        "src": "4059:10:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1680,
                        "name": "branchHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1666,
                        "src": "4071:10:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1671,
                      "name": "_isAmountSpendable",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2261,
                      "src": "3994:18:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (bytes32,uint256,bytes32) view returns (bool)"
                      }
                    },
                    "id": 1681,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3994:88:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 1670,
                  "id": 1682,
                  "nodeType": "Return",
                  "src": "3987:95:3"
                }
              ]
            },
            "documentation": null,
            "id": 1684,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isAmountSpendable",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1667,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1662,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 1684,
                  "src": "3888:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1661,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3888:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1664,
                  "name": "minBalance",
                  "nodeType": "VariableDeclaration",
                  "scope": 1684,
                  "src": "3902:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1663,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3902:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1666,
                  "name": "branchHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1684,
                  "src": "3922:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1665,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3922:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3887:54:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 1670,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1669,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1684,
                  "src": "3971:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1668,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3971:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3970:6:3"
            },
            "scope": 2262,
            "src": "3861:228:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1709,
              "nodeType": "Block",
              "src": "4227:106:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1701,
                                "name": "addr",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1686,
                                "src": "4290:4:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 1702,
                                "name": "box",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1692,
                                "src": "4296:3:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1699,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5380,
                                "src": "4273:3:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 1700,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "encodePacked",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "4273:16:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 1703,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4273:27:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 1698,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5387,
                          "src": "4263:9:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                            "typeString": "function () pure returns (bytes32)"
                          }
                        },
                        "id": 1704,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4263:38:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1705,
                        "name": "minBalance",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1688,
                        "src": "4303:10:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1706,
                        "name": "branchHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1690,
                        "src": "4315:10:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1697,
                      "name": "_isAmountSpendable",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2261,
                      "src": "4244:18:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (bytes32,uint256,bytes32) view returns (bool)"
                      }
                    },
                    "id": 1707,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4244:82:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 1696,
                  "id": 1708,
                  "nodeType": "Return",
                  "src": "4237:89:3"
                }
              ]
            },
            "documentation": null,
            "id": 1710,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isAmountSpendableBox",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1693,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1686,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 1710,
                  "src": "4125:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1685,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4125:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1688,
                  "name": "minBalance",
                  "nodeType": "VariableDeclaration",
                  "scope": 1710,
                  "src": "4139:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1687,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4139:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1690,
                  "name": "branchHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1710,
                  "src": "4159:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1689,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4159:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1692,
                  "name": "box",
                  "nodeType": "VariableDeclaration",
                  "scope": 1710,
                  "src": "4179:11:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1691,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4179:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4124:67:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 1696,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1695,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1710,
                  "src": "4221:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1694,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4221:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4220:6:3"
            },
            "scope": 2262,
            "src": "4095:238:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1729,
              "nodeType": "Block",
              "src": "4429:79:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1722,
                        "name": "addr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1712,
                        "src": "4458:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1723,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1714,
                        "src": "4464:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1724,
                        "name": "branch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1716,
                        "src": "4472:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1725,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "4480:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1726,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "4491:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1721,
                      "name": "boxTransfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1842,
                      "src": "4446:11:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (address,uint256,bytes32,bytes32,bytes32) returns (bool)"
                      }
                    },
                    "id": 1727,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4446:55:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 1720,
                  "id": 1728,
                  "nodeType": "Return",
                  "src": "4439:62:3"
                }
              ]
            },
            "documentation": null,
            "id": 1730,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "transfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1717,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1712,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 1730,
                  "src": "4357:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1711,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4357:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1714,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 1730,
                  "src": "4371:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1713,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4371:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1716,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 1730,
                  "src": "4387:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1715,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4387:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4356:46:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 1720,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1719,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1730,
                  "src": "4423:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1718,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4423:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4422:6:3"
            },
            "scope": 2262,
            "src": "4339:169:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1841,
              "nodeType": "Block",
              "src": "4639:863:3",
              "statements": [
                {
                  "assignments": [
                    1746
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1746,
                      "name": "branchWindow",
                      "nodeType": "VariableDeclaration",
                      "scope": 1842,
                      "src": "4649:20:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1745,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4649:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1751,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1749,
                        "name": "branch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1736,
                        "src": "4693:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1747,
                        "name": "fSystem",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1388,
                        "src": "4672:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                          "typeString": "contract ForkonomicSystem"
                        }
                      },
                      "id": 1748,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "branchWindow",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 928,
                      "src": "4672:20:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint256_$",
                        "typeString": "function (bytes32) view external returns (uint256)"
                      }
                    },
                    "id": 1750,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4672:28:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4649:51:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1755,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1753,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1734,
                          "src": "4719:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "32313030303030303030303030303030",
                          "id": 1754,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4729:16:3",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_2100000000000000_by_1",
                            "typeString": "int_const 2100000000000000"
                          },
                          "value": "2100000000000000"
                        },
                        "src": "4719:26:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "2073656e64696e6720616d6f756e7420626967676572207468616e20746f74616c537570706c79",
                        "id": 1756,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4747:41:3",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7ca55a6be00559ef00a02e69d028ac458a04d590c688fd8877f9ac42343d6e82",
                          "typeString": "literal_string \" sending amount bigger than totalSupply\""
                        },
                        "value": " sending amount bigger than totalSupply"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7ca55a6be00559ef00a02e69d028ac458a04d590c688fd8877f9ac42343d6e82",
                          "typeString": "literal_string \" sending amount bigger than totalSupply\""
                        }
                      ],
                      "id": 1752,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "4711:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1757,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4711:78:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1758,
                  "nodeType": "ExpressionStatement",
                  "src": "4711:78:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1762,
                            "name": "branch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1736,
                            "src": "4831:6:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1760,
                            "name": "fSystem",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1388,
                            "src": "4807:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                              "typeString": "contract ForkonomicSystem"
                            }
                          },
                          "id": 1761,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "doesBranchExist",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1277,
                          "src": "4807:23:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view external returns (bool)"
                          }
                        },
                        "id": 1763,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4807:31:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "206272616e6368206d757374206578697374",
                        "id": 1764,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4840:20:3",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_eba6203dd5ef310c6643fb81e3ee9308a15fddce6efc18f6227b3435e482adbe",
                          "typeString": "literal_string \" branch must exist\""
                        },
                        "value": " branch must exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_eba6203dd5ef310c6643fb81e3ee9308a15fddce6efc18f6227b3435e482adbe",
                          "typeString": "literal_string \" branch must exist\""
                        }
                      ],
                      "id": 1759,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "4799:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1765,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4799:62:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1766,
                  "nodeType": "ExpressionStatement",
                  "src": "4799:62:3"
                },
                {
                  "assignments": [
                    1768
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1768,
                      "name": "account",
                      "nodeType": "VariableDeclaration",
                      "scope": 1842,
                      "src": "4872:15:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1767,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4872:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1777,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1772,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5393,
                              "src": "4916:3:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 1773,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "4916:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1774,
                            "name": "fromBox",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1738,
                            "src": "4928:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1770,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "4899:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1771,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4899:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1775,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4899:37:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1769,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "4889:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 1776,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4889:48:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4872:65:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1783,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1779,
                          "name": "branchWindow",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1746,
                          "src": "4955:12:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 1780,
                            "name": "lastDebitWindows",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1376,
                            "src": "4971:16:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 1782,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 1781,
                            "name": "account",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1768,
                            "src": "4988:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "4971:25:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "4955:41:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "206272616e636857696e646f77203e3d206c617374446562697457696e646f77735b6163636f756e745d",
                        "id": 1784,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4998:44:3",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0215f62aac7e17cd973128e7ad46eaa2cc8984f75481d1eb160a151a30a0275f",
                          "typeString": "literal_string \" branchWindow >= lastDebitWindows[account]\""
                        },
                        "value": " branchWindow >= lastDebitWindows[account]"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0215f62aac7e17cd973128e7ad46eaa2cc8984f75481d1eb160a151a30a0275f",
                          "typeString": "literal_string \" branchWindow >= lastDebitWindows[account]\""
                        }
                      ],
                      "id": 1778,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "4947:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1785,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4947:96:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1786,
                  "nodeType": "ExpressionStatement",
                  "src": "4947:96:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 1789,
                                "name": "account",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1768,
                                "src": "5111:7:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "id": 1790,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "5110:9:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1791,
                            "name": "amount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1734,
                            "src": "5121:6:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1792,
                            "name": "branch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1736,
                            "src": "5129:6:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 1788,
                          "name": "_isAmountSpendable",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2261,
                          "src": "5091:18:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32,uint256,bytes32) view returns (bool)"
                          }
                        },
                        "id": 1793,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5091:45:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "20616d6f756e7420776173206e6f74207370656e6461626c65",
                        "id": 1794,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5138:27:3",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c8bf258d763d3a9501139b3d5d0dde09baaef96461a1f9cf9b6bf92587efce12",
                          "typeString": "literal_string \" amount was not spendable\""
                        },
                        "value": " amount was not spendable"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c8bf258d763d3a9501139b3d5d0dde09baaef96461a1f9cf9b6bf92587efce12",
                          "typeString": "literal_string \" amount was not spendable\""
                        }
                      ],
                      "id": 1787,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "5083:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1795,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5083:83:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1796,
                  "nodeType": "ExpressionStatement",
                  "src": "5083:83:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1801,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1797,
                        "name": "lastDebitWindows",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1376,
                        "src": "5210:16:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 1799,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1798,
                        "name": "account",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1768,
                        "src": "5227:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5210:25:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1800,
                      "name": "branchWindow",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1746,
                      "src": "5238:12:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5210:40:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1802,
                  "nodeType": "ExpressionStatement",
                  "src": "5210:40:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1811,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1803,
                          "name": "balanceChange",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1366,
                          "src": "5260:13:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
                            "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
                          }
                        },
                        "id": 1806,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1804,
                          "name": "branch",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1736,
                          "src": "5274:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "5260:21:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                          "typeString": "mapping(bytes32 => int256)"
                        }
                      },
                      "id": 1807,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1805,
                        "name": "account",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1768,
                        "src": "5282:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5260:30:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "-=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1809,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1734,
                          "src": "5301:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 1808,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "5294:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_int256_$",
                          "typeString": "type(int256)"
                        },
                        "typeName": "int256"
                      },
                      "id": 1810,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5294:14:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "5260:48:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 1812,
                  "nodeType": "ExpressionStatement",
                  "src": "5260:48:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1827,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1813,
                          "name": "balanceChange",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1366,
                          "src": "5318:13:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
                            "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
                          }
                        },
                        "id": 1822,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1814,
                          "name": "branch",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1736,
                          "src": "5332:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "5318:21:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                          "typeString": "mapping(bytes32 => int256)"
                        }
                      },
                      "id": 1823,
                      "indexExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1818,
                                "name": "addr",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1732,
                                "src": "5367:4:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 1819,
                                "name": "toBox",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1740,
                                "src": "5373:5:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1816,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5380,
                                "src": "5350:3:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 1817,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "encodePacked",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "5350:16:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 1820,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5350:29:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 1815,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5387,
                          "src": "5340:9:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                            "typeString": "function () pure returns (bytes32)"
                          }
                        },
                        "id": 1821,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5340:40:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5318:63:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1825,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1734,
                          "src": "5392:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 1824,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "5385:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_int256_$",
                          "typeString": "type(int256)"
                        },
                        "typeName": "int256"
                      },
                      "id": 1826,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5385:14:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "5318:81:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 1828,
                  "nodeType": "ExpressionStatement",
                  "src": "5318:81:3"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1830,
                        "name": "addr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1732,
                        "src": "5424:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1831,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5393,
                          "src": "5430:3:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1832,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "5430:10:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1833,
                        "name": "fromBox",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1738,
                        "src": "5442:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1834,
                        "name": "toBox",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1740,
                        "src": "5451:5:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1835,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1734,
                        "src": "5458:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1836,
                        "name": "branch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1736,
                        "src": "5466:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1829,
                      "name": "Transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1348,
                      "src": "5415:8:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32,bytes32,uint256,bytes32)"
                      }
                    },
                    "id": 1837,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5415:58:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1838,
                  "nodeType": "EmitStatement",
                  "src": "5410:63:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 1839,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "5491:4:3",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 1744,
                  "id": 1840,
                  "nodeType": "Return",
                  "src": "5484:11:3"
                }
              ]
            },
            "documentation": null,
            "id": 1842,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "boxTransfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1741,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1732,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 1842,
                  "src": "4535:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1731,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4535:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1734,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 1842,
                  "src": "4549:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1733,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4549:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1736,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 1842,
                  "src": "4565:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1735,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4565:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1738,
                  "name": "fromBox",
                  "nodeType": "VariableDeclaration",
                  "scope": 1842,
                  "src": "4581:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1737,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4581:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1740,
                  "name": "toBox",
                  "nodeType": "VariableDeclaration",
                  "scope": 1842,
                  "src": "4598:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1739,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4598:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4534:78:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 1744,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1743,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1842,
                  "src": "4633:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1742,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4633:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4632:6:3"
            },
            "scope": 2262,
            "src": "4514:988:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1864,
              "nodeType": "Block",
              "src": "5614:87:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1856,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1844,
                        "src": "5647:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1857,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1846,
                        "src": "5653:2:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1858,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1848,
                        "src": "5657:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1859,
                        "name": "branch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1850,
                        "src": "5665:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1860,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "5673:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1861,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "5684:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1855,
                      "name": "boxTransferFrom",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        2023,
                        2048
                      ],
                      "referencedDeclaration": 2023,
                      "src": "5631:15:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (address,address,uint256,bytes32,bytes32,bytes32) returns (bool)"
                      }
                    },
                    "id": 1862,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5631:63:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 1854,
                  "id": 1863,
                  "nodeType": "Return",
                  "src": "5624:70:3"
                }
              ]
            },
            "documentation": null,
            "id": 1865,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "transferFrom",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1851,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1844,
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "scope": 1865,
                  "src": "5530:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1843,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5530:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1846,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 1865,
                  "src": "5544:10:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1845,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5544:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1848,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 1865,
                  "src": "5556:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1847,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5556:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1850,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 1865,
                  "src": "5572:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1849,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5572:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5529:58:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 1854,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1853,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1865,
                  "src": "5608:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1852,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5608:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5607:6:3"
            },
            "scope": 2262,
            "src": "5508:193:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2022,
              "nodeType": "Block",
              "src": "5864:1130:3",
              "statements": [
                {
                  "assignments": [
                    1883
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1883,
                      "name": "boxFrom",
                      "nodeType": "VariableDeclaration",
                      "scope": 2023,
                      "src": "5875:15:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1882,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "5875:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1891,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1887,
                            "name": "fromAddr",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1867,
                            "src": "5919:8:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1888,
                            "name": "fromBox",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1875,
                            "src": "5929:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1885,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "5902:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1886,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5902:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1889,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5902:35:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1884,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "5892:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 1890,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5892:46:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5875:63:3"
                },
                {
                  "assignments": [
                    1893
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1893,
                      "name": "boxTo",
                      "nodeType": "VariableDeclaration",
                      "scope": 2023,
                      "src": "5948:13:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1892,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "5948:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1901,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1897,
                            "name": "toAddr",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1869,
                            "src": "5991:6:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1898,
                            "name": "toBox",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1877,
                            "src": "5999:5:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1895,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "5974:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1896,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5974:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1899,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5974:31:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1894,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "5964:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 1900,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5964:42:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5948:58:3"
                },
                {
                  "assignments": [
                    1903
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1903,
                      "name": "boxSender",
                      "nodeType": "VariableDeclaration",
                      "scope": 2023,
                      "src": "6016:17:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1902,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "6016:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1912,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1907,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5393,
                              "src": "6063:3:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 1908,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "6063:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1909,
                            "name": "toBox",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1877,
                            "src": "6075:5:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1905,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "6046:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1906,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "6046:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1910,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6046:35:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1904,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "6036:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 1911,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6036:46:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6016:66:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1922,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 1914,
                                "name": "allowed",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1384,
                                "src": "6100:7:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$",
                                  "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(bytes32 => uint256)))"
                                }
                              },
                              "id": 1916,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 1915,
                                "name": "boxFrom",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1883,
                                "src": "6108:7:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "6100:16:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
                                "typeString": "mapping(bytes32 => mapping(bytes32 => uint256))"
                              }
                            },
                            "id": 1918,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 1917,
                              "name": "boxSender",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1903,
                              "src": "6117:9:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "6100:27:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 1920,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 1919,
                            "name": "branch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1873,
                            "src": "6128:6:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "6100:35:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 1921,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1871,
                          "src": "6139:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6100:45:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1913,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5396,
                      "src": "6092:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1923,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6092:54:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1924,
                  "nodeType": "ExpressionStatement",
                  "src": "6092:54:3"
                },
                {
                  "assignments": [
                    1926
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1926,
                      "name": "branchWindow",
                      "nodeType": "VariableDeclaration",
                      "scope": 2023,
                      "src": "6157:20:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1925,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6157:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1931,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1929,
                        "name": "branch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1873,
                        "src": "6201:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1927,
                        "name": "fSystem",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1388,
                        "src": "6180:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                          "typeString": "contract ForkonomicSystem"
                        }
                      },
                      "id": 1928,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "branchWindow",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 928,
                      "src": "6180:20:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint256_$",
                        "typeString": "function (bytes32) view external returns (uint256)"
                      }
                    },
                    "id": 1930,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6180:28:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6157:51:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1935,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1933,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1871,
                          "src": "6227:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "32313030303030303030303030303030",
                          "id": 1934,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6237:16:3",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_2100000000000000_by_1",
                            "typeString": "int_const 2100000000000000"
                          },
                          "value": "2100000000000000"
                        },
                        "src": "6227:26:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "20616d6f756e7420686967686572207468616e20746f74616c537570706c79",
                        "id": 1936,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6255:33:3",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e13712ae1d8817d68d0980b0466534f7b78891f7a0eb0a1d07f81d1fa1f0e042",
                          "typeString": "literal_string \" amount higher than totalSupply\""
                        },
                        "value": " amount higher than totalSupply"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e13712ae1d8817d68d0980b0466534f7b78891f7a0eb0a1d07f81d1fa1f0e042",
                          "typeString": "literal_string \" amount higher than totalSupply\""
                        }
                      ],
                      "id": 1932,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "6219:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1937,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6219:70:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1938,
                  "nodeType": "ExpressionStatement",
                  "src": "6219:70:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1942,
                            "name": "branch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1873,
                            "src": "6331:6:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1940,
                            "name": "fSystem",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1388,
                            "src": "6307:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                              "typeString": "contract ForkonomicSystem"
                            }
                          },
                          "id": 1941,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "doesBranchExist",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1277,
                          "src": "6307:23:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view external returns (bool)"
                          }
                        },
                        "id": 1943,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6307:31:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6272616e6368206d757374206578697374",
                        "id": 1944,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6340:19:3",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_878d57e23b0179039237ffd8b99d0f6ac83762550e444abcd996c0746477425a",
                          "typeString": "literal_string \"branch must exist\""
                        },
                        "value": "branch must exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_878d57e23b0179039237ffd8b99d0f6ac83762550e444abcd996c0746477425a",
                          "typeString": "literal_string \"branch must exist\""
                        }
                      ],
                      "id": 1939,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "6299:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1945,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6299:61:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1946,
                  "nodeType": "ExpressionStatement",
                  "src": "6299:61:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1952,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1948,
                          "name": "branchWindow",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1926,
                          "src": "6399:12:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 1949,
                            "name": "lastDebitWindows",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1376,
                            "src": "6415:16:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 1951,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 1950,
                            "name": "boxFrom",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1883,
                            "src": "6432:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "6415:25:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6399:41:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6465626974732063616e7420676f206261636b7761726473",
                        "id": 1953,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6442:26:3",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_d928bd4cd8644c91ccb1d6b8ebea6785dcda88404c504cfe878292065084b847",
                          "typeString": "literal_string \"debits cant go backwards\""
                        },
                        "value": "debits cant go backwards"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_d928bd4cd8644c91ccb1d6b8ebea6785dcda88404c504cfe878292065084b847",
                          "typeString": "literal_string \"debits cant go backwards\""
                        }
                      ],
                      "id": 1947,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "6391:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1954,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6391:78:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1955,
                  "nodeType": "ExpressionStatement",
                  "src": "6391:78:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 1958,
                                "name": "boxFrom",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1883,
                                "src": "6537:7:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "id": 1959,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "6536:9:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1960,
                            "name": "amount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1871,
                            "src": "6547:6:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1961,
                            "name": "branch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1873,
                            "src": "6555:6:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 1957,
                          "name": "_isAmountSpendable",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2261,
                          "src": "6517:18:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32,uint256,bytes32) view returns (bool)"
                          }
                        },
                        "id": 1962,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6517:45:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "616d6f756e74206d757374206265207370656e6461626c65",
                        "id": 1963,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6564:26:3",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_361e308325c6a860895445c1e0b410ac012b7a424d9b47bfea407469468baeb4",
                          "typeString": "literal_string \"amount must be spendable\""
                        },
                        "value": "amount must be spendable"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_361e308325c6a860895445c1e0b410ac012b7a424d9b47bfea407469468baeb4",
                          "typeString": "literal_string \"amount must be spendable\""
                        }
                      ],
                      "id": 1956,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "6509:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1964,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6509:82:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1965,
                  "nodeType": "ExpressionStatement",
                  "src": "6509:82:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1970,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1966,
                        "name": "lastDebitWindows",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1376,
                        "src": "6635:16:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 1968,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1967,
                        "name": "boxFrom",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1883,
                        "src": "6652:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6635:25:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1969,
                      "name": "branchWindow",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1926,
                      "src": "6663:12:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6635:40:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1971,
                  "nodeType": "ExpressionStatement",
                  "src": "6635:40:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1980,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1972,
                          "name": "balanceChange",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1366,
                          "src": "6685:13:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
                            "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
                          }
                        },
                        "id": 1975,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1973,
                          "name": "branch",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1873,
                          "src": "6699:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "6685:21:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                          "typeString": "mapping(bytes32 => int256)"
                        }
                      },
                      "id": 1976,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1974,
                        "name": "boxFrom",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1883,
                        "src": "6707:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6685:30:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "-=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1978,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1871,
                          "src": "6726:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 1977,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "6719:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_int256_$",
                          "typeString": "type(int256)"
                        },
                        "typeName": "int256"
                      },
                      "id": 1979,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6719:14:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "6685:48:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 1981,
                  "nodeType": "ExpressionStatement",
                  "src": "6685:48:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1990,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1982,
                          "name": "balanceChange",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1366,
                          "src": "6743:13:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
                            "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
                          }
                        },
                        "id": 1985,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1983,
                          "name": "branch",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1873,
                          "src": "6757:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "6743:21:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                          "typeString": "mapping(bytes32 => int256)"
                        }
                      },
                      "id": 1986,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1984,
                        "name": "boxTo",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1893,
                        "src": "6765:5:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6743:28:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1988,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1871,
                          "src": "6782:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 1987,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "6775:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_int256_$",
                          "typeString": "type(int256)"
                        },
                        "typeName": "int256"
                      },
                      "id": 1989,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6775:14:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "6743:46:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 1991,
                  "nodeType": "ExpressionStatement",
                  "src": "6743:46:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2009,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 1992,
                            "name": "allowed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1384,
                            "src": "6800:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$",
                              "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(bytes32 => uint256)))"
                            }
                          },
                          "id": 1996,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 1993,
                            "name": "boxFrom",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1883,
                            "src": "6808:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "6800:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
                            "typeString": "mapping(bytes32 => mapping(bytes32 => uint256))"
                          }
                        },
                        "id": 1997,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1994,
                          "name": "boxSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1903,
                          "src": "6817:9:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "6800:27:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 1998,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1995,
                        "name": "branch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1873,
                        "src": "6828:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6800:35:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2007,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1871,
                          "src": "6878:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 1999,
                                "name": "allowed",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1384,
                                "src": "6838:7:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$",
                                  "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(bytes32 => uint256)))"
                                }
                              },
                              "id": 2001,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 2000,
                                "name": "boxFrom",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1883,
                                "src": "6846:7:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "6838:16:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
                                "typeString": "mapping(bytes32 => mapping(bytes32 => uint256))"
                              }
                            },
                            "id": 2003,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2002,
                              "name": "boxSender",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1903,
                              "src": "6855:9:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "6838:27:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 2005,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2004,
                            "name": "branch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1873,
                            "src": "6866:6:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "6838:35:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 2006,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4935,
                        "src": "6838:39:3",
                        "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": 2008,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6838:47:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6800:85:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2010,
                  "nodeType": "ExpressionStatement",
                  "src": "6800:85:3"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2012,
                        "name": "fromAddr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1867,
                        "src": "6910:8:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2013,
                        "name": "toAddr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1869,
                        "src": "6920:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2014,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "6928:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2015,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "6939:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2016,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1871,
                        "src": "6950:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2017,
                        "name": "branch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1873,
                        "src": "6958:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2011,
                      "name": "Transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1348,
                      "src": "6901:8:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32,bytes32,uint256,bytes32)"
                      }
                    },
                    "id": 2018,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6901:64:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2019,
                  "nodeType": "EmitStatement",
                  "src": "6896:69:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 2020,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "6983:4:3",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 1881,
                  "id": 2021,
                  "nodeType": "Return",
                  "src": "6976:11:3"
                }
              ]
            },
            "documentation": null,
            "id": 2023,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "boxTransferFrom",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1878,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1867,
                  "name": "fromAddr",
                  "nodeType": "VariableDeclaration",
                  "scope": 2023,
                  "src": "5732:16:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1866,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5732:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1869,
                  "name": "toAddr",
                  "nodeType": "VariableDeclaration",
                  "scope": 2023,
                  "src": "5750:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1868,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5750:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1871,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2023,
                  "src": "5766:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1870,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5766:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1873,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 2023,
                  "src": "5790:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1872,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5790:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1875,
                  "name": "fromBox",
                  "nodeType": "VariableDeclaration",
                  "scope": 2023,
                  "src": "5806:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1874,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5806:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1877,
                  "name": "toBox",
                  "nodeType": "VariableDeclaration",
                  "scope": 2023,
                  "src": "5823:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1876,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5823:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5731:106:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 1881,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1880,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2023,
                  "src": "5858:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1879,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5858:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5857:6:3"
            },
            "scope": 2262,
            "src": "5707:1287:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2047,
              "nodeType": "Block",
              "src": "7130:89:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2039,
                        "name": "addr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2025,
                        "src": "7163:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2040,
                        "name": "addrTo",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2027,
                        "src": "7169:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2041,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2029,
                        "src": "7177:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2042,
                        "name": "branch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2031,
                        "src": "7185:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2043,
                        "name": "fromBox",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2033,
                        "src": "7193:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2044,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "7202:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2038,
                      "name": "boxTransferFrom",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        2023,
                        2048
                      ],
                      "referencedDeclaration": 2023,
                      "src": "7147:15:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (address,address,uint256,bytes32,bytes32,bytes32) returns (bool)"
                      }
                    },
                    "id": 2045,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7147:65:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 2037,
                  "id": 2046,
                  "nodeType": "Return",
                  "src": "7140:72:3"
                }
              ]
            },
            "documentation": null,
            "id": 2048,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "boxTransferFrom",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2034,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2025,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 2048,
                  "src": "7025:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2024,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7025:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2027,
                  "name": "addrTo",
                  "nodeType": "VariableDeclaration",
                  "scope": 2048,
                  "src": "7039:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2026,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7039:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2029,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2048,
                  "src": "7055:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2028,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7055:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2031,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 2048,
                  "src": "7071:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2030,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7071:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2033,
                  "name": "fromBox",
                  "nodeType": "VariableDeclaration",
                  "scope": 2048,
                  "src": "7087:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2032,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7087:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7024:79:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 2037,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2036,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2048,
                  "src": "7124:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2035,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "7124:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7123:6:3"
            },
            "scope": 2262,
            "src": "7000:219:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2087,
              "nodeType": "Block",
              "src": "7371:201:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2065,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2062,
                              "name": "branch",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2054,
                              "src": "7413:6:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2060,
                              "name": "fSystem",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1388,
                              "src": "7389:7:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                                "typeString": "contract ForkonomicSystem"
                              }
                            },
                            "id": 2061,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "branchTimestamp",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 924,
                            "src": "7389:23:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint256_$",
                              "typeString": "function (bytes32) view external returns (uint256)"
                            }
                          },
                          "id": 2063,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7389:31:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2064,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7423:1:3",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "7389:35:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2059,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5396,
                      "src": "7381:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2066,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7381:44:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2067,
                  "nodeType": "ExpressionStatement",
                  "src": "7381:44:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2083,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2068,
                          "name": "withdrawalRecord",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1372,
                          "src": "7456:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
                            "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
                          }
                        },
                        "id": 2078,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2069,
                          "name": "branch",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2054,
                          "src": "7473:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "7456:24:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                          "typeString": "mapping(bytes32 => int256)"
                        }
                      },
                      "id": 2079,
                      "indexExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2073,
                                  "name": "msg",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5393,
                                  "src": "7508:3:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_message",
                                    "typeString": "msg"
                                  }
                                },
                                "id": 2074,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "sender",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "7508:10:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 2075,
                                "name": "box",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2050,
                                "src": "7520:3:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 2071,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5380,
                                "src": "7491:3:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 2072,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "encodePacked",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "7491:16:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 2076,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7491:33:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 2070,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5387,
                          "src": "7481:9:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                            "typeString": "function () pure returns (bytes32)"
                          }
                        },
                        "id": 2077,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7481:44:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "7456:70:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2081,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2052,
                          "src": "7537:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 2080,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "7530:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_int256_$",
                          "typeString": "type(int256)"
                        },
                        "typeName": "int256"
                      },
                      "id": 2082,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7530:14:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "7456:88:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 2084,
                  "nodeType": "ExpressionStatement",
                  "src": "7456:88:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 2085,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "7561:4:3",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 2058,
                  "id": 2086,
                  "nodeType": "Return",
                  "src": "7554:11:3"
                }
              ]
            },
            "documentation": null,
            "id": 2088,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "recordBoxWithdrawal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2055,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2050,
                  "name": "box",
                  "nodeType": "VariableDeclaration",
                  "scope": 2088,
                  "src": "7304:11:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2049,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7304:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2052,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2088,
                  "src": "7317:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2051,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7317:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2054,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 2088,
                  "src": "7333:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2053,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7333:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7303:45:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 2058,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2057,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2088,
                  "src": "7365:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2056,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "7365:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7364:6:3"
            },
            "scope": 2262,
            "src": "7275:297:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2140,
              "nodeType": "Block",
              "src": "7770:345:3",
              "statements": [
                {
                  "assignments": [
                    2102
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2102,
                      "name": "id",
                      "nodeType": "VariableDeclaration",
                      "scope": 2141,
                      "src": "7780:10:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 2101,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "7780:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2110,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2106,
                            "name": "owner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2090,
                            "src": "7820:5:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2107,
                            "name": "box",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2092,
                            "src": "7827:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2104,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "7803:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 2105,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "7803:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 2108,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7803:28:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 2103,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "7793:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 2109,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7793:39:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7780:52:3"
                },
                {
                  "body": {
                    "id": 2136,
                    "nodeType": "Block",
                    "src": "7914:173:3",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 2124,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 2118,
                                "name": "withdrawalRecord",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1372,
                                "src": "7932:16:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
                                  "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
                                }
                              },
                              "id": 2120,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 2119,
                                "name": "branchHash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2094,
                                "src": "7949:10:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "7932:28:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                                "typeString": "mapping(bytes32 => int256)"
                              }
                            },
                            "id": 2122,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2121,
                              "name": "id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2102,
                              "src": "7961:2:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7932:32:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 2123,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "7967:1:3",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "7932:36:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 2128,
                        "nodeType": "IfStatement",
                        "src": "7928:86:3",
                        "trueBody": {
                          "id": 2127,
                          "nodeType": "Block",
                          "src": "7970:44:3",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 2125,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7995:4:3",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              "functionReturnParameters": 2100,
                              "id": 2126,
                              "nodeType": "Return",
                              "src": "7988:11:3"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 2134,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 2129,
                            "name": "branchHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2094,
                            "src": "8027:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 2132,
                                "name": "branchHash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2094,
                                "src": "8065:10:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 2130,
                                "name": "fSystem",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1388,
                                "src": "8040:7:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                                  "typeString": "contract ForkonomicSystem"
                                }
                              },
                              "id": 2131,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "branchParentHash",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 920,
                              "src": "8040:24:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                "typeString": "function (bytes32) view external returns (bytes32)"
                              }
                            },
                            "id": 2133,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8040:36:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "8027:49:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 2135,
                        "nodeType": "ExpressionStatement",
                        "src": "8027:49:3"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 2117,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 2113,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2111,
                        "name": "branchHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2094,
                        "src": "7849:10:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 2112,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "7863:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "7849:23:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 2116,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2114,
                        "name": "branchHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2094,
                        "src": "7876:10:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 2115,
                        "name": "earliestPossibleBranch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2096,
                        "src": "7890:22:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "7876:36:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "7849:63:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2137,
                  "nodeType": "WhileStatement",
                  "src": "7842:245:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "66616c7365",
                    "id": 2138,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "8103:5:3",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "false"
                  },
                  "functionReturnParameters": 2100,
                  "id": 2139,
                  "nodeType": "Return",
                  "src": "8096:12:3"
                }
              ]
            },
            "documentation": null,
            "id": 2141,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "hasBoxWithdrawal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2097,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2090,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 2141,
                  "src": "7658:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2089,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7658:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2092,
                  "name": "box",
                  "nodeType": "VariableDeclaration",
                  "scope": 2141,
                  "src": "7673:11:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2091,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7673:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2094,
                  "name": "branchHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2141,
                  "src": "7686:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2093,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7686:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2096,
                  "name": "earliestPossibleBranch",
                  "nodeType": "VariableDeclaration",
                  "scope": 2141,
                  "src": "7706:30:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2095,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7706:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7657:80:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 2100,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2099,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2141,
                  "src": "7764:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2098,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "7764:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7763:6:3"
            },
            "scope": 2262,
            "src": "7632:483:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2202,
              "nodeType": "Block",
              "src": "8321:372:3",
              "statements": [
                {
                  "assignments": [
                    2155
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2155,
                      "name": "id",
                      "nodeType": "VariableDeclaration",
                      "scope": 2203,
                      "src": "8331:10:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 2154,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "8331:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2163,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2159,
                            "name": "owner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2143,
                            "src": "8371:5:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2160,
                            "name": "box",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2145,
                            "src": "8378:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2157,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "8354:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 2158,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "8354:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 2161,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8354:28:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 2156,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "8344:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 2162,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8344:39:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8331:52:3"
                },
                {
                  "assignments": [
                    2165
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2165,
                      "name": "bal",
                      "nodeType": "VariableDeclaration",
                      "scope": 2203,
                      "src": "8393:10:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 2164,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "8393:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2167,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 2166,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "8406:1:3",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8393:14:3"
                },
                {
                  "body": {
                    "id": 2190,
                    "nodeType": "Block",
                    "src": "8489:127:3",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 2181,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 2175,
                            "name": "bal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2165,
                            "src": "8503:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 2176,
                                "name": "withdrawalRecord",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1372,
                                "src": "8510:16:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
                                  "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
                                }
                              },
                              "id": 2178,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 2177,
                                "name": "branchHash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2147,
                                "src": "8527:10:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "8510:28:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                                "typeString": "mapping(bytes32 => int256)"
                              }
                            },
                            "id": 2180,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2179,
                              "name": "id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2155,
                              "src": "8539:2:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "8510:32:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "src": "8503:39:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 2182,
                        "nodeType": "ExpressionStatement",
                        "src": "8503:39:3"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 2188,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 2183,
                            "name": "branchHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2147,
                            "src": "8556:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 2186,
                                "name": "branchHash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2147,
                                "src": "8594:10:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 2184,
                                "name": "fSystem",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1388,
                                "src": "8569:7:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                                  "typeString": "contract ForkonomicSystem"
                                }
                              },
                              "id": 2185,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "branchParentHash",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 920,
                              "src": "8569:24:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                "typeString": "function (bytes32) view external returns (bytes32)"
                              }
                            },
                            "id": 2187,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8569:36:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "8556:49:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 2189,
                        "nodeType": "ExpressionStatement",
                        "src": "8556:49:3"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 2174,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 2170,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2168,
                        "name": "branchHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2147,
                        "src": "8424:10:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 2169,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "8438:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "8424:23:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 2173,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2171,
                        "name": "branchHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2147,
                        "src": "8451:10:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 2172,
                        "name": "earliestPossibleBranch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2149,
                        "src": "8465:22:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "8451:36:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "8424:63:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2191,
                  "nodeType": "WhileStatement",
                  "src": "8417:199:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 2195,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 2193,
                          "name": "branchHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2147,
                          "src": "8633:10:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2194,
                          "name": "NULL_HASH",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1360,
                          "src": "8647:9:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "8633:23:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2192,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5396,
                      "src": "8625:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2196,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8625:32:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2197,
                  "nodeType": "ExpressionStatement",
                  "src": "8625:32:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2199,
                        "name": "bal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2165,
                        "src": "8682:3:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "id": 2198,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "8674:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": "uint256"
                    },
                    "id": 2200,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8674:12:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2153,
                  "id": 2201,
                  "nodeType": "Return",
                  "src": "8667:19:3"
                }
              ]
            },
            "documentation": null,
            "id": 2203,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "recordedBoxWithdrawalAmount",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2150,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2143,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 2203,
                  "src": "8198:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2142,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8198:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2145,
                  "name": "box",
                  "nodeType": "VariableDeclaration",
                  "scope": 2203,
                  "src": "8213:11:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2144,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8213:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2147,
                  "name": "branchHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2203,
                  "src": "8234:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2146,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8234:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2149,
                  "name": "earliestPossibleBranch",
                  "nodeType": "VariableDeclaration",
                  "scope": 2203,
                  "src": "8254:30:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2148,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8254:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8197:88:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 2153,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2152,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2203,
                  "src": "8312:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2151,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8312:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8311:9:3"
            },
            "scope": 2262,
            "src": "8161:532:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2260,
              "nodeType": "Block",
              "src": "9120:433:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2217,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 2215,
                          "name": "minBalance",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2207,
                          "src": "9138:10:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "32313030303030303030303030303030",
                          "id": 2216,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9152:16:3",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_2100000000000000_by_1",
                            "typeString": "int_const 2100000000000000"
                          },
                          "value": "2100000000000000"
                        },
                        "src": "9138:30:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "616d6f756e7420626967676572207468616e20746f74616c537570706c79",
                        "id": 2218,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9170:32:3",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f31705566768588d5c263b8ba1e336ec06c4f53c31394c7e34a5e2270fc819c2",
                          "typeString": "literal_string \"amount bigger than totalSupply\""
                        },
                        "value": "amount bigger than totalSupply"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_f31705566768588d5c263b8ba1e336ec06c4f53c31394c7e34a5e2270fc819c2",
                          "typeString": "literal_string \"amount bigger than totalSupply\""
                        }
                      ],
                      "id": 2214,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "9130:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2219,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9130:73:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2220,
                  "nodeType": "ExpressionStatement",
                  "src": "9130:73:3"
                },
                {
                  "assignments": [
                    2222
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2222,
                      "name": "bal",
                      "nodeType": "VariableDeclaration",
                      "scope": 2261,
                      "src": "9213:10:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 2221,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "9213:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2224,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 2223,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "9226:1:3",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9213:14:3"
                },
                {
                  "assignments": [
                    2226
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2226,
                      "name": "iminBalance",
                      "nodeType": "VariableDeclaration",
                      "scope": 2261,
                      "src": "9237:18:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 2225,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "9237:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2230,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2228,
                        "name": "minBalance",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2207,
                        "src": "9265:10:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2227,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "9258:6:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_int256_$",
                        "typeString": "type(int256)"
                      },
                      "typeName": "int256"
                    },
                    "id": 2229,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9258:18:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9237:39:3"
                },
                {
                  "body": {
                    "id": 2256,
                    "nodeType": "Block",
                    "src": "9318:207:3",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 2240,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 2234,
                            "name": "bal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2222,
                            "src": "9332:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 2235,
                                "name": "balanceChange",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1366,
                                "src": "9339:13:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
                                  "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
                                }
                              },
                              "id": 2237,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 2236,
                                "name": "branchHash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2209,
                                "src": "9353:10:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "9339:25:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                                "typeString": "mapping(bytes32 => int256)"
                              }
                            },
                            "id": 2239,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2238,
                              "name": "acct",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2205,
                              "src": "9365:4:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "9339:31:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "src": "9332:38:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 2241,
                        "nodeType": "ExpressionStatement",
                        "src": "9332:38:3"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 2247,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 2242,
                            "name": "branchHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2209,
                            "src": "9384:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 2245,
                                "name": "branchHash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2209,
                                "src": "9422:10:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 2243,
                                "name": "fSystem",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1388,
                                "src": "9397:7:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                                  "typeString": "contract ForkonomicSystem"
                                }
                              },
                              "id": 2244,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "branchParentHash",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 920,
                              "src": "9397:24:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                "typeString": "function (bytes32) view external returns (bytes32)"
                              }
                            },
                            "id": 2246,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9397:36:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "9384:49:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 2248,
                        "nodeType": "ExpressionStatement",
                        "src": "9384:49:3"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 2251,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2249,
                            "name": "bal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2222,
                            "src": "9451:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 2250,
                            "name": "iminBalance",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2226,
                            "src": "9458:11:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "src": "9451:18:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 2255,
                        "nodeType": "IfStatement",
                        "src": "9447:68:3",
                        "trueBody": {
                          "id": 2254,
                          "nodeType": "Block",
                          "src": "9471:44:3",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 2252,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9496:4:3",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              "functionReturnParameters": 2213,
                              "id": 2253,
                              "nodeType": "Return",
                              "src": "9489:11:3"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 2233,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2231,
                      "name": "branchHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2209,
                      "src": "9293:10:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2232,
                      "name": "NULL_HASH",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1360,
                      "src": "9307:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "9293:23:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2257,
                  "nodeType": "WhileStatement",
                  "src": "9286:239:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "66616c7365",
                    "id": 2258,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "9541:5:3",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "false"
                  },
                  "functionReturnParameters": 2213,
                  "id": 2259,
                  "nodeType": "Return",
                  "src": "9534:12:3"
                }
              ]
            },
            "documentation": null,
            "id": 2261,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "_isAmountSpendable",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2210,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2205,
                  "name": "acct",
                  "nodeType": "VariableDeclaration",
                  "scope": 2261,
                  "src": "9031:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2204,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9031:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2207,
                  "name": "minBalance",
                  "nodeType": "VariableDeclaration",
                  "scope": 2261,
                  "src": "9045:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2206,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9045:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2209,
                  "name": "branchHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2261,
                  "src": "9065:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2208,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9065:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9030:54:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 2213,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2212,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2261,
                  "src": "9114:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2211,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "9114:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9113:6:3"
            },
            "scope": 2262,
            "src": "9003:550:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 2263,
        "src": "120:9436:3"
      }
    ],
    "src": "0:9557:3"
  },
  "legacyAST": {
    "absolutePath": "/home/josojo/reality/subjectivocracy/contracts/ForkonomicToken.sol",
    "exportedSymbols": {
      "ForkonomicToken": [
        2262
      ]
    },
    "id": 2263,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1315,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".22"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:3"
      },
      {
        "absolutePath": "/home/josojo/reality/subjectivocracy/contracts/ForkonomicSystem.sol",
        "file": "./ForkonomicSystem.sol",
        "id": 1316,
        "nodeType": "ImportDirective",
        "scope": 2263,
        "sourceUnit": 1314,
        "src": "25:32:3",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol",
        "file": "openzeppelin-solidity/contracts/math/SafeMath.sol",
        "id": 1317,
        "nodeType": "ImportDirective",
        "scope": 2263,
        "sourceUnit": 4961,
        "src": "58:59:3",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 2262,
        "linearizedBaseContracts": [
          2262
        ],
        "name": "ForkonomicToken",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 1320,
            "libraryName": {
              "contractScope": null,
              "id": 1318,
              "name": "SafeMath",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4960,
              "src": "157:8:3",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SafeMath_$4960",
                "typeString": "library SafeMath"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "151:27:3",
            "typeName": {
              "id": 1319,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "170:7:3",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1334,
            "name": "Approval",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1333,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1322,
                  "indexed": true,
                  "name": "_owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1334,
                  "src": "199:22:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1321,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "199:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1324,
                  "indexed": false,
                  "name": "ownerBox",
                  "nodeType": "VariableDeclaration",
                  "scope": 1334,
                  "src": "223:16:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1323,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "223:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1326,
                  "indexed": true,
                  "name": "_spender",
                  "nodeType": "VariableDeclaration",
                  "scope": 1334,
                  "src": "241:24:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1325,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "241:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1328,
                  "indexed": false,
                  "name": "spenderBox",
                  "nodeType": "VariableDeclaration",
                  "scope": 1334,
                  "src": "275:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1327,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "275:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1330,
                  "indexed": false,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1334,
                  "src": "295:11:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1329,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "295:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1332,
                  "indexed": false,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 1334,
                  "src": "308:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1331,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "308:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "198:125:3"
            },
            "src": "184:140:3"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1348,
            "name": "Transfer",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1347,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1336,
                  "indexed": true,
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "scope": 1348,
                  "src": "345:20:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1335,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "345:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1338,
                  "indexed": false,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 1348,
                  "src": "375:10:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1337,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "375:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1340,
                  "indexed": false,
                  "name": "fromBox",
                  "nodeType": "VariableDeclaration",
                  "scope": 1348,
                  "src": "395:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1339,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "395:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1342,
                  "indexed": false,
                  "name": "toBox",
                  "nodeType": "VariableDeclaration",
                  "scope": 1348,
                  "src": "420:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1341,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "420:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1344,
                  "indexed": false,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1348,
                  "src": "443:10:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1343,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "443:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1346,
                  "indexed": false,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 1348,
                  "src": "463:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1345,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "463:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "344:134:3"
            },
            "src": "330:149:3"
          },
          {
            "constant": true,
            "id": 1351,
            "name": "name",
            "nodeType": "VariableDeclaration",
            "scope": 2262,
            "src": "485:44:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1349,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "485:6:3",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "5265616c697479546f6b656e",
              "id": 1350,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "515:14:3",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_288b541dcd6823f25ab307bdfa655ac2119d11c7339e41792ae1c5b1836d83e9",
                "typeString": "literal_string \"RealityToken\""
              },
              "value": "RealityToken"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1354,
            "name": "symbol",
            "nodeType": "VariableDeclaration",
            "scope": 2262,
            "src": "535:37:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1352,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "535:6:3",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "524c54",
              "id": 1353,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "567:5:3",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_9c081cc912e332d6ab55711d4135b50cb0a1ea4e7373bdaaec428a25d29cea8f",
                "typeString": "literal_string \"RLT\""
              },
              "value": "RLT"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1357,
            "name": "decimals",
            "nodeType": "VariableDeclaration",
            "scope": 2262,
            "src": "578:35:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 1355,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "578:5:3",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "3138",
              "id": 1356,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "611:2:3",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_18_by_1",
                "typeString": "int_const 18"
              },
              "value": "18"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1360,
            "name": "NULL_HASH",
            "nodeType": "VariableDeclaration",
            "scope": 2262,
            "src": "675:31:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 1358,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "675:7:3",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "",
              "id": 1359,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "704:2:3",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                "typeString": "literal_string \"\""
              },
              "value": ""
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1366,
            "name": "balanceChange",
            "nodeType": "VariableDeclaration",
            "scope": 2262,
            "src": "778:60:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
              "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
            },
            "typeName": {
              "id": 1365,
              "keyType": {
                "id": 1361,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "786:7:3",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "778:46:3",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
                "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
              },
              "valueType": {
                "id": 1364,
                "keyType": {
                  "id": 1362,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "805:7:3",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "nodeType": "Mapping",
                "src": "797:26:3",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                  "typeString": "mapping(bytes32 => int256)"
                },
                "valueType": {
                  "id": 1363,
                  "name": "int256",
                  "nodeType": "ElementaryTypeName",
                  "src": "816:6:3",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  }
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1372,
            "name": "withdrawalRecord",
            "nodeType": "VariableDeclaration",
            "scope": 2262,
            "src": "953:63:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
              "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
            },
            "typeName": {
              "id": 1371,
              "keyType": {
                "id": 1367,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "961:7:3",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "953:46:3",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
                "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
              },
              "valueType": {
                "id": 1370,
                "keyType": {
                  "id": 1368,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "980:7:3",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "nodeType": "Mapping",
                "src": "972:26:3",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                  "typeString": "mapping(bytes32 => int256)"
                },
                "valueType": {
                  "id": 1369,
                  "name": "int256",
                  "nodeType": "ElementaryTypeName",
                  "src": "991:6:3",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  }
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1376,
            "name": "lastDebitWindows",
            "nodeType": "VariableDeclaration",
            "scope": 2262,
            "src": "1172:51:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
              "typeString": "mapping(bytes32 => uint256)"
            },
            "typeName": {
              "id": 1375,
              "keyType": {
                "id": 1373,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "1180:7:3",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "1172:27:3",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                "typeString": "mapping(bytes32 => uint256)"
              },
              "valueType": {
                "id": 1374,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1191:7:3",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1384,
            "name": "allowed",
            "nodeType": "VariableDeclaration",
            "scope": 2262,
            "src": "1345:81:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$",
              "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(bytes32 => uint256)))"
            },
            "typeName": {
              "id": 1383,
              "keyType": {
                "id": 1377,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "1353:7:3",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "1345:66:3",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$",
                "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(bytes32 => uint256)))"
              },
              "valueType": {
                "id": 1382,
                "keyType": {
                  "id": 1378,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "1372:7:3",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "nodeType": "Mapping",
                "src": "1364:46:3",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
                  "typeString": "mapping(bytes32 => mapping(bytes32 => uint256))"
                },
                "valueType": {
                  "id": 1381,
                  "keyType": {
                    "id": 1379,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1391:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "1383:26:3",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                    "typeString": "mapping(bytes32 => uint256)"
                  },
                  "valueType": {
                    "id": 1380,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1401:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1386,
            "name": "totalSupply",
            "nodeType": "VariableDeclaration",
            "scope": 2262,
            "src": "1433:26:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1385,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1433:7:3",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1388,
            "name": "fSystem",
            "nodeType": "VariableDeclaration",
            "scope": 2262,
            "src": "1465:31:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
              "typeString": "contract ForkonomicSystem"
            },
            "typeName": {
              "contractScope": null,
              "id": 1387,
              "name": "ForkonomicSystem",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1313,
              "src": "1465:16:3",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                "typeString": "contract ForkonomicSystem"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1454,
              "nodeType": "Block",
              "src": "1587:498:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1398,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1396,
                      "name": "fSystem",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1388,
                      "src": "1598:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                        "typeString": "contract ForkonomicSystem"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1397,
                      "name": "_fSystem",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1390,
                      "src": "1608:8:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                        "typeString": "contract ForkonomicSystem"
                      }
                    },
                    "src": "1598:18:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                      "typeString": "contract ForkonomicSystem"
                    }
                  },
                  "id": 1399,
                  "nodeType": "ExpressionStatement",
                  "src": "1598:18:3"
                },
                {
                  "assignments": [
                    1401
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1401,
                      "name": "genesisBranchHash",
                      "nodeType": "VariableDeclaration",
                      "scope": 1455,
                      "src": "1626:25:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1400,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "1626:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1405,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1402,
                        "name": "fSystem",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1388,
                        "src": "1654:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                          "typeString": "contract ForkonomicSystem"
                        }
                      },
                      "id": 1403,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "genesisBranchHash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 942,
                      "src": "1654:25:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                        "typeString": "function () view external returns (bytes32)"
                      }
                    },
                    "id": 1404,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1654:27:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1626:55:3"
                },
                {
                  "assignments": [
                    1407
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1407,
                      "name": "numFunded",
                      "nodeType": "VariableDeclaration",
                      "scope": 1455,
                      "src": "1691:17:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1406,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1691:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1410,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 1408,
                      "name": "initalFundingContracts",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1393,
                      "src": "1711:22:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "id": 1409,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "1711:29:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1691:49:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1414,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1412,
                          "name": "numFunded",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1407,
                          "src": "1759:9:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "3132",
                          "id": 1413,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1771:2:3",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_12_by_1",
                            "typeString": "int_const 12"
                          },
                          "value": "12"
                        },
                        "src": "1759:14:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "20746f6f206d616e792066756e64696e67206163636f756e7473",
                        "id": 1415,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1775:28:3",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_abc9a6e5adac5d46a04cbea20609d4fa429fa4ec6282474bf7fe2733456825b4",
                          "typeString": "literal_string \" too many funding accounts\""
                        },
                        "value": " too many funding accounts"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_abc9a6e5adac5d46a04cbea20609d4fa429fa4ec6282474bf7fe2733456825b4",
                          "typeString": "literal_string \" too many funding accounts\""
                        }
                      ],
                      "id": 1411,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "1751:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1416,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1751:53:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1417,
                  "nodeType": "ExpressionStatement",
                  "src": "1751:53:3"
                },
                {
                  "body": {
                    "id": 1452,
                    "nodeType": "Block",
                    "src": "1853:226:3",
                    "statements": [
                      {
                        "assignments": [
                          1429
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 1429,
                            "name": "account",
                            "nodeType": "VariableDeclaration",
                            "scope": 1455,
                            "src": "1867:15:3",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 1428,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "1867:7:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 1439,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 1433,
                                    "name": "initalFundingContracts",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1393,
                                    "src": "1912:22:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 1435,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 1434,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1419,
                                    "src": "1935:1:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1912:25:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 1436,
                                  "name": "NULL_HASH",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1360,
                                  "src": "1939:9:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1431,
                                  "name": "abi",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5380,
                                  "src": "1895:3:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_abi",
                                    "typeString": "abi"
                                  }
                                },
                                "id": 1432,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberName": "encodePacked",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "1895:16:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function () pure returns (bytes memory)"
                                }
                              },
                              "id": 1437,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1895:54:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 1430,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5387,
                            "src": "1885:9:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                              "typeString": "function () pure returns (bytes32)"
                            }
                          },
                          "id": 1438,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1885:65:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1867:83:3"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 1446,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 1440,
                                "name": "balanceChange",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1366,
                                "src": "1964:13:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
                                  "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
                                }
                              },
                              "id": 1443,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 1441,
                                "name": "genesisBranchHash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1401,
                                "src": "1978:17:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "1964:32:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                                "typeString": "mapping(bytes32 => int256)"
                              }
                            },
                            "id": 1444,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 1442,
                              "name": "account",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1429,
                              "src": "1997:7:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "1964:41:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "323130303030303030303030303030",
                            "id": 1445,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2009:15:3",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_210000000000000_by_1",
                              "typeString": "int_const 210000000000000"
                            },
                            "value": "210000000000000"
                          },
                          "src": "1964:60:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 1447,
                        "nodeType": "ExpressionStatement",
                        "src": "1964:60:3"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 1450,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 1448,
                            "name": "totalSupply",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1386,
                            "src": "2038:11:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "323130303030303030303030303030",
                            "id": 1449,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2053:15:3",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_210000000000000_by_1",
                              "typeString": "int_const 210000000000000"
                            },
                            "value": "210000000000000"
                          },
                          "src": "2038:30:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 1451,
                        "nodeType": "ExpressionStatement",
                        "src": "2038:30:3"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1424,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1422,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1419,
                      "src": "1833:1:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1423,
                      "name": "numFunded",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1407,
                      "src": "1837:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1833:13:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1453,
                  "initializationExpression": {
                    "assignments": [
                      1419
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 1419,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 1455,
                        "src": "1820:9:3",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1418,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1820:7:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 1421,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1420,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1830:1:3",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "1820:11:3"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1426,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "1848:3:3",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 1425,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1419,
                        "src": "1848:1:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 1427,
                    "nodeType": "ExpressionStatement",
                    "src": "1848:3:3"
                  },
                  "nodeType": "ForStatement",
                  "src": "1815:264:3"
                }
              ]
            },
            "documentation": null,
            "id": 1455,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1394,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1390,
                  "name": "_fSystem",
                  "nodeType": "VariableDeclaration",
                  "scope": 1455,
                  "src": "1515:25:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                    "typeString": "contract ForkonomicSystem"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1389,
                    "name": "ForkonomicSystem",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1313,
                    "src": "1515:16:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                      "typeString": "contract ForkonomicSystem"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1393,
                  "name": "initalFundingContracts",
                  "nodeType": "VariableDeclaration",
                  "scope": 1455,
                  "src": "1542:32:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1391,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "1542:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 1392,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "1542:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1514:61:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 1395,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1587:0:3"
            },
            "scope": 2262,
            "src": "1503:582:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1474,
              "nodeType": "Block",
              "src": "2194:84:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1467,
                        "name": "_spender",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1457,
                        "src": "2222:8:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1468,
                        "name": "_amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1459,
                        "src": "2232:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1469,
                        "name": "_branch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1461,
                        "src": "2241:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1470,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "2250:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1471,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "2261:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1466,
                      "name": "approveBox",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1554,
                      "src": "2211:10:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (address,uint256,bytes32,bytes32,bytes32) returns (bool)"
                      }
                    },
                    "id": 1472,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2211:60:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 1465,
                  "id": 1473,
                  "nodeType": "Return",
                  "src": "2204:67:3"
                }
              ]
            },
            "documentation": null,
            "id": 1475,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "approve",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1462,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1457,
                  "name": "_spender",
                  "nodeType": "VariableDeclaration",
                  "scope": 1475,
                  "src": "2108:16:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1456,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2108:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1459,
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 1475,
                  "src": "2126:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1458,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2126:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1461,
                  "name": "_branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 1475,
                  "src": "2143:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1460,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2143:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2107:52:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 1465,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1464,
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "scope": 1475,
                  "src": "2180:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1463,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2180:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2179:14:3"
            },
            "scope": 2262,
            "src": "2091:187:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1494,
              "nodeType": "Block",
              "src": "2396:82:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1487,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1477,
                        "src": "2426:5:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1488,
                        "name": "spender",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1479,
                        "src": "2433:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1489,
                        "name": "branch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1481,
                        "src": "2442:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1490,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "2450:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1491,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "2461:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1486,
                      "name": "allowanceBox",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1598,
                      "src": "2413:12:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$",
                        "typeString": "function (address,address,bytes32,bytes32,bytes32) view returns (uint256)"
                      }
                    },
                    "id": 1492,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2413:58:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1485,
                  "id": 1493,
                  "nodeType": "Return",
                  "src": "2406:65:3"
                }
              ]
            },
            "documentation": null,
            "id": 1495,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "allowance",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1482,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1477,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1495,
                  "src": "2303:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1476,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2303:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1479,
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "scope": 1495,
                  "src": "2318:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1478,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2318:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1481,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 1495,
                  "src": "2335:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1480,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2335:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2302:48:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 1485,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1484,
                  "name": "remaining",
                  "nodeType": "VariableDeclaration",
                  "scope": 1495,
                  "src": "2380:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1483,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2380:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2379:16:3"
            },
            "scope": 2262,
            "src": "2284:194:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1553,
              "nodeType": "Block",
              "src": "2627:325:3",
              "statements": [
                {
                  "assignments": [
                    1511
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1511,
                      "name": "boxSpender",
                      "nodeType": "VariableDeclaration",
                      "scope": 1554,
                      "src": "2637:18:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1510,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "2637:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1519,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1515,
                            "name": "_spender",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1497,
                            "src": "2685:8:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1516,
                            "name": "spenderBox",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1505,
                            "src": "2695:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1513,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "2668:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1514,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "2668:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1517,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2668:38:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1512,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "2658:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 1518,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2658:49:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2637:70:3"
                },
                {
                  "assignments": [
                    1521
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1521,
                      "name": "boxFrom",
                      "nodeType": "VariableDeclaration",
                      "scope": 1554,
                      "src": "2717:15:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1520,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "2717:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1530,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1525,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5393,
                              "src": "2762:3:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 1526,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2762:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1527,
                            "name": "fromBox",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1503,
                            "src": "2774:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1523,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "2745:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1524,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "2745:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1528,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2745:37:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1522,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "2735:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 1529,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2735:48:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2717:66:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1539,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 1531,
                            "name": "allowed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1384,
                            "src": "2793:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$",
                              "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(bytes32 => uint256)))"
                            }
                          },
                          "id": 1535,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 1532,
                            "name": "boxFrom",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1521,
                            "src": "2801:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2793:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
                            "typeString": "mapping(bytes32 => mapping(bytes32 => uint256))"
                          }
                        },
                        "id": 1536,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1533,
                          "name": "boxSpender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1511,
                          "src": "2810:10:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "2793:28:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 1537,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1534,
                        "name": "_branch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1501,
                        "src": "2822:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2793:37:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1538,
                      "name": "_amount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1499,
                      "src": "2833:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2793:47:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1540,
                  "nodeType": "ExpressionStatement",
                  "src": "2793:47:3"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1542,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5393,
                          "src": "2864:3:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1543,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2864:10:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1544,
                        "name": "fromBox",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1503,
                        "src": "2876:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1545,
                        "name": "_spender",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1497,
                        "src": "2885:8:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1546,
                        "name": "spenderBox",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1505,
                        "src": "2895:10:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1547,
                        "name": "_amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1499,
                        "src": "2907:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1548,
                        "name": "_branch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1501,
                        "src": "2916:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1541,
                      "name": "Approval",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1334,
                      "src": "2855:8:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_bytes32_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,bytes32,address,bytes32,uint256,bytes32)"
                      }
                    },
                    "id": 1549,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2855:69:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1550,
                  "nodeType": "EmitStatement",
                  "src": "2850:74:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 1551,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2941:4:3",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 1509,
                  "id": 1552,
                  "nodeType": "Return",
                  "src": "2934:11:3"
                }
              ]
            },
            "documentation": null,
            "id": 1554,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "approveBox",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1506,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1497,
                  "name": "_spender",
                  "nodeType": "VariableDeclaration",
                  "scope": 1554,
                  "src": "2504:16:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1496,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2504:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1499,
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 1554,
                  "src": "2522:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1498,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2522:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1501,
                  "name": "_branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 1554,
                  "src": "2539:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1500,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2539:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1503,
                  "name": "fromBox",
                  "nodeType": "VariableDeclaration",
                  "scope": 1554,
                  "src": "2556:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1502,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2556:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1505,
                  "name": "spenderBox",
                  "nodeType": "VariableDeclaration",
                  "scope": 1554,
                  "src": "2573:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1504,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2573:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2503:89:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 1509,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1508,
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "scope": 1554,
                  "src": "2613:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1507,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2613:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2612:14:3"
            },
            "scope": 2262,
            "src": "2484:468:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1597,
              "nodeType": "Block",
              "src": "3113:232:3",
              "statements": [
                {
                  "assignments": [
                    1570
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1570,
                      "name": "spenderAccount",
                      "nodeType": "VariableDeclaration",
                      "scope": 1598,
                      "src": "3124:22:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1569,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3124:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1578,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1574,
                            "name": "spender",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1558,
                            "src": "3176:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1575,
                            "name": "senderBox",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1562,
                            "src": "3185:9:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1572,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "3159:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1573,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3159:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1576,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3159:36:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1571,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "3149:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 1577,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3149:47:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3124:72:3"
                },
                {
                  "assignments": [
                    1580
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1580,
                      "name": "ownerAccount",
                      "nodeType": "VariableDeclaration",
                      "scope": 1598,
                      "src": "3206:20:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1579,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3206:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1588,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1584,
                            "name": "owner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1556,
                            "src": "3256:5:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1585,
                            "name": "receiverBox",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1564,
                            "src": "3263:11:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1582,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "3239:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1583,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3239:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1586,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3239:36:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1581,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "3229:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 1587,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3229:47:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3206:70:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1589,
                          "name": "allowed",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1384,
                          "src": "3293:7:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$",
                            "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(bytes32 => uint256)))"
                          }
                        },
                        "id": 1591,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1590,
                          "name": "ownerAccount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1580,
                          "src": "3301:12:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3293:21:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
                          "typeString": "mapping(bytes32 => mapping(bytes32 => uint256))"
                        }
                      },
                      "id": 1593,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1592,
                        "name": "spenderAccount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1570,
                        "src": "3315:14:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "3293:37:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                        "typeString": "mapping(bytes32 => uint256)"
                      }
                    },
                    "id": 1595,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1594,
                      "name": "branch",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1560,
                      "src": "3331:6:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "3293:45:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1568,
                  "id": 1596,
                  "nodeType": "Return",
                  "src": "3286:52:3"
                }
              ]
            },
            "documentation": null,
            "id": 1598,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "allowanceBox",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1565,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1556,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1598,
                  "src": "2980:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1555,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2980:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1558,
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "scope": 1598,
                  "src": "2995:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1557,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2995:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1560,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 1598,
                  "src": "3012:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1559,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3012:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1562,
                  "name": "senderBox",
                  "nodeType": "VariableDeclaration",
                  "scope": 1598,
                  "src": "3028:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1561,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3028:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1564,
                  "name": "receiverBox",
                  "nodeType": "VariableDeclaration",
                  "scope": 1598,
                  "src": "3047:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1563,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3047:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2979:88:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 1568,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1567,
                  "name": "remaining",
                  "nodeType": "VariableDeclaration",
                  "scope": 1598,
                  "src": "3097:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1566,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3097:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3096:16:3"
            },
            "scope": 2262,
            "src": "2958:387:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1613,
              "nodeType": "Block",
              "src": "3438:61:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1608,
                        "name": "addr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1600,
                        "src": "3468:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1609,
                        "name": "branch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1602,
                        "src": "3474:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1610,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "3482:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1607,
                      "name": "balanceOfBox",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1660,
                      "src": "3455:12:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$",
                        "typeString": "function (address,bytes32,bytes32) view returns (uint256)"
                      }
                    },
                    "id": 1611,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3455:37:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1606,
                  "id": 1612,
                  "nodeType": "Return",
                  "src": "3448:44:3"
                }
              ]
            },
            "documentation": null,
            "id": 1614,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "balanceOf",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1603,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1600,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 1614,
                  "src": "3370:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1599,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3370:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1602,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 1614,
                  "src": "3384:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1601,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3384:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3369:30:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 1606,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1605,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1614,
                  "src": "3429:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1604,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3429:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3428:9:3"
            },
            "scope": 2262,
            "src": "3351:148:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1659,
              "nodeType": "Block",
              "src": "3609:246:3",
              "statements": [
                {
                  "assignments": [
                    1626
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1626,
                      "name": "bal",
                      "nodeType": "VariableDeclaration",
                      "scope": 1660,
                      "src": "3619:10:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 1625,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3619:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1628,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 1627,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "3632:1:3",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3619:14:3"
                },
                {
                  "body": {
                    "id": 1653,
                    "nodeType": "Block",
                    "src": "3671:149:3",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 1644,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 1632,
                            "name": "bal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1626,
                            "src": "3685:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 1633,
                                "name": "balanceChange",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1366,
                                "src": "3692:13:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
                                  "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
                                }
                              },
                              "id": 1635,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 1634,
                                "name": "branch",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1618,
                                "src": "3706:6:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "3692:21:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                                "typeString": "mapping(bytes32 => int256)"
                              }
                            },
                            "id": 1643,
                            "indexExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 1639,
                                      "name": "addr",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1616,
                                      "src": "3741:4:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 1640,
                                      "name": "acct",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1620,
                                      "src": "3747:4:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      },
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1637,
                                      "name": "abi",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5380,
                                      "src": "3724:3:3",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_abi",
                                        "typeString": "abi"
                                      }
                                    },
                                    "id": 1638,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "memberName": "encodePacked",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "3724:16:3",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                      "typeString": "function () pure returns (bytes memory)"
                                    }
                                  },
                                  "id": 1641,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "3724:28:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                ],
                                "id": 1636,
                                "name": "keccak256",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5387,
                                "src": "3714:9:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                                  "typeString": "function () pure returns (bytes32)"
                                }
                              },
                              "id": 1642,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3714:39:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3692:62:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "src": "3685:69:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 1645,
                        "nodeType": "ExpressionStatement",
                        "src": "3685:69:3"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 1651,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 1646,
                            "name": "branch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1618,
                            "src": "3768:6:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1649,
                                "name": "branch",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1618,
                                "src": "3802:6:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1647,
                                "name": "fSystem",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1388,
                                "src": "3777:7:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                                  "typeString": "contract ForkonomicSystem"
                                }
                              },
                              "id": 1648,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "branchParentHash",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 920,
                              "src": "3777:24:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                "typeString": "function (bytes32) view external returns (bytes32)"
                              }
                            },
                            "id": 1650,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3777:32:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "3768:41:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 1652,
                        "nodeType": "ExpressionStatement",
                        "src": "3768:41:3"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 1631,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1629,
                      "name": "branch",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1618,
                      "src": "3650:6:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1630,
                      "name": "NULL_HASH",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1360,
                      "src": "3660:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "3650:19:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1654,
                  "nodeType": "WhileStatement",
                  "src": "3643:177:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1656,
                        "name": "bal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1626,
                        "src": "3844:3:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "id": 1655,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "3836:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": "uint256"
                    },
                    "id": 1657,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3836:12:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1624,
                  "id": 1658,
                  "nodeType": "Return",
                  "src": "3829:19:3"
                }
              ]
            },
            "documentation": null,
            "id": 1660,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "balanceOfBox",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1621,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1616,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 1660,
                  "src": "3527:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1615,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3527:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1618,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 1660,
                  "src": "3541:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1617,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3541:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1620,
                  "name": "acct",
                  "nodeType": "VariableDeclaration",
                  "scope": 1660,
                  "src": "3557:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1619,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3557:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3526:44:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 1624,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1623,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1660,
                  "src": "3600:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1622,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3600:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3599:9:3"
            },
            "scope": 2262,
            "src": "3505:350:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1683,
              "nodeType": "Block",
              "src": "3977:112:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1675,
                                "name": "addr",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1662,
                                "src": "4040:4:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 1676,
                                "name": "NULL_HASH",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1360,
                                "src": "4046:9:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1673,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5380,
                                "src": "4023:3:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 1674,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "encodePacked",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "4023:16:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 1677,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4023:33:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 1672,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5387,
                          "src": "4013:9:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                            "typeString": "function () pure returns (bytes32)"
                          }
                        },
                        "id": 1678,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4013:44:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1679,
                        "name": "minBalance",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1664,
                        "src": "4059:10:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1680,
                        "name": "branchHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1666,
                        "src": "4071:10:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1671,
                      "name": "_isAmountSpendable",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2261,
                      "src": "3994:18:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (bytes32,uint256,bytes32) view returns (bool)"
                      }
                    },
                    "id": 1681,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3994:88:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 1670,
                  "id": 1682,
                  "nodeType": "Return",
                  "src": "3987:95:3"
                }
              ]
            },
            "documentation": null,
            "id": 1684,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isAmountSpendable",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1667,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1662,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 1684,
                  "src": "3888:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1661,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3888:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1664,
                  "name": "minBalance",
                  "nodeType": "VariableDeclaration",
                  "scope": 1684,
                  "src": "3902:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1663,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3902:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1666,
                  "name": "branchHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1684,
                  "src": "3922:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1665,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3922:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3887:54:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 1670,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1669,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1684,
                  "src": "3971:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1668,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3971:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3970:6:3"
            },
            "scope": 2262,
            "src": "3861:228:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1709,
              "nodeType": "Block",
              "src": "4227:106:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1701,
                                "name": "addr",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1686,
                                "src": "4290:4:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 1702,
                                "name": "box",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1692,
                                "src": "4296:3:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1699,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5380,
                                "src": "4273:3:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 1700,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "encodePacked",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "4273:16:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 1703,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4273:27:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 1698,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5387,
                          "src": "4263:9:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                            "typeString": "function () pure returns (bytes32)"
                          }
                        },
                        "id": 1704,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4263:38:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1705,
                        "name": "minBalance",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1688,
                        "src": "4303:10:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1706,
                        "name": "branchHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1690,
                        "src": "4315:10:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1697,
                      "name": "_isAmountSpendable",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2261,
                      "src": "4244:18:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (bytes32,uint256,bytes32) view returns (bool)"
                      }
                    },
                    "id": 1707,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4244:82:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 1696,
                  "id": 1708,
                  "nodeType": "Return",
                  "src": "4237:89:3"
                }
              ]
            },
            "documentation": null,
            "id": 1710,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isAmountSpendableBox",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1693,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1686,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 1710,
                  "src": "4125:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1685,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4125:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1688,
                  "name": "minBalance",
                  "nodeType": "VariableDeclaration",
                  "scope": 1710,
                  "src": "4139:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1687,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4139:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1690,
                  "name": "branchHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1710,
                  "src": "4159:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1689,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4159:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1692,
                  "name": "box",
                  "nodeType": "VariableDeclaration",
                  "scope": 1710,
                  "src": "4179:11:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1691,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4179:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4124:67:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 1696,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1695,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1710,
                  "src": "4221:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1694,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4221:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4220:6:3"
            },
            "scope": 2262,
            "src": "4095:238:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1729,
              "nodeType": "Block",
              "src": "4429:79:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1722,
                        "name": "addr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1712,
                        "src": "4458:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1723,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1714,
                        "src": "4464:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1724,
                        "name": "branch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1716,
                        "src": "4472:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1725,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "4480:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1726,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "4491:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1721,
                      "name": "boxTransfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1842,
                      "src": "4446:11:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (address,uint256,bytes32,bytes32,bytes32) returns (bool)"
                      }
                    },
                    "id": 1727,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4446:55:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 1720,
                  "id": 1728,
                  "nodeType": "Return",
                  "src": "4439:62:3"
                }
              ]
            },
            "documentation": null,
            "id": 1730,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "transfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1717,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1712,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 1730,
                  "src": "4357:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1711,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4357:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1714,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 1730,
                  "src": "4371:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1713,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4371:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1716,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 1730,
                  "src": "4387:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1715,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4387:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4356:46:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 1720,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1719,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1730,
                  "src": "4423:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1718,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4423:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4422:6:3"
            },
            "scope": 2262,
            "src": "4339:169:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1841,
              "nodeType": "Block",
              "src": "4639:863:3",
              "statements": [
                {
                  "assignments": [
                    1746
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1746,
                      "name": "branchWindow",
                      "nodeType": "VariableDeclaration",
                      "scope": 1842,
                      "src": "4649:20:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1745,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4649:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1751,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1749,
                        "name": "branch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1736,
                        "src": "4693:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1747,
                        "name": "fSystem",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1388,
                        "src": "4672:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                          "typeString": "contract ForkonomicSystem"
                        }
                      },
                      "id": 1748,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "branchWindow",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 928,
                      "src": "4672:20:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint256_$",
                        "typeString": "function (bytes32) view external returns (uint256)"
                      }
                    },
                    "id": 1750,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4672:28:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4649:51:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1755,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1753,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1734,
                          "src": "4719:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "32313030303030303030303030303030",
                          "id": 1754,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4729:16:3",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_2100000000000000_by_1",
                            "typeString": "int_const 2100000000000000"
                          },
                          "value": "2100000000000000"
                        },
                        "src": "4719:26:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "2073656e64696e6720616d6f756e7420626967676572207468616e20746f74616c537570706c79",
                        "id": 1756,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4747:41:3",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7ca55a6be00559ef00a02e69d028ac458a04d590c688fd8877f9ac42343d6e82",
                          "typeString": "literal_string \" sending amount bigger than totalSupply\""
                        },
                        "value": " sending amount bigger than totalSupply"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7ca55a6be00559ef00a02e69d028ac458a04d590c688fd8877f9ac42343d6e82",
                          "typeString": "literal_string \" sending amount bigger than totalSupply\""
                        }
                      ],
                      "id": 1752,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "4711:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1757,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4711:78:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1758,
                  "nodeType": "ExpressionStatement",
                  "src": "4711:78:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1762,
                            "name": "branch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1736,
                            "src": "4831:6:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1760,
                            "name": "fSystem",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1388,
                            "src": "4807:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                              "typeString": "contract ForkonomicSystem"
                            }
                          },
                          "id": 1761,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "doesBranchExist",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1277,
                          "src": "4807:23:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view external returns (bool)"
                          }
                        },
                        "id": 1763,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4807:31:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "206272616e6368206d757374206578697374",
                        "id": 1764,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4840:20:3",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_eba6203dd5ef310c6643fb81e3ee9308a15fddce6efc18f6227b3435e482adbe",
                          "typeString": "literal_string \" branch must exist\""
                        },
                        "value": " branch must exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_eba6203dd5ef310c6643fb81e3ee9308a15fddce6efc18f6227b3435e482adbe",
                          "typeString": "literal_string \" branch must exist\""
                        }
                      ],
                      "id": 1759,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "4799:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1765,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4799:62:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1766,
                  "nodeType": "ExpressionStatement",
                  "src": "4799:62:3"
                },
                {
                  "assignments": [
                    1768
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1768,
                      "name": "account",
                      "nodeType": "VariableDeclaration",
                      "scope": 1842,
                      "src": "4872:15:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1767,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4872:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1777,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1772,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5393,
                              "src": "4916:3:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 1773,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "4916:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1774,
                            "name": "fromBox",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1738,
                            "src": "4928:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1770,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "4899:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1771,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4899:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1775,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4899:37:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1769,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "4889:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 1776,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4889:48:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4872:65:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1783,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1779,
                          "name": "branchWindow",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1746,
                          "src": "4955:12:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 1780,
                            "name": "lastDebitWindows",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1376,
                            "src": "4971:16:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 1782,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 1781,
                            "name": "account",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1768,
                            "src": "4988:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "4971:25:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "4955:41:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "206272616e636857696e646f77203e3d206c617374446562697457696e646f77735b6163636f756e745d",
                        "id": 1784,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4998:44:3",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0215f62aac7e17cd973128e7ad46eaa2cc8984f75481d1eb160a151a30a0275f",
                          "typeString": "literal_string \" branchWindow >= lastDebitWindows[account]\""
                        },
                        "value": " branchWindow >= lastDebitWindows[account]"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0215f62aac7e17cd973128e7ad46eaa2cc8984f75481d1eb160a151a30a0275f",
                          "typeString": "literal_string \" branchWindow >= lastDebitWindows[account]\""
                        }
                      ],
                      "id": 1778,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "4947:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1785,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4947:96:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1786,
                  "nodeType": "ExpressionStatement",
                  "src": "4947:96:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 1789,
                                "name": "account",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1768,
                                "src": "5111:7:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "id": 1790,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "5110:9:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1791,
                            "name": "amount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1734,
                            "src": "5121:6:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1792,
                            "name": "branch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1736,
                            "src": "5129:6:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 1788,
                          "name": "_isAmountSpendable",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2261,
                          "src": "5091:18:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32,uint256,bytes32) view returns (bool)"
                          }
                        },
                        "id": 1793,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5091:45:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "20616d6f756e7420776173206e6f74207370656e6461626c65",
                        "id": 1794,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5138:27:3",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c8bf258d763d3a9501139b3d5d0dde09baaef96461a1f9cf9b6bf92587efce12",
                          "typeString": "literal_string \" amount was not spendable\""
                        },
                        "value": " amount was not spendable"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c8bf258d763d3a9501139b3d5d0dde09baaef96461a1f9cf9b6bf92587efce12",
                          "typeString": "literal_string \" amount was not spendable\""
                        }
                      ],
                      "id": 1787,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "5083:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1795,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5083:83:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1796,
                  "nodeType": "ExpressionStatement",
                  "src": "5083:83:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1801,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1797,
                        "name": "lastDebitWindows",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1376,
                        "src": "5210:16:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 1799,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1798,
                        "name": "account",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1768,
                        "src": "5227:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5210:25:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1800,
                      "name": "branchWindow",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1746,
                      "src": "5238:12:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5210:40:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1802,
                  "nodeType": "ExpressionStatement",
                  "src": "5210:40:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1811,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1803,
                          "name": "balanceChange",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1366,
                          "src": "5260:13:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
                            "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
                          }
                        },
                        "id": 1806,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1804,
                          "name": "branch",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1736,
                          "src": "5274:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "5260:21:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                          "typeString": "mapping(bytes32 => int256)"
                        }
                      },
                      "id": 1807,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1805,
                        "name": "account",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1768,
                        "src": "5282:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5260:30:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "-=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1809,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1734,
                          "src": "5301:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 1808,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "5294:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_int256_$",
                          "typeString": "type(int256)"
                        },
                        "typeName": "int256"
                      },
                      "id": 1810,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5294:14:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "5260:48:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 1812,
                  "nodeType": "ExpressionStatement",
                  "src": "5260:48:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1827,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1813,
                          "name": "balanceChange",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1366,
                          "src": "5318:13:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
                            "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
                          }
                        },
                        "id": 1822,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1814,
                          "name": "branch",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1736,
                          "src": "5332:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "5318:21:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                          "typeString": "mapping(bytes32 => int256)"
                        }
                      },
                      "id": 1823,
                      "indexExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1818,
                                "name": "addr",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1732,
                                "src": "5367:4:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 1819,
                                "name": "toBox",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1740,
                                "src": "5373:5:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1816,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5380,
                                "src": "5350:3:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 1817,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "encodePacked",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "5350:16:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 1820,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5350:29:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 1815,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5387,
                          "src": "5340:9:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                            "typeString": "function () pure returns (bytes32)"
                          }
                        },
                        "id": 1821,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5340:40:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "5318:63:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1825,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1734,
                          "src": "5392:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 1824,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "5385:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_int256_$",
                          "typeString": "type(int256)"
                        },
                        "typeName": "int256"
                      },
                      "id": 1826,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5385:14:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "5318:81:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 1828,
                  "nodeType": "ExpressionStatement",
                  "src": "5318:81:3"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1830,
                        "name": "addr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1732,
                        "src": "5424:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1831,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5393,
                          "src": "5430:3:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1832,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "5430:10:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1833,
                        "name": "fromBox",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1738,
                        "src": "5442:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1834,
                        "name": "toBox",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1740,
                        "src": "5451:5:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1835,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1734,
                        "src": "5458:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1836,
                        "name": "branch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1736,
                        "src": "5466:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1829,
                      "name": "Transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1348,
                      "src": "5415:8:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32,bytes32,uint256,bytes32)"
                      }
                    },
                    "id": 1837,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5415:58:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1838,
                  "nodeType": "EmitStatement",
                  "src": "5410:63:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 1839,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "5491:4:3",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 1744,
                  "id": 1840,
                  "nodeType": "Return",
                  "src": "5484:11:3"
                }
              ]
            },
            "documentation": null,
            "id": 1842,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "boxTransfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1741,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1732,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 1842,
                  "src": "4535:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1731,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4535:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1734,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 1842,
                  "src": "4549:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1733,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4549:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1736,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 1842,
                  "src": "4565:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1735,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4565:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1738,
                  "name": "fromBox",
                  "nodeType": "VariableDeclaration",
                  "scope": 1842,
                  "src": "4581:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1737,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4581:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1740,
                  "name": "toBox",
                  "nodeType": "VariableDeclaration",
                  "scope": 1842,
                  "src": "4598:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1739,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4598:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4534:78:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 1744,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1743,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1842,
                  "src": "4633:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1742,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4633:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4632:6:3"
            },
            "scope": 2262,
            "src": "4514:988:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1864,
              "nodeType": "Block",
              "src": "5614:87:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1856,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1844,
                        "src": "5647:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1857,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1846,
                        "src": "5653:2:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1858,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1848,
                        "src": "5657:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1859,
                        "name": "branch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1850,
                        "src": "5665:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1860,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "5673:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1861,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "5684:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1855,
                      "name": "boxTransferFrom",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        2023,
                        2048
                      ],
                      "referencedDeclaration": 2023,
                      "src": "5631:15:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (address,address,uint256,bytes32,bytes32,bytes32) returns (bool)"
                      }
                    },
                    "id": 1862,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5631:63:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 1854,
                  "id": 1863,
                  "nodeType": "Return",
                  "src": "5624:70:3"
                }
              ]
            },
            "documentation": null,
            "id": 1865,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "transferFrom",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1851,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1844,
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "scope": 1865,
                  "src": "5530:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1843,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5530:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1846,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 1865,
                  "src": "5544:10:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1845,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5544:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1848,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 1865,
                  "src": "5556:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1847,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5556:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1850,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 1865,
                  "src": "5572:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1849,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5572:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5529:58:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 1854,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1853,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1865,
                  "src": "5608:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1852,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5608:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5607:6:3"
            },
            "scope": 2262,
            "src": "5508:193:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2022,
              "nodeType": "Block",
              "src": "5864:1130:3",
              "statements": [
                {
                  "assignments": [
                    1883
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1883,
                      "name": "boxFrom",
                      "nodeType": "VariableDeclaration",
                      "scope": 2023,
                      "src": "5875:15:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1882,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "5875:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1891,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1887,
                            "name": "fromAddr",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1867,
                            "src": "5919:8:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1888,
                            "name": "fromBox",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1875,
                            "src": "5929:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1885,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "5902:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1886,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5902:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1889,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5902:35:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1884,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "5892:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 1890,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5892:46:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5875:63:3"
                },
                {
                  "assignments": [
                    1893
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1893,
                      "name": "boxTo",
                      "nodeType": "VariableDeclaration",
                      "scope": 2023,
                      "src": "5948:13:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1892,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "5948:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1901,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1897,
                            "name": "toAddr",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1869,
                            "src": "5991:6:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1898,
                            "name": "toBox",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1877,
                            "src": "5999:5:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1895,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "5974:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1896,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5974:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1899,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5974:31:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1894,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "5964:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 1900,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5964:42:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5948:58:3"
                },
                {
                  "assignments": [
                    1903
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1903,
                      "name": "boxSender",
                      "nodeType": "VariableDeclaration",
                      "scope": 2023,
                      "src": "6016:17:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1902,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "6016:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1912,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1907,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5393,
                              "src": "6063:3:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 1908,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "6063:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1909,
                            "name": "toBox",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1877,
                            "src": "6075:5:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1905,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "6046:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1906,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "6046:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1910,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6046:35:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1904,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "6036:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 1911,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6036:46:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6016:66:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1922,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 1914,
                                "name": "allowed",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1384,
                                "src": "6100:7:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$",
                                  "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(bytes32 => uint256)))"
                                }
                              },
                              "id": 1916,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 1915,
                                "name": "boxFrom",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1883,
                                "src": "6108:7:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "6100:16:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
                                "typeString": "mapping(bytes32 => mapping(bytes32 => uint256))"
                              }
                            },
                            "id": 1918,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 1917,
                              "name": "boxSender",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1903,
                              "src": "6117:9:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "6100:27:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 1920,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 1919,
                            "name": "branch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1873,
                            "src": "6128:6:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "6100:35:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 1921,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1871,
                          "src": "6139:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6100:45:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1913,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5396,
                      "src": "6092:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1923,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6092:54:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1924,
                  "nodeType": "ExpressionStatement",
                  "src": "6092:54:3"
                },
                {
                  "assignments": [
                    1926
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1926,
                      "name": "branchWindow",
                      "nodeType": "VariableDeclaration",
                      "scope": 2023,
                      "src": "6157:20:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1925,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6157:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1931,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1929,
                        "name": "branch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1873,
                        "src": "6201:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1927,
                        "name": "fSystem",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1388,
                        "src": "6180:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                          "typeString": "contract ForkonomicSystem"
                        }
                      },
                      "id": 1928,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "branchWindow",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 928,
                      "src": "6180:20:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint256_$",
                        "typeString": "function (bytes32) view external returns (uint256)"
                      }
                    },
                    "id": 1930,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6180:28:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6157:51:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1935,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1933,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1871,
                          "src": "6227:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "32313030303030303030303030303030",
                          "id": 1934,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6237:16:3",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_2100000000000000_by_1",
                            "typeString": "int_const 2100000000000000"
                          },
                          "value": "2100000000000000"
                        },
                        "src": "6227:26:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "20616d6f756e7420686967686572207468616e20746f74616c537570706c79",
                        "id": 1936,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6255:33:3",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e13712ae1d8817d68d0980b0466534f7b78891f7a0eb0a1d07f81d1fa1f0e042",
                          "typeString": "literal_string \" amount higher than totalSupply\""
                        },
                        "value": " amount higher than totalSupply"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e13712ae1d8817d68d0980b0466534f7b78891f7a0eb0a1d07f81d1fa1f0e042",
                          "typeString": "literal_string \" amount higher than totalSupply\""
                        }
                      ],
                      "id": 1932,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "6219:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1937,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6219:70:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1938,
                  "nodeType": "ExpressionStatement",
                  "src": "6219:70:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1942,
                            "name": "branch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1873,
                            "src": "6331:6:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1940,
                            "name": "fSystem",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1388,
                            "src": "6307:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                              "typeString": "contract ForkonomicSystem"
                            }
                          },
                          "id": 1941,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "doesBranchExist",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1277,
                          "src": "6307:23:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view external returns (bool)"
                          }
                        },
                        "id": 1943,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6307:31:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6272616e6368206d757374206578697374",
                        "id": 1944,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6340:19:3",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_878d57e23b0179039237ffd8b99d0f6ac83762550e444abcd996c0746477425a",
                          "typeString": "literal_string \"branch must exist\""
                        },
                        "value": "branch must exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_878d57e23b0179039237ffd8b99d0f6ac83762550e444abcd996c0746477425a",
                          "typeString": "literal_string \"branch must exist\""
                        }
                      ],
                      "id": 1939,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "6299:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1945,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6299:61:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1946,
                  "nodeType": "ExpressionStatement",
                  "src": "6299:61:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1952,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1948,
                          "name": "branchWindow",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1926,
                          "src": "6399:12:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 1949,
                            "name": "lastDebitWindows",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1376,
                            "src": "6415:16:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 1951,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 1950,
                            "name": "boxFrom",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1883,
                            "src": "6432:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "6415:25:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6399:41:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6465626974732063616e7420676f206261636b7761726473",
                        "id": 1953,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6442:26:3",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_d928bd4cd8644c91ccb1d6b8ebea6785dcda88404c504cfe878292065084b847",
                          "typeString": "literal_string \"debits cant go backwards\""
                        },
                        "value": "debits cant go backwards"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_d928bd4cd8644c91ccb1d6b8ebea6785dcda88404c504cfe878292065084b847",
                          "typeString": "literal_string \"debits cant go backwards\""
                        }
                      ],
                      "id": 1947,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "6391:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1954,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6391:78:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1955,
                  "nodeType": "ExpressionStatement",
                  "src": "6391:78:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 1958,
                                "name": "boxFrom",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1883,
                                "src": "6537:7:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "id": 1959,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "6536:9:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1960,
                            "name": "amount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1871,
                            "src": "6547:6:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1961,
                            "name": "branch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1873,
                            "src": "6555:6:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 1957,
                          "name": "_isAmountSpendable",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2261,
                          "src": "6517:18:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32,uint256,bytes32) view returns (bool)"
                          }
                        },
                        "id": 1962,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6517:45:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "616d6f756e74206d757374206265207370656e6461626c65",
                        "id": 1963,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6564:26:3",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_361e308325c6a860895445c1e0b410ac012b7a424d9b47bfea407469468baeb4",
                          "typeString": "literal_string \"amount must be spendable\""
                        },
                        "value": "amount must be spendable"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_361e308325c6a860895445c1e0b410ac012b7a424d9b47bfea407469468baeb4",
                          "typeString": "literal_string \"amount must be spendable\""
                        }
                      ],
                      "id": 1956,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "6509:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1964,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6509:82:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1965,
                  "nodeType": "ExpressionStatement",
                  "src": "6509:82:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1970,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1966,
                        "name": "lastDebitWindows",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1376,
                        "src": "6635:16:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 1968,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1967,
                        "name": "boxFrom",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1883,
                        "src": "6652:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6635:25:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1969,
                      "name": "branchWindow",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1926,
                      "src": "6663:12:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6635:40:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1971,
                  "nodeType": "ExpressionStatement",
                  "src": "6635:40:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1980,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1972,
                          "name": "balanceChange",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1366,
                          "src": "6685:13:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
                            "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
                          }
                        },
                        "id": 1975,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1973,
                          "name": "branch",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1873,
                          "src": "6699:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "6685:21:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                          "typeString": "mapping(bytes32 => int256)"
                        }
                      },
                      "id": 1976,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1974,
                        "name": "boxFrom",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1883,
                        "src": "6707:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6685:30:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "-=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1978,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1871,
                          "src": "6726:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 1977,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "6719:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_int256_$",
                          "typeString": "type(int256)"
                        },
                        "typeName": "int256"
                      },
                      "id": 1979,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6719:14:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "6685:48:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 1981,
                  "nodeType": "ExpressionStatement",
                  "src": "6685:48:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1990,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1982,
                          "name": "balanceChange",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1366,
                          "src": "6743:13:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
                            "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
                          }
                        },
                        "id": 1985,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1983,
                          "name": "branch",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1873,
                          "src": "6757:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "6743:21:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                          "typeString": "mapping(bytes32 => int256)"
                        }
                      },
                      "id": 1986,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1984,
                        "name": "boxTo",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1893,
                        "src": "6765:5:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6743:28:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1988,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1871,
                          "src": "6782:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 1987,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "6775:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_int256_$",
                          "typeString": "type(int256)"
                        },
                        "typeName": "int256"
                      },
                      "id": 1989,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6775:14:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "6743:46:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 1991,
                  "nodeType": "ExpressionStatement",
                  "src": "6743:46:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2009,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 1992,
                            "name": "allowed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1384,
                            "src": "6800:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$",
                              "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(bytes32 => uint256)))"
                            }
                          },
                          "id": 1996,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 1993,
                            "name": "boxFrom",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1883,
                            "src": "6808:7:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "6800:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
                            "typeString": "mapping(bytes32 => mapping(bytes32 => uint256))"
                          }
                        },
                        "id": 1997,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1994,
                          "name": "boxSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1903,
                          "src": "6817:9:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "6800:27:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 1998,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1995,
                        "name": "branch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1873,
                        "src": "6828:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6800:35:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2007,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1871,
                          "src": "6878:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 1999,
                                "name": "allowed",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1384,
                                "src": "6838:7:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$",
                                  "typeString": "mapping(bytes32 => mapping(bytes32 => mapping(bytes32 => uint256)))"
                                }
                              },
                              "id": 2001,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 2000,
                                "name": "boxFrom",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1883,
                                "src": "6846:7:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "6838:16:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_uint256_$_$",
                                "typeString": "mapping(bytes32 => mapping(bytes32 => uint256))"
                              }
                            },
                            "id": 2003,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2002,
                              "name": "boxSender",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1903,
                              "src": "6855:9:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "6838:27:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 2005,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2004,
                            "name": "branch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1873,
                            "src": "6866:6:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "6838:35:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 2006,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4935,
                        "src": "6838:39:3",
                        "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": 2008,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6838:47:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6800:85:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2010,
                  "nodeType": "ExpressionStatement",
                  "src": "6800:85:3"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2012,
                        "name": "fromAddr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1867,
                        "src": "6910:8:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2013,
                        "name": "toAddr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1869,
                        "src": "6920:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2014,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "6928:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2015,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "6939:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2016,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1871,
                        "src": "6950:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2017,
                        "name": "branch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1873,
                        "src": "6958:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2011,
                      "name": "Transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1348,
                      "src": "6901:8:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32,bytes32,uint256,bytes32)"
                      }
                    },
                    "id": 2018,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6901:64:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2019,
                  "nodeType": "EmitStatement",
                  "src": "6896:69:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 2020,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "6983:4:3",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 1881,
                  "id": 2021,
                  "nodeType": "Return",
                  "src": "6976:11:3"
                }
              ]
            },
            "documentation": null,
            "id": 2023,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "boxTransferFrom",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1878,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1867,
                  "name": "fromAddr",
                  "nodeType": "VariableDeclaration",
                  "scope": 2023,
                  "src": "5732:16:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1866,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5732:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1869,
                  "name": "toAddr",
                  "nodeType": "VariableDeclaration",
                  "scope": 2023,
                  "src": "5750:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1868,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5750:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1871,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2023,
                  "src": "5766:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1870,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5766:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1873,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 2023,
                  "src": "5790:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1872,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5790:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1875,
                  "name": "fromBox",
                  "nodeType": "VariableDeclaration",
                  "scope": 2023,
                  "src": "5806:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1874,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5806:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1877,
                  "name": "toBox",
                  "nodeType": "VariableDeclaration",
                  "scope": 2023,
                  "src": "5823:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1876,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5823:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5731:106:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 1881,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1880,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2023,
                  "src": "5858:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1879,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5858:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5857:6:3"
            },
            "scope": 2262,
            "src": "5707:1287:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2047,
              "nodeType": "Block",
              "src": "7130:89:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2039,
                        "name": "addr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2025,
                        "src": "7163:4:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2040,
                        "name": "addrTo",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2027,
                        "src": "7169:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2041,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2029,
                        "src": "7177:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2042,
                        "name": "branch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2031,
                        "src": "7185:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2043,
                        "name": "fromBox",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2033,
                        "src": "7193:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2044,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "7202:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2038,
                      "name": "boxTransferFrom",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        2023,
                        2048
                      ],
                      "referencedDeclaration": 2023,
                      "src": "7147:15:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (address,address,uint256,bytes32,bytes32,bytes32) returns (bool)"
                      }
                    },
                    "id": 2045,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7147:65:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 2037,
                  "id": 2046,
                  "nodeType": "Return",
                  "src": "7140:72:3"
                }
              ]
            },
            "documentation": null,
            "id": 2048,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "boxTransferFrom",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2034,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2025,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 2048,
                  "src": "7025:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2024,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7025:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2027,
                  "name": "addrTo",
                  "nodeType": "VariableDeclaration",
                  "scope": 2048,
                  "src": "7039:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2026,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7039:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2029,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2048,
                  "src": "7055:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2028,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7055:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2031,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 2048,
                  "src": "7071:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2030,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7071:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2033,
                  "name": "fromBox",
                  "nodeType": "VariableDeclaration",
                  "scope": 2048,
                  "src": "7087:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2032,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7087:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7024:79:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 2037,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2036,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2048,
                  "src": "7124:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2035,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "7124:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7123:6:3"
            },
            "scope": 2262,
            "src": "7000:219:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2087,
              "nodeType": "Block",
              "src": "7371:201:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2065,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2062,
                              "name": "branch",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2054,
                              "src": "7413:6:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2060,
                              "name": "fSystem",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1388,
                              "src": "7389:7:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                                "typeString": "contract ForkonomicSystem"
                              }
                            },
                            "id": 2061,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "branchTimestamp",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 924,
                            "src": "7389:23:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint256_$",
                              "typeString": "function (bytes32) view external returns (uint256)"
                            }
                          },
                          "id": 2063,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7389:31:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2064,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7423:1:3",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "7389:35:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2059,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5396,
                      "src": "7381:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2066,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7381:44:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2067,
                  "nodeType": "ExpressionStatement",
                  "src": "7381:44:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2083,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2068,
                          "name": "withdrawalRecord",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1372,
                          "src": "7456:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
                            "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
                          }
                        },
                        "id": 2078,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2069,
                          "name": "branch",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2054,
                          "src": "7473:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "7456:24:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                          "typeString": "mapping(bytes32 => int256)"
                        }
                      },
                      "id": 2079,
                      "indexExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2073,
                                  "name": "msg",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5393,
                                  "src": "7508:3:3",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_message",
                                    "typeString": "msg"
                                  }
                                },
                                "id": 2074,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "sender",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "7508:10:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 2075,
                                "name": "box",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2050,
                                "src": "7520:3:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 2071,
                                "name": "abi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5380,
                                "src": "7491:3:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_abi",
                                  "typeString": "abi"
                                }
                              },
                              "id": 2072,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "encodePacked",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "7491:16:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function () pure returns (bytes memory)"
                              }
                            },
                            "id": 2076,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7491:33:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 2070,
                          "name": "keccak256",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5387,
                          "src": "7481:9:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                            "typeString": "function () pure returns (bytes32)"
                          }
                        },
                        "id": 2077,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7481:44:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "7456:70:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2081,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2052,
                          "src": "7537:6:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 2080,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "7530:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_int256_$",
                          "typeString": "type(int256)"
                        },
                        "typeName": "int256"
                      },
                      "id": 2082,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7530:14:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "7456:88:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 2084,
                  "nodeType": "ExpressionStatement",
                  "src": "7456:88:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 2085,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "7561:4:3",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 2058,
                  "id": 2086,
                  "nodeType": "Return",
                  "src": "7554:11:3"
                }
              ]
            },
            "documentation": null,
            "id": 2088,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "recordBoxWithdrawal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2055,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2050,
                  "name": "box",
                  "nodeType": "VariableDeclaration",
                  "scope": 2088,
                  "src": "7304:11:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2049,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7304:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2052,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2088,
                  "src": "7317:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2051,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7317:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2054,
                  "name": "branch",
                  "nodeType": "VariableDeclaration",
                  "scope": 2088,
                  "src": "7333:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2053,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7333:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7303:45:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 2058,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2057,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2088,
                  "src": "7365:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2056,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "7365:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7364:6:3"
            },
            "scope": 2262,
            "src": "7275:297:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2140,
              "nodeType": "Block",
              "src": "7770:345:3",
              "statements": [
                {
                  "assignments": [
                    2102
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2102,
                      "name": "id",
                      "nodeType": "VariableDeclaration",
                      "scope": 2141,
                      "src": "7780:10:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 2101,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "7780:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2110,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2106,
                            "name": "owner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2090,
                            "src": "7820:5:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2107,
                            "name": "box",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2092,
                            "src": "7827:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2104,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "7803:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 2105,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "7803:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 2108,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7803:28:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 2103,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "7793:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 2109,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7793:39:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7780:52:3"
                },
                {
                  "body": {
                    "id": 2136,
                    "nodeType": "Block",
                    "src": "7914:173:3",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 2124,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 2118,
                                "name": "withdrawalRecord",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1372,
                                "src": "7932:16:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
                                  "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
                                }
                              },
                              "id": 2120,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 2119,
                                "name": "branchHash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2094,
                                "src": "7949:10:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "7932:28:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                                "typeString": "mapping(bytes32 => int256)"
                              }
                            },
                            "id": 2122,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2121,
                              "name": "id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2102,
                              "src": "7961:2:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7932:32:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 2123,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "7967:1:3",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "7932:36:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 2128,
                        "nodeType": "IfStatement",
                        "src": "7928:86:3",
                        "trueBody": {
                          "id": 2127,
                          "nodeType": "Block",
                          "src": "7970:44:3",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 2125,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7995:4:3",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              "functionReturnParameters": 2100,
                              "id": 2126,
                              "nodeType": "Return",
                              "src": "7988:11:3"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 2134,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 2129,
                            "name": "branchHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2094,
                            "src": "8027:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 2132,
                                "name": "branchHash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2094,
                                "src": "8065:10:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 2130,
                                "name": "fSystem",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1388,
                                "src": "8040:7:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                                  "typeString": "contract ForkonomicSystem"
                                }
                              },
                              "id": 2131,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "branchParentHash",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 920,
                              "src": "8040:24:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                "typeString": "function (bytes32) view external returns (bytes32)"
                              }
                            },
                            "id": 2133,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8040:36:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "8027:49:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 2135,
                        "nodeType": "ExpressionStatement",
                        "src": "8027:49:3"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 2117,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 2113,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2111,
                        "name": "branchHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2094,
                        "src": "7849:10:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 2112,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "7863:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "7849:23:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 2116,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2114,
                        "name": "branchHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2094,
                        "src": "7876:10:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 2115,
                        "name": "earliestPossibleBranch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2096,
                        "src": "7890:22:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "7876:36:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "7849:63:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2137,
                  "nodeType": "WhileStatement",
                  "src": "7842:245:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "66616c7365",
                    "id": 2138,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "8103:5:3",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "false"
                  },
                  "functionReturnParameters": 2100,
                  "id": 2139,
                  "nodeType": "Return",
                  "src": "8096:12:3"
                }
              ]
            },
            "documentation": null,
            "id": 2141,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "hasBoxWithdrawal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2097,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2090,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 2141,
                  "src": "7658:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2089,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7658:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2092,
                  "name": "box",
                  "nodeType": "VariableDeclaration",
                  "scope": 2141,
                  "src": "7673:11:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2091,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7673:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2094,
                  "name": "branchHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2141,
                  "src": "7686:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2093,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7686:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2096,
                  "name": "earliestPossibleBranch",
                  "nodeType": "VariableDeclaration",
                  "scope": 2141,
                  "src": "7706:30:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2095,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7706:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7657:80:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 2100,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2099,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2141,
                  "src": "7764:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2098,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "7764:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7763:6:3"
            },
            "scope": 2262,
            "src": "7632:483:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2202,
              "nodeType": "Block",
              "src": "8321:372:3",
              "statements": [
                {
                  "assignments": [
                    2155
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2155,
                      "name": "id",
                      "nodeType": "VariableDeclaration",
                      "scope": 2203,
                      "src": "8331:10:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 2154,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "8331:7:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2163,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2159,
                            "name": "owner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2143,
                            "src": "8371:5:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2160,
                            "name": "box",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2145,
                            "src": "8378:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2157,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5380,
                            "src": "8354:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 2158,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "8354:16:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 2161,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8354:28:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 2156,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5387,
                      "src": "8344:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 2162,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8344:39:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8331:52:3"
                },
                {
                  "assignments": [
                    2165
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2165,
                      "name": "bal",
                      "nodeType": "VariableDeclaration",
                      "scope": 2203,
                      "src": "8393:10:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 2164,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "8393:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2167,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 2166,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "8406:1:3",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8393:14:3"
                },
                {
                  "body": {
                    "id": 2190,
                    "nodeType": "Block",
                    "src": "8489:127:3",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 2181,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 2175,
                            "name": "bal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2165,
                            "src": "8503:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 2176,
                                "name": "withdrawalRecord",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1372,
                                "src": "8510:16:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
                                  "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
                                }
                              },
                              "id": 2178,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 2177,
                                "name": "branchHash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2147,
                                "src": "8527:10:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "8510:28:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                                "typeString": "mapping(bytes32 => int256)"
                              }
                            },
                            "id": 2180,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2179,
                              "name": "id",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2155,
                              "src": "8539:2:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "8510:32:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "src": "8503:39:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 2182,
                        "nodeType": "ExpressionStatement",
                        "src": "8503:39:3"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 2188,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 2183,
                            "name": "branchHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2147,
                            "src": "8556:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 2186,
                                "name": "branchHash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2147,
                                "src": "8594:10:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 2184,
                                "name": "fSystem",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1388,
                                "src": "8569:7:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                                  "typeString": "contract ForkonomicSystem"
                                }
                              },
                              "id": 2185,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "branchParentHash",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 920,
                              "src": "8569:24:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                "typeString": "function (bytes32) view external returns (bytes32)"
                              }
                            },
                            "id": 2187,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8569:36:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "8556:49:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 2189,
                        "nodeType": "ExpressionStatement",
                        "src": "8556:49:3"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 2174,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 2170,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2168,
                        "name": "branchHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2147,
                        "src": "8424:10:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 2169,
                        "name": "NULL_HASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1360,
                        "src": "8438:9:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "8424:23:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 2173,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2171,
                        "name": "branchHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2147,
                        "src": "8451:10:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 2172,
                        "name": "earliestPossibleBranch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2149,
                        "src": "8465:22:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "8451:36:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "8424:63:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2191,
                  "nodeType": "WhileStatement",
                  "src": "8417:199:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 2195,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 2193,
                          "name": "branchHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2147,
                          "src": "8633:10:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2194,
                          "name": "NULL_HASH",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1360,
                          "src": "8647:9:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "8633:23:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2192,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5396,
                      "src": "8625:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2196,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8625:32:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2197,
                  "nodeType": "ExpressionStatement",
                  "src": "8625:32:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2199,
                        "name": "bal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2165,
                        "src": "8682:3:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "id": 2198,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "8674:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": "uint256"
                    },
                    "id": 2200,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8674:12:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2153,
                  "id": 2201,
                  "nodeType": "Return",
                  "src": "8667:19:3"
                }
              ]
            },
            "documentation": null,
            "id": 2203,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "recordedBoxWithdrawalAmount",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2150,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2143,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 2203,
                  "src": "8198:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2142,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8198:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2145,
                  "name": "box",
                  "nodeType": "VariableDeclaration",
                  "scope": 2203,
                  "src": "8213:11:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2144,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8213:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2147,
                  "name": "branchHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2203,
                  "src": "8234:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2146,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8234:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2149,
                  "name": "earliestPossibleBranch",
                  "nodeType": "VariableDeclaration",
                  "scope": 2203,
                  "src": "8254:30:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2148,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8254:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8197:88:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 2153,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2152,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2203,
                  "src": "8312:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2151,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8312:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8311:9:3"
            },
            "scope": 2262,
            "src": "8161:532:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2260,
              "nodeType": "Block",
              "src": "9120:433:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2217,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 2215,
                          "name": "minBalance",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2207,
                          "src": "9138:10:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "32313030303030303030303030303030",
                          "id": 2216,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9152:16:3",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_2100000000000000_by_1",
                            "typeString": "int_const 2100000000000000"
                          },
                          "value": "2100000000000000"
                        },
                        "src": "9138:30:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "616d6f756e7420626967676572207468616e20746f74616c537570706c79",
                        "id": 2218,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9170:32:3",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f31705566768588d5c263b8ba1e336ec06c4f53c31394c7e34a5e2270fc819c2",
                          "typeString": "literal_string \"amount bigger than totalSupply\""
                        },
                        "value": "amount bigger than totalSupply"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_f31705566768588d5c263b8ba1e336ec06c4f53c31394c7e34a5e2270fc819c2",
                          "typeString": "literal_string \"amount bigger than totalSupply\""
                        }
                      ],
                      "id": 2214,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        5396,
                        5397
                      ],
                      "referencedDeclaration": 5397,
                      "src": "9130:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2219,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9130:73:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2220,
                  "nodeType": "ExpressionStatement",
                  "src": "9130:73:3"
                },
                {
                  "assignments": [
                    2222
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2222,
                      "name": "bal",
                      "nodeType": "VariableDeclaration",
                      "scope": 2261,
                      "src": "9213:10:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 2221,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "9213:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2224,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 2223,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "9226:1:3",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9213:14:3"
                },
                {
                  "assignments": [
                    2226
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2226,
                      "name": "iminBalance",
                      "nodeType": "VariableDeclaration",
                      "scope": 2261,
                      "src": "9237:18:3",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 2225,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "9237:6:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2230,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2228,
                        "name": "minBalance",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2207,
                        "src": "9265:10:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2227,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "9258:6:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_int256_$",
                        "typeString": "type(int256)"
                      },
                      "typeName": "int256"
                    },
                    "id": 2229,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9258:18:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9237:39:3"
                },
                {
                  "body": {
                    "id": 2256,
                    "nodeType": "Block",
                    "src": "9318:207:3",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 2240,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 2234,
                            "name": "bal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2222,
                            "src": "9332:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 2235,
                                "name": "balanceChange",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1366,
                                "src": "9339:13:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_int256_$_$",
                                  "typeString": "mapping(bytes32 => mapping(bytes32 => int256))"
                                }
                              },
                              "id": 2237,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 2236,
                                "name": "branchHash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2209,
                                "src": "9353:10:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "9339:25:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$",
                                "typeString": "mapping(bytes32 => int256)"
                              }
                            },
                            "id": 2239,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 2238,
                              "name": "acct",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2205,
                              "src": "9365:4:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "9339:31:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "src": "9332:38:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 2241,
                        "nodeType": "ExpressionStatement",
                        "src": "9332:38:3"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 2247,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 2242,
                            "name": "branchHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2209,
                            "src": "9384:10:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 2245,
                                "name": "branchHash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2209,
                                "src": "9422:10:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 2243,
                                "name": "fSystem",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1388,
                                "src": "9397:7:3",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ForkonomicSystem_$1313",
                                  "typeString": "contract ForkonomicSystem"
                                }
                              },
                              "id": 2244,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "branchParentHash",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 920,
                              "src": "9397:24:3",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bytes32_$",
                                "typeString": "function (bytes32) view external returns (bytes32)"
                              }
                            },
                            "id": 2246,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9397:36:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "9384:49:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 2248,
                        "nodeType": "ExpressionStatement",
                        "src": "9384:49:3"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 2251,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2249,
                            "name": "bal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2222,
                            "src": "9451:3:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 2250,
                            "name": "iminBalance",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2226,
                            "src": "9458:11:3",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "src": "9451:18:3",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 2255,
                        "nodeType": "IfStatement",
                        "src": "9447:68:3",
                        "trueBody": {
                          "id": 2254,
                          "nodeType": "Block",
                          "src": "9471:44:3",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 2252,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9496:4:3",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              "functionReturnParameters": 2213,
                              "id": 2253,
                              "nodeType": "Return",
                              "src": "9489:11:3"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 2233,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2231,
                      "name": "branchHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2209,
                      "src": "9293:10:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2232,
                      "name": "NULL_HASH",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1360,
                      "src": "9307:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "9293:23:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2257,
                  "nodeType": "WhileStatement",
                  "src": "9286:239:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "66616c7365",
                    "id": 2258,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "9541:5:3",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "false"
                  },
                  "functionReturnParameters": 2213,
                  "id": 2259,
                  "nodeType": "Return",
                  "src": "9534:12:3"
                }
              ]
            },
            "documentation": null,
            "id": 2261,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "_isAmountSpendable",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2210,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2205,
                  "name": "acct",
                  "nodeType": "VariableDeclaration",
                  "scope": 2261,
                  "src": "9031:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2204,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9031:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2207,
                  "name": "minBalance",
                  "nodeType": "VariableDeclaration",
                  "scope": 2261,
                  "src": "9045:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2206,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9045:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2209,
                  "name": "branchHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2261,
                  "src": "9065:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2208,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9065:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9030:54:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 2213,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2212,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2261,
                  "src": "9114:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2211,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "9114:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9113:6:3"
            },
            "scope": 2262,
            "src": "9003:550:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 2263,
        "src": "120:9436:3"
      }
    ],
    "src": "0:9557:3"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.0.0-beta.1",
  "updatedAt": "2018-10-27T11:24:32.602Z"
}