{
  "contractName": "TwoPartyArbitrable",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "arbitratorExtraData",
      "outputs": [
        {
          "name": "",
          "type": "bytes"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "partyA",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "status",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "partyB",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_disputeID",
          "type": "uint256"
        },
        {
          "name": "_ruling",
          "type": "uint256"
        }
      ],
      "name": "rule",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "partyAFee",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "partyBFee",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "arbitrator",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "timeout",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "lastInteraction",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "disputeID",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "amountOfChoices",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_arbitrator",
          "type": "address"
        },
        {
          "name": "_timeout",
          "type": "uint256"
        },
        {
          "name": "_partyB",
          "type": "address"
        },
        {
          "name": "_amountOfChoices",
          "type": "uint8"
        },
        {
          "name": "_arbitratorExtraData",
          "type": "bytes"
        },
        {
          "name": "_metaEvidence",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "_party",
          "type": "uint8"
        }
      ],
      "name": "HasToPayFee",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_metaEvidenceID",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "_evidence",
          "type": "string"
        }
      ],
      "name": "MetaEvidence",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_arbitrator",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_disputeID",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "_metaEvidenceID",
          "type": "uint256"
        }
      ],
      "name": "Dispute",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_arbitrator",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_disputeID",
          "type": "uint256"
        },
        {
          "indexed": true,
          "name": "_party",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_evidence",
          "type": "string"
        }
      ],
      "name": "Evidence",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_arbitrator",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_disputeID",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "_ruling",
          "type": "uint256"
        }
      ],
      "name": "Ruling",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "payArbitrationFeeByPartyA",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "payArbitrationFeeByPartyB",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "timeOutByPartyA",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "timeOutByPartyB",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_evidence",
          "type": "string"
        }
      ],
      "name": "submitEvidence",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_extraData",
          "type": "bytes"
        }
      ],
      "name": "appeal",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040523480156200001157600080fd5b5060405162001673380380620016738339810160409081528151602080840151928401516060850151608086015160a087015160008054600160a060020a031916600160a060020a0388161790559087018051959793959294909391909101918791849162000087916001919084019062000172565b50505060028590556003805460048054600160a060020a031916600160a060020a03881617905561010060a860020a03191633610100021760ff191660ff851617905560408051602080825283518183015283516000937f61606860eb6c87306811e2695215385101daab53bd6ab4e9f9049aead9363c7d938693909283928301918501908083838a5b838110156200012b57818101518382015260200162000111565b50505050905090810190601f168015620001595780820380516001836020036101000a031916815260200191505b509250505060405180910390a250505050505062000217565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001b557805160ff1916838001178555620001e5565b82800160010185558215620001e5579182015b82811115620001e5578251825591602001919060010190620001c8565b50620001f3929150620001f7565b5090565b6200021491905b80821115620001f35760008155600101620001fe565b90565b61144c80620002276000396000f3006080604052600436106100fb5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663069fae2a81146101005780630c7ac7b61461014e57806310e1d8ca146101d857806319e2641e14610209578063200d2ed21461021e5780632904011314610257578063311a6c561461026c5780634b40c97414610287578063512491f1146102ae5780636cc6cde1146102c357806370dea79a146102d8578063853c80ce146102ed5780638f71a26514610302578063a010963114610317578063b0a1e2b41461031f578063b1bcce3a14610334578063bac91e2e1461033c578063ce425c8014610395575b600080fd5b6040805160206004803580820135601f810184900484028501840190955284845261014c9436949293602493928401919081908401838280828437509497506103c09650505050505050565b005b34801561015a57600080fd5b50610163610554565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019d578181015183820152602001610185565b50505050905090810190601f1680156101ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101e457600080fd5b506101ed6105e1565b60408051600160a060020a039092168252519081900360200190f35b34801561021557600080fd5b5061014c6105f5565b34801561022a57600080fd5b50610233610732565b6040518082600481111561024357fe5b60ff16815260200191505060405180910390f35b34801561026357600080fd5b506101ed61073b565b34801561027857600080fd5b5061014c60043560243561074a565b34801561029357600080fd5b5061029c610817565b60408051918252519081900360200190f35b3480156102ba57600080fd5b5061029c61081d565b3480156102cf57600080fd5b506101ed610823565b3480156102e457600080fd5b5061029c610832565b3480156102f957600080fd5b5061014c610838565b34801561030e57600080fd5b5061029c61096e565b61014c610974565b34801561032b57600080fd5b5061029c610c67565b61014c610c6d565b34801561034857600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261014c943694929360249392840191908190840183828082843750949750610f3b9650505050505050565b3480156103a157600080fd5b506103aa611135565b6040805160ff9092168252519081900360200190f35b6003546101009004600160a060020a03163314806103e85750600454600160a060020a031633145b1515610464576040805160e560020a62461bcd02815260206004820152602960248201527f43616e206f6e6c792062652063616c6c65642062792070617274792041206f7260448201527f20706172747920422e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008054600854604080517f49912f880000000000000000000000000000000000000000000000000000000081526004810183815260248201928352865160448301528651600160a060020a03909516956349912f88953495948994909260649091019160208601918190849084905b838110156104ec5781810151838201526020016104d4565b50505050905090810190601f1680156105195780820380516001836020036101000a031916815260200191505b5093505050506000604051808303818588803b15801561053857600080fd5b505af115801561054c573d6000803e3d6000fd5b505050505050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105d95780601f106105ae576101008083540402835291602001916105d9565b820191906000526020600020905b8154815290600101906020018083116105bc57829003601f168201915b505050505081565b6003546101009004600160a060020a031681565b6003546101009004600160a060020a0316331461065c576040805160e560020a62461bcd02815260206004820152601e60248201527f43616e206f6e6c792062652063616c6c656420627920706172747920412e0000604482015290519081900360640190fd5b600260095460ff16600481111561066f57fe5b146106c4576040805160e560020a62461bcd02815260206004820152601860248201527f4e6f742077616974696e6720666f7220706172747920422e0000000000000000604482015290519081900360640190fd5b60025460075401421015610722576040805160e560020a62461bcd02815260206004820181905260248201527f5468652074696d656f75742074696d6520686173206e6f74207061737365642e604482015290519081900360640190fd5b60085461073090600161113e565b565b60095460ff1681565b600454600160a060020a031681565b600054600160a060020a031633146107d2576040805160e560020a62461bcd02815260206004820152602560248201527f43616e206f6e6c792062652063616c6c6564206279207468652061726269747260448201527f61746f722e000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b604080518281529051839133917f394027a5fa6e098a1191094d1719d6929b9abc535fcc0c8f448d6a4e756222769181900360200190a3610813828261113e565b5050565b60055481565b60065481565b600054600160a060020a031681565b60025481565b600454600160a060020a0316331461089a576040805160e560020a62461bcd02815260206004820152601e60248201527f43616e206f6e6c792062652063616c6c656420627920706172747920422e0000604482015290519081900360640190fd5b600160095460ff1660048111156108ad57fe5b14610902576040805160e560020a62461bcd02815260206004820152601860248201527f4e6f742077616974696e6720666f7220706172747920412e0000000000000000604482015290519081900360640190fd5b60025460075401421015610960576040805160e560020a62461bcd02815260206004820181905260248201527f5468652074696d656f75742074696d6520686173206e6f74207061737365642e604482015290519081900360640190fd5b60085461073090600261113e565b60075481565b6003546000906101009004600160a060020a031633146109de576040805160e560020a62461bcd02815260206004820152601e60248201527f43616e206f6e6c792062652063616c6c656420627920706172747920412e0000604482015290519081900360640190fd5b6000546040517ff7434ea90000000000000000000000000000000000000000000000000000000081526020600482019081526001805460026000198284161561010002019091160460248401819052600160a060020a039094169363f7434ea993919291829160449091019084908015610a995780601f10610a6e57610100808354040283529160200191610a99565b820191906000526020600020905b815481529060010190602001808311610a7c57829003601f168201915b505092505050602060405180830381600087803b158015610ab957600080fd5b505af1158015610acd573d6000803e3d6000fd5b505050506040513d6020811015610ae357600080fd5b505160058054340190819055909150811115610b6f576040805160e560020a62461bcd02815260206004820152602a60248201527f4e6f7420656e6f7567682045544820746f20636f76657220617262697472617460448201527f696f6e20636f7374732e00000000000000000000000000000000000000000000606482015290519081900360840190fd5b600360095460ff166004811115610b8257fe5b10610bfd576040805160e560020a62461bcd02815260206004820152602160248201527f446973707574652068617320616c7265616479206265656e206372656174656460448201527f2e00000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b42600755600654811115610c5b576009805460ff191660021790556040517fba8db766b5582c21593909b57af48297714ea2c508bfff6c537ce36bb853e5689060019080825b60ff16815260200191505060405180910390a1610c64565b610c64816112af565b50565b60085481565b600454600090600160a060020a03163314610cd2576040805160e560020a62461bcd02815260206004820152601e60248201527f43616e206f6e6c792062652063616c6c656420627920706172747920422e0000604482015290519081900360640190fd5b6000546040517ff7434ea90000000000000000000000000000000000000000000000000000000081526020600482019081526001805460026000198284161561010002019091160460248401819052600160a060020a039094169363f7434ea993919291829160449091019084908015610d8d5780601f10610d6257610100808354040283529160200191610d8d565b820191906000526020600020905b815481529060010190602001808311610d7057829003601f168201915b505092505050602060405180830381600087803b158015610dad57600080fd5b505af1158015610dc1573d6000803e3d6000fd5b505050506040513d6020811015610dd757600080fd5b505160068054340190819055909150811115610e63576040805160e560020a62461bcd02815260206004820152602a60248201527f4e6f7420656e6f7567682045544820746f20636f76657220617262697472617460448201527f696f6e20636f7374732e00000000000000000000000000000000000000000000606482015290519081900360840190fd5b600360095460ff166004811115610e7657fe5b10610ef1576040805160e560020a62461bcd02815260206004820152602160248201527f446973707574652068617320616c7265616479206265656e206372656174656460448201527f2e00000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b42600755600554811115610c5b576009805460ff191660011790556040517fba8db766b5582c21593909b57af48297714ea2c508bfff6c537ce36bb853e568906000908082610c43565b6003546101009004600160a060020a0316331480610f635750600454600160a060020a031633145b1515610fdf576040805160e560020a62461bcd02815260206004820152602960248201527f43616e206f6e6c792062652063616c6c65642062792070617274792041206f7260448201527f20706172747920422e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600360095460ff166004811115610ff257fe5b101561106e576040805160e560020a62461bcd02815260206004820152602560248201527f546865206469737075746520686173206e6f74206265656e206372656174656460448201527f207965742e000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b33600160a060020a03166008546000809054906101000a9004600160a060020a0316600160a060020a03167fdccf2f8b2cc26eafcd61905cba744cff4b81d14740725f6376390dc6298a6a3c846040518080602001828103825283818151815260200191508051906020019080838360005b838110156110f85781810151838201526020016110e0565b50505050905090810190601f1680156111255780820380516001836020036101000a031916815260200191505b509250505060405180910390a450565b60035460ff1681565b6008548214611197576040805160e560020a62461bcd02815260206004820152601160248201527f57726f6e6720646973707574652049442e000000000000000000000000000000604482015290519081900360640190fd5b60035460ff168111156111f4576040805160e560020a62461bcd02815260206004820152600f60248201527f496e76616c69642072756c696e672e0000000000000000000000000000000000604482015290519081900360640190fd5b600181141561125357600360019054906101000a9004600160a060020a0316600160a060020a03166108fc6006546005541161123257600654611236565b6005545b6040518115909202916000818181858888f193505050505061129e565b600281141561129e57600454600654600554600160a060020a03909216916108fc911061128257600654611286565b6005545b6040518115909202916000818181858888f150505050505b50506009805460ff19166004179055565b6009805460ff191660039081179091556000549054604080517fc13517e100000000000000000000000000000000000000000000000000000000815260ff90921660048301818152602484019283526001805460026101008284161502600019019091160460448601819052600160a060020a039096169563c13517e195889592939291606490910190849080156113885780601f1061135d57610100808354040283529160200191611388565b820191906000526020600020905b81548152906001019060200180831161136b57829003601f168201915b505093505050506020604051808303818588803b1580156113a857600080fd5b505af11580156113bc573d6000803e3d6000fd5b50505050506040513d60208110156113d357600080fd5b50516008819055600080546040805192835251600160a060020a03909116917fc21357d76c2ee05713ed6e2edb9a5f60ab1e8748c56201385df30007f774f58d919081900360200190a3505600a165627a7a723058209e89e227253aa71afd645e5d0acbc15f6590b2acc6e2c2ec146fb352b2db2a3f0029",
  "deployedBytecode": "0x6080604052600436106100fb5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663069fae2a81146101005780630c7ac7b61461014e57806310e1d8ca146101d857806319e2641e14610209578063200d2ed21461021e5780632904011314610257578063311a6c561461026c5780634b40c97414610287578063512491f1146102ae5780636cc6cde1146102c357806370dea79a146102d8578063853c80ce146102ed5780638f71a26514610302578063a010963114610317578063b0a1e2b41461031f578063b1bcce3a14610334578063bac91e2e1461033c578063ce425c8014610395575b600080fd5b6040805160206004803580820135601f810184900484028501840190955284845261014c9436949293602493928401919081908401838280828437509497506103c09650505050505050565b005b34801561015a57600080fd5b50610163610554565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019d578181015183820152602001610185565b50505050905090810190601f1680156101ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101e457600080fd5b506101ed6105e1565b60408051600160a060020a039092168252519081900360200190f35b34801561021557600080fd5b5061014c6105f5565b34801561022a57600080fd5b50610233610732565b6040518082600481111561024357fe5b60ff16815260200191505060405180910390f35b34801561026357600080fd5b506101ed61073b565b34801561027857600080fd5b5061014c60043560243561074a565b34801561029357600080fd5b5061029c610817565b60408051918252519081900360200190f35b3480156102ba57600080fd5b5061029c61081d565b3480156102cf57600080fd5b506101ed610823565b3480156102e457600080fd5b5061029c610832565b3480156102f957600080fd5b5061014c610838565b34801561030e57600080fd5b5061029c61096e565b61014c610974565b34801561032b57600080fd5b5061029c610c67565b61014c610c6d565b34801561034857600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261014c943694929360249392840191908190840183828082843750949750610f3b9650505050505050565b3480156103a157600080fd5b506103aa611135565b6040805160ff9092168252519081900360200190f35b6003546101009004600160a060020a03163314806103e85750600454600160a060020a031633145b1515610464576040805160e560020a62461bcd02815260206004820152602960248201527f43616e206f6e6c792062652063616c6c65642062792070617274792041206f7260448201527f20706172747920422e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008054600854604080517f49912f880000000000000000000000000000000000000000000000000000000081526004810183815260248201928352865160448301528651600160a060020a03909516956349912f88953495948994909260649091019160208601918190849084905b838110156104ec5781810151838201526020016104d4565b50505050905090810190601f1680156105195780820380516001836020036101000a031916815260200191505b5093505050506000604051808303818588803b15801561053857600080fd5b505af115801561054c573d6000803e3d6000fd5b505050505050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105d95780601f106105ae576101008083540402835291602001916105d9565b820191906000526020600020905b8154815290600101906020018083116105bc57829003601f168201915b505050505081565b6003546101009004600160a060020a031681565b6003546101009004600160a060020a0316331461065c576040805160e560020a62461bcd02815260206004820152601e60248201527f43616e206f6e6c792062652063616c6c656420627920706172747920412e0000604482015290519081900360640190fd5b600260095460ff16600481111561066f57fe5b146106c4576040805160e560020a62461bcd02815260206004820152601860248201527f4e6f742077616974696e6720666f7220706172747920422e0000000000000000604482015290519081900360640190fd5b60025460075401421015610722576040805160e560020a62461bcd02815260206004820181905260248201527f5468652074696d656f75742074696d6520686173206e6f74207061737365642e604482015290519081900360640190fd5b60085461073090600161113e565b565b60095460ff1681565b600454600160a060020a031681565b600054600160a060020a031633146107d2576040805160e560020a62461bcd02815260206004820152602560248201527f43616e206f6e6c792062652063616c6c6564206279207468652061726269747260448201527f61746f722e000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b604080518281529051839133917f394027a5fa6e098a1191094d1719d6929b9abc535fcc0c8f448d6a4e756222769181900360200190a3610813828261113e565b5050565b60055481565b60065481565b600054600160a060020a031681565b60025481565b600454600160a060020a0316331461089a576040805160e560020a62461bcd02815260206004820152601e60248201527f43616e206f6e6c792062652063616c6c656420627920706172747920422e0000604482015290519081900360640190fd5b600160095460ff1660048111156108ad57fe5b14610902576040805160e560020a62461bcd02815260206004820152601860248201527f4e6f742077616974696e6720666f7220706172747920412e0000000000000000604482015290519081900360640190fd5b60025460075401421015610960576040805160e560020a62461bcd02815260206004820181905260248201527f5468652074696d656f75742074696d6520686173206e6f74207061737365642e604482015290519081900360640190fd5b60085461073090600261113e565b60075481565b6003546000906101009004600160a060020a031633146109de576040805160e560020a62461bcd02815260206004820152601e60248201527f43616e206f6e6c792062652063616c6c656420627920706172747920412e0000604482015290519081900360640190fd5b6000546040517ff7434ea90000000000000000000000000000000000000000000000000000000081526020600482019081526001805460026000198284161561010002019091160460248401819052600160a060020a039094169363f7434ea993919291829160449091019084908015610a995780601f10610a6e57610100808354040283529160200191610a99565b820191906000526020600020905b815481529060010190602001808311610a7c57829003601f168201915b505092505050602060405180830381600087803b158015610ab957600080fd5b505af1158015610acd573d6000803e3d6000fd5b505050506040513d6020811015610ae357600080fd5b505160058054340190819055909150811115610b6f576040805160e560020a62461bcd02815260206004820152602a60248201527f4e6f7420656e6f7567682045544820746f20636f76657220617262697472617460448201527f696f6e20636f7374732e00000000000000000000000000000000000000000000606482015290519081900360840190fd5b600360095460ff166004811115610b8257fe5b10610bfd576040805160e560020a62461bcd02815260206004820152602160248201527f446973707574652068617320616c7265616479206265656e206372656174656460448201527f2e00000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b42600755600654811115610c5b576009805460ff191660021790556040517fba8db766b5582c21593909b57af48297714ea2c508bfff6c537ce36bb853e5689060019080825b60ff16815260200191505060405180910390a1610c64565b610c64816112af565b50565b60085481565b600454600090600160a060020a03163314610cd2576040805160e560020a62461bcd02815260206004820152601e60248201527f43616e206f6e6c792062652063616c6c656420627920706172747920422e0000604482015290519081900360640190fd5b6000546040517ff7434ea90000000000000000000000000000000000000000000000000000000081526020600482019081526001805460026000198284161561010002019091160460248401819052600160a060020a039094169363f7434ea993919291829160449091019084908015610d8d5780601f10610d6257610100808354040283529160200191610d8d565b820191906000526020600020905b815481529060010190602001808311610d7057829003601f168201915b505092505050602060405180830381600087803b158015610dad57600080fd5b505af1158015610dc1573d6000803e3d6000fd5b505050506040513d6020811015610dd757600080fd5b505160068054340190819055909150811115610e63576040805160e560020a62461bcd02815260206004820152602a60248201527f4e6f7420656e6f7567682045544820746f20636f76657220617262697472617460448201527f696f6e20636f7374732e00000000000000000000000000000000000000000000606482015290519081900360840190fd5b600360095460ff166004811115610e7657fe5b10610ef1576040805160e560020a62461bcd02815260206004820152602160248201527f446973707574652068617320616c7265616479206265656e206372656174656460448201527f2e00000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b42600755600554811115610c5b576009805460ff191660011790556040517fba8db766b5582c21593909b57af48297714ea2c508bfff6c537ce36bb853e568906000908082610c43565b6003546101009004600160a060020a0316331480610f635750600454600160a060020a031633145b1515610fdf576040805160e560020a62461bcd02815260206004820152602960248201527f43616e206f6e6c792062652063616c6c65642062792070617274792041206f7260448201527f20706172747920422e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600360095460ff166004811115610ff257fe5b101561106e576040805160e560020a62461bcd02815260206004820152602560248201527f546865206469737075746520686173206e6f74206265656e206372656174656460448201527f207965742e000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b33600160a060020a03166008546000809054906101000a9004600160a060020a0316600160a060020a03167fdccf2f8b2cc26eafcd61905cba744cff4b81d14740725f6376390dc6298a6a3c846040518080602001828103825283818151815260200191508051906020019080838360005b838110156110f85781810151838201526020016110e0565b50505050905090810190601f1680156111255780820380516001836020036101000a031916815260200191505b509250505060405180910390a450565b60035460ff1681565b6008548214611197576040805160e560020a62461bcd02815260206004820152601160248201527f57726f6e6720646973707574652049442e000000000000000000000000000000604482015290519081900360640190fd5b60035460ff168111156111f4576040805160e560020a62461bcd02815260206004820152600f60248201527f496e76616c69642072756c696e672e0000000000000000000000000000000000604482015290519081900360640190fd5b600181141561125357600360019054906101000a9004600160a060020a0316600160a060020a03166108fc6006546005541161123257600654611236565b6005545b6040518115909202916000818181858888f193505050505061129e565b600281141561129e57600454600654600554600160a060020a03909216916108fc911061128257600654611286565b6005545b6040518115909202916000818181858888f150505050505b50506009805460ff19166004179055565b6009805460ff191660039081179091556000549054604080517fc13517e100000000000000000000000000000000000000000000000000000000815260ff90921660048301818152602484019283526001805460026101008284161502600019019091160460448601819052600160a060020a039096169563c13517e195889592939291606490910190849080156113885780601f1061135d57610100808354040283529160200191611388565b820191906000526020600020905b81548152906001019060200180831161136b57829003601f168201915b505093505050506020604051808303818588803b1580156113a857600080fd5b505af11580156113bc573d6000803e3d6000fd5b50505050506040513d60208110156113d357600080fd5b50516008819055600080546040805192835251600160a060020a03909116917fc21357d76c2ee05713ed6e2edb9a5f60ab1e8748c56201385df30007f774f58d919081900360200190a3505600a165627a7a723058209e89e227253aa71afd645e5d0acbc15f6590b2acc6e2c2ec146fb352b2db2a3f0029",
  "sourceMap": "678:7458:32:-;;;2480:453;8:9:-1;5:2;;;30:1;27;20:12;5:2;2480:453:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2848:10:2;:24;;-1:-1:-1;;;;;;2848:24:2;-1:-1:-1;;;;;2848:24:2;;;;;2480:453:32;;;2882:42:2;;2480:453:32;;;;;;;;;;;;;;;;;2882:42:2;;-1:-1:-1;;2882:42:2;;;;;:::i;:::-;-1:-1:-1;;;2764:7:32;:18;;;2792:6;:19;;2821:6;:16;;-1:-1:-1;;;;;;2821:16:32;-1:-1:-1;;;;;2821:16:32;;;;;-1:-1:-1;;;;;;2792:19:32;2801:10;2792:19;;;-1:-1:-1;;2847:34:32;;;;;;;2896:30;;;;;;;;;;;;;;;-1:-1:-1;;2896:30:32;;;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2896:30:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2480:453;;;;;;678:7458;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;678:7458:32;;;-1:-1:-1;678:7458:32;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;",
  "deployedSourceMap": "678:7458:32:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6945:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6945:132:32;;-1:-1:-1;6945:132:32;;-1:-1:-1;;;;;;;6945:132:32;;;691:32:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;691:32:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;691:32:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;879:21:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;879:21:32;;;;;;;;-1:-1:-1;;;;;879:21:32;;;;;;;;;;;;;;5737:264;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5737:264:32;;;;1246:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1246:20:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;906:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;906:21:32;;;;3332:182:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3332:182:2;;;;;;;933:21:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;933:21:32;;;;;;;;;;;;;;;;;;;;994;;8:9:-1;5:2;;;30:1;27;20:12;5:2;994:21:32;;;;657:28:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;657:28:2;;;;726:19:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;726:19:32;;;;6071:264;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6071:264:32;;;;1055:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1055:27:32;;;;3293:909;;;;1135:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1135:21:32;;;;4380:909;;;;6463:223;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6463:223:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6463:223:32;;-1:-1:-1;6463:223:32;;-1:-1:-1;;;;;;;6463:223:32;845:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;845:28:32;;;;;;;;;;;;;;;;;;;;;;;6945:132;1721:6;;;;;-1:-1:-1;;;;;1721:6:32;1707:10;:20;;:44;;-1:-1:-1;1745:6:32;;-1:-1:-1;;;;;1745:6:32;1731:10;:20;1707:44;1699:98;;;;;;;-1:-1:-1;;;;;1699:98:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7014:10;;;7049:9;;7014:56;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7014:10:32;;;;:17;;7038:9;;7049;7059:10;;7014:56;;;;;;;;;;;;;;;;;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;7014:56:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7014:56:32;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7014:56:32;;;;;6945:132;:::o;691:32:2:-;;;;;;;;;;;;;;;-1:-1:-1;;691:32:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;879:21:32:-;;;;;;-1:-1:-1;;;;;879:21:32;;:::o;5737:264::-;1536:6;;;;;-1:-1:-1;;;;;1536:6:32;1522:10;:20;1514:63;;;;;-1:-1:-1;;;;;1514:63:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;5810:20;5800:6;;;;:30;;;;;;;;;5792:67;;;;;-1:-1:-1;;;;;5792:67:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;5902:7;;5884:15;;:25;5877:3;:32;;5869:77;;;;;-1:-1:-1;;;;;5869:77:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5971:9;;5957:37;;1303:1;5957:13;:37::i;:::-;5737:264::o;1246:20::-;;;;;;:::o;906:21::-;;;-1:-1:-1;;;;;906:21:32;;:::o;3332:182:2:-;851:10;;-1:-1:-1;;;;;851:10:2;829;:33;821:83;;;;;-1:-1:-1;;;;;821:83:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3414:49;;;;;;;;3444:10;;3432;;3414:49;;;;;;;;;3474:33;3488:10;3499:7;3474:13;:33::i;:::-;3332:182;;:::o;933:21:32:-;;;;:::o;994:::-;;;;:::o;657:28:2:-;;;-1:-1:-1;;;;;657:28:2;;:::o;726:19:32:-;;;;:::o;6071:264::-;1629:6;;-1:-1:-1;;;;;1629:6:32;1615:10;:20;1607:63;;;;;-1:-1:-1;;;;;1607:63:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;6144:20;6134:6;;;;:30;;;;;;;;;6126:67;;;;;-1:-1:-1;;;;;6126:67:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;6236:7;;6218:15;;:25;6211:3;:32;;6203:77;;;;;-1:-1:-1;;;;;6203:77:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6305:9;;6291:37;;1340:1;6291:13;:37::i;1055:27::-;;;;:::o;3293:909::-;1536:6;;3366:20;;1536:6;;;-1:-1:-1;;;;;1536:6:32;1522:10;:20;1514:63;;;;;-1:-1:-1;;;;;1514:63:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;3389:10;;:47;;;;;;;;;;;;:10;:47;;;-1:-1:-1;;3389:47:32;;;;:10;:47;;;;;;;;;;;;-1:-1:-1;;;;;3389:10:32;;;;:26;;:10;;:47;;;;;;;;:10;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3389:47:32;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3389:47:32;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3389:47:32;3446:9;:22;;3459:9;3446:22;;;;;3389:47;;-1:-1:-1;3499:28:32;-1:-1:-1;3499:28:32;3478:117;;;;;-1:-1:-1;;;;;3478:117:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3683:21;3674:6;;;;:30;;;;;;;;;3666:76;;;;;-1:-1:-1;;;;;3666:76:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3820:3;3802:15;:21;3950:9;;:27;-1:-1:-1;3946:250:32;;;3993:6;:29;;-1:-1:-1;;3993:29:32;4002:20;3993:29;;;4041:25;;;;3993:29;;4041:25;3993:29;4041:25;;;;;;;;;;;;;;;;;3946:250;;;4156:29;4169:15;4156:12;:29::i;:::-;3293:909;:::o;1135:21::-;;;;:::o;4380:909::-;1629:6;;4453:20;;-1:-1:-1;;;;;1629:6:32;1615:10;:20;1607:63;;;;;-1:-1:-1;;;;;1607:63:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;4476:10;;:47;;;;;;;;;;;;:10;:47;;;-1:-1:-1;;4476:47:32;;;;:10;:47;;;;;;;;;;;;-1:-1:-1;;;;;4476:10:32;;;;:26;;:10;;:47;;;;;;;;:10;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4476:47:32;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4476:47:32;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4476:47:32;4533:9;:22;;4546:9;4533:22;;;;;4476:47;;-1:-1:-1;4586:28:32;-1:-1:-1;4586:28:32;4565:117;;;;;-1:-1:-1;;;;;4565:117:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4770:21;4761:6;;;;:30;;;;;;;;;4753:76;;;;;-1:-1:-1;;;;;4753:76:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4907:3;4889:15;:21;5037:9;;:27;-1:-1:-1;5033:250:32;;;5080:6;:29;;-1:-1:-1;;5080:29:32;5089:20;5080:29;;;5128:25;;;;-1:-1:-1;;5128:25:32;-1:-1:-1;5128:25:32;;6463:223;1721:6;;;;;-1:-1:-1;;;;;1721:6:32;1707:10;:20;;:44;;-1:-1:-1;1745:6:32;;-1:-1:-1;;;;;1745:6:32;1731:10;:20;1707:44;1699:98;;;;;;;-1:-1:-1;;;;;1699:98:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6550:21;6540:6;;;;:31;;;;;;;;;;6532:81;;;;;-1:-1:-1;;;;;6532:81:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6658:10;-1:-1:-1;;;;;6628:51:32;6648:9;;6637:10;;;;;;;;;-1:-1:-1;;;;;6637:10:32;-1:-1:-1;;;;;6628:51:32;;6669:9;6628:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6628:51:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6463:223;:::o;845:28::-;;;;;;:::o;7416:717::-;7511:9;;7497:23;;7489:53;;;;;-1:-1:-1;;;;;7489:53:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;7571:15;;;;7560:26;;;7552:54;;;;;-1:-1:-1;;;;;7552:54:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;1303:1;7886:21;;7882:209;;;7921:6;;;;;;;;;-1:-1:-1;;;;;7921:6:32;-1:-1:-1;;;;;7921:11:32;:58;7945:9;;7933;;:21;:45;;7969:9;;7933:45;;;7957:9;;7933:45;7921:58;;;;;;;;;;;;;;;;;;;;;;7882:209;;;1340:1;7998:21;;7994:97;;;8033:6;;8057:9;;8045;;-1:-1:-1;;;;;8033:6:32;;;;:58;;-1:-1:-1;8045:45:32;;8081:9;;8045:45;;;8069:9;;8045:45;8033:58;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7994:97:32;-1:-1:-1;;8102:6:32;:24;;-1:-1:-1;;8102:24:32;8111:15;8102:24;;;7416:717::o;5407:254::-;5471:6;:30;;-1:-1:-1;;5471:30:32;5480:21;5471:30;;;;;;-1:-1:-1;5523:10:32;5572:15;;5523:85;;;;;;5572:15;;;;5523:85;;;;;;;;;;;;5471:30;5523:85;;;:10;:85;;;;;-1:-1:-1;;5523:85:32;;;;;;;;;;;-1:-1:-1;;;;;5523:10:32;;;;:24;;5554:16;;5471:30;;5523:85;;;;;;;5471:30;;5523:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5523:85:32;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5523:85:32;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5523:85:32;5511:9;:97;;;5631:10;;;5623:31;;;;;;;-1:-1:-1;;;;;5631:10:32;;;;5623:31;;;;;;5523:85;5623:31;;;5407:254;:::o",
  "source": "/**\n *  @title Two-Party Arbitrable\n *  @author Clément Lesaege - <clement@lesaege.com>\n *  Bug Bounties: This code hasn't undertaken a bug bounty program yet.\n */\n\n\npragma solidity ^0.4.15;\nimport \"./Arbitrable.sol\";\n\n\n/** @title Two-Party Arbitrable\n *  @dev A contract between two parties which can be arbitrated. Both parties has to pay for the arbitration fee. The winning party will get its fee refunded.\n *  To develop a contract inheriting from this one, you need to:\n *  - Redefine RULING_OPTIONS to explain the consequences of the possible rulings.\n *  - Redefine executeRuling while still calling super.executeRuling to implement the results of the arbitration.\n */\ncontract TwoPartyArbitrable is Arbitrable {\n    uint public timeout; // Time in second a party can take before being considered unresponding and lose the dispute.\n    uint8 public amountOfChoices;\n    address public partyA;\n    address public partyB;\n    uint public partyAFee; // Total fees paid by the partyA.\n    uint public partyBFee; // Total fees paid by the partyB.\n    uint public lastInteraction; // Last interaction for the dispute procedure.\n    uint public disputeID;\n    enum Status {NoDispute, WaitingPartyA, WaitingPartyB, DisputeCreated, Resolved}\n    Status public status;\n\n    uint8 constant PARTY_A_WINS = 1;\n    uint8 constant PARTY_B_WINS = 2;\n    string constant RULING_OPTIONS = \"Party A wins;Party B wins\"; // A plain English of what rulings do. Need to be redefined by the child class.\n\n    modifier onlyPartyA{require(msg.sender == partyA, \"Can only be called by party A.\"); _;}\n    modifier onlyPartyB{require(msg.sender == partyB, \"Can only be called by party B.\"); _;}\n    modifier onlyParty{require(msg.sender == partyA || msg.sender == partyB, \"Can only be called by party A or party B.\"); _;}\n\n    enum Party {PartyA, PartyB}\n\n    /** @dev Indicate that a party has to pay a fee or would otherwise be considered as loosing.\n     *  @param _party The party who has to pay.\n     */\n    event HasToPayFee(Party _party);\n\n    /** @dev Constructor. Choose the arbitrator.\n     *  @param _arbitrator The arbitrator of the contract.\n     *  @param _timeout Time after which a party automatically loose a dispute.\n     *  @param _partyB The recipient of the transaction.\n     *  @param _amountOfChoices The number of ruling options available.\n     *  @param _arbitratorExtraData Extra data for the arbitrator.\n     *  @param _metaEvidence Link to the meta-evidence.\n     */\n    constructor(\n        Arbitrator _arbitrator, \n        uint _timeout, \n        address _partyB,\n        uint8 _amountOfChoices,\n        bytes _arbitratorExtraData, \n        string _metaEvidence\n    ) \n        Arbitrable(_arbitrator,_arbitratorExtraData) \n        public \n    {\n        timeout = _timeout;\n        partyA = msg.sender;\n        partyB = _partyB;\n        amountOfChoices = _amountOfChoices;\n        emit MetaEvidence(0, _metaEvidence);\n    }\n\n\n    /** @dev Pay the arbitration fee to raise a dispute. To be called by the party A. UNTRUSTED.\n     *  Note that the arbitrator can have createDispute throw, which will make this function \n     *  throw and therefore lead to a party being timed-out.\n     *  This is not a vulnerability as the arbitrator can rule in favor of one party anyway.\n     */\n    function payArbitrationFeeByPartyA() public payable onlyPartyA {\n        uint arbitrationCost = arbitrator.arbitrationCost(arbitratorExtraData);\n        partyAFee += msg.value;\n        require(\n            partyAFee >= arbitrationCost,\n            \"Not enough ETH to cover arbitration costs.\"\n        ); // Require that the total pay at least the arbitration cost.\n        require(status < Status.DisputeCreated, \"Dispute has already been created.\"); // Make sure a dispute has not been created yet.\n\n        lastInteraction = now;\n        // The partyB still has to pay. This can also happens if he has paid, but arbitrationCost has increased.\n        if (partyBFee < arbitrationCost) {\n            status = Status.WaitingPartyB;\n            emit HasToPayFee(Party.PartyB);\n        } else { // The partyB has also paid the fee. We create the dispute\n            raiseDispute(arbitrationCost);\n        }\n    }\n\n\n    /** @dev Pay the arbitration fee to raise a dispute. To be called by the party B. UNTRUSTED.\n     *  Note that this function mirror payArbitrationFeeByPartyA.\n     */\n    function payArbitrationFeeByPartyB() public payable onlyPartyB {\n        uint arbitrationCost = arbitrator.arbitrationCost(arbitratorExtraData);\n        partyBFee += msg.value;\n        require(\n            partyBFee >= arbitrationCost,\n            \"Not enough ETH to cover arbitration costs.\"\n        ); // Require that the total pay at least the arbitration cost.\n        require(status < Status.DisputeCreated, \"Dispute has already been created.\"); // Make sure a dispute has not been created yet.\n\n        lastInteraction = now;\n        // The partyA still has to pay. This can also happens if he has paid, but arbitrationCost has increased.\n        if (partyAFee < arbitrationCost) {\n            status = Status.WaitingPartyA;\n            emit HasToPayFee(Party.PartyA);\n        } else { // The partyA has also paid the fee. We create the dispute\n            raiseDispute(arbitrationCost);\n        }\n    }\n\n    /** @dev Create a dispute. UNTRUSTED.\n     *  @param _arbitrationCost Amount to pay the arbitrator.\n     */\n    function raiseDispute(uint _arbitrationCost) internal {\n        status = Status.DisputeCreated;\n        disputeID = arbitrator.createDispute.value(_arbitrationCost)(amountOfChoices,arbitratorExtraData);\n        emit Dispute(arbitrator,disputeID,0);\n    }\n\n    /** @dev Reimburse partyA if partyB fails to pay the fee.\n     */\n    function timeOutByPartyA() public onlyPartyA {\n        require(status == Status.WaitingPartyB, \"Not waiting for party B.\");\n        require(now >= lastInteraction + timeout, \"The timeout time has not passed.\");\n\n        executeRuling(disputeID,PARTY_A_WINS);\n    }\n\n    /** @dev Pay partyB if partyA fails to pay the fee.\n     */\n    function timeOutByPartyB() public onlyPartyB {\n        require(status == Status.WaitingPartyA, \"Not waiting for party A.\");\n        require(now >= lastInteraction + timeout, \"The timeout time has not passed.\");\n\n        executeRuling(disputeID,PARTY_B_WINS);\n    }\n\n    /** @dev Submit a reference to evidence. EVENT.\n     *  @param _evidence A link to an evidence using its URI.\n     */\n    function submitEvidence(string _evidence) public onlyParty {\n        require(status >= Status.DisputeCreated, \"The dispute has not been created yet.\");\n        emit Evidence(arbitrator,disputeID,msg.sender,_evidence);\n    }\n\n    /** @dev Appeal an appealable ruling.\n     *  Transfer the funds to the arbitrator.\n     *  Note that no checks are required as the checks are done by the arbitrator.\n     *  @param _extraData Extra data for the arbitrator appeal procedure.\n     */\n    function appeal(bytes _extraData) public onlyParty payable {\n        arbitrator.appeal.value(msg.value)(disputeID,_extraData);\n    }\n\n    /** @dev Execute a ruling of a dispute. It reimburse the fee to the winning party.\n     *  This need to be extended by contract inheriting from it.\n     *  @param _disputeID ID of the dispute in the Arbitrator contract.\n     *  @param _ruling Ruling given by the arbitrator. 1 : Reimburse the partyA. 2 : Pay the partyB.\n     */\n    function executeRuling(uint _disputeID, uint _ruling) internal {\n        require(_disputeID == disputeID, \"Wrong dispute ID.\");\n        require(_ruling <= amountOfChoices, \"Invalid ruling.\");\n\n        // Give the arbitration fee back.\n        // Note that we use send to prevent a party from blocking the execution.\n        // In both cases sends the highest amount paid to avoid ETH to be stuck in \n        // the contract if the arbitrator lowers its fee.\n        if (_ruling==PARTY_A_WINS)\n            partyA.send(partyAFee > partyBFee ? partyAFee : partyBFee);\n        else if (_ruling==PARTY_B_WINS)\n            partyB.send(partyAFee > partyBFee ? partyAFee : partyBFee);\n\n        status = Status.Resolved;\n    }\n\n}\n",
  "sourcePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/TwoPartyArbitrable.sol",
  "ast": {
    "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/TwoPartyArbitrable.sol",
    "exportedSymbols": {
      "TwoPartyArbitrable": [
        10439
      ]
    },
    "id": 10440,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 10013,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".15"
        ],
        "nodeType": "PragmaDirective",
        "src": "167:24:32"
      },
      {
        "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/Arbitrable.sol",
        "file": "./Arbitrable.sol",
        "id": 10014,
        "nodeType": "ImportDirective",
        "scope": 10440,
        "sourceUnit": 596,
        "src": "192:26:32",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 10015,
              "name": "Arbitrable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 595,
              "src": "709:10:32",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Arbitrable_$595",
                "typeString": "contract Arbitrable"
              }
            },
            "id": 10016,
            "nodeType": "InheritanceSpecifier",
            "src": "709:10:32"
          }
        ],
        "contractDependencies": [
          595
        ],
        "contractKind": "contract",
        "documentation": "@title Two-Party Arbitrable\n @dev A contract between two parties which can be arbitrated. Both parties has to pay for the arbitration fee. The winning party will get its fee refunded.\n To develop a contract inheriting from this one, you need to:\n - Redefine RULING_OPTIONS to explain the consequences of the possible rulings.\n - Redefine executeRuling while still calling super.executeRuling to implement the results of the arbitration.",
        "fullyImplemented": true,
        "id": 10439,
        "linearizedBaseContracts": [
          10439,
          595
        ],
        "name": "TwoPartyArbitrable",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 10018,
            "name": "timeout",
            "nodeType": "VariableDeclaration",
            "scope": 10439,
            "src": "726:19:32",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10017,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "726:4:32",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 10020,
            "name": "amountOfChoices",
            "nodeType": "VariableDeclaration",
            "scope": 10439,
            "src": "845:28:32",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 10019,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "845:5:32",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 10022,
            "name": "partyA",
            "nodeType": "VariableDeclaration",
            "scope": 10439,
            "src": "879:21:32",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 10021,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "879:7:32",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 10024,
            "name": "partyB",
            "nodeType": "VariableDeclaration",
            "scope": 10439,
            "src": "906:21:32",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 10023,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "906:7:32",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 10026,
            "name": "partyAFee",
            "nodeType": "VariableDeclaration",
            "scope": 10439,
            "src": "933:21:32",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10025,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "933:4:32",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 10028,
            "name": "partyBFee",
            "nodeType": "VariableDeclaration",
            "scope": 10439,
            "src": "994:21:32",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10027,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "994:4:32",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 10030,
            "name": "lastInteraction",
            "nodeType": "VariableDeclaration",
            "scope": 10439,
            "src": "1055:27:32",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10029,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1055:4:32",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 10032,
            "name": "disputeID",
            "nodeType": "VariableDeclaration",
            "scope": 10439,
            "src": "1135:21:32",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10031,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1135:4:32",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "canonicalName": "TwoPartyArbitrable.Status",
            "id": 10038,
            "members": [
              {
                "id": 10033,
                "name": "NoDispute",
                "nodeType": "EnumValue",
                "src": "1175:9:32"
              },
              {
                "id": 10034,
                "name": "WaitingPartyA",
                "nodeType": "EnumValue",
                "src": "1186:13:32"
              },
              {
                "id": 10035,
                "name": "WaitingPartyB",
                "nodeType": "EnumValue",
                "src": "1201:13:32"
              },
              {
                "id": 10036,
                "name": "DisputeCreated",
                "nodeType": "EnumValue",
                "src": "1216:14:32"
              },
              {
                "id": 10037,
                "name": "Resolved",
                "nodeType": "EnumValue",
                "src": "1232:8:32"
              }
            ],
            "name": "Status",
            "nodeType": "EnumDefinition",
            "src": "1162:79:32"
          },
          {
            "constant": false,
            "id": 10040,
            "name": "status",
            "nodeType": "VariableDeclaration",
            "scope": 10439,
            "src": "1246:20:32",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_enum$_Status_$10038",
              "typeString": "enum TwoPartyArbitrable.Status"
            },
            "typeName": {
              "contractScope": null,
              "id": 10039,
              "name": "Status",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 10038,
              "src": "1246:6:32",
              "typeDescriptions": {
                "typeIdentifier": "t_enum$_Status_$10038",
                "typeString": "enum TwoPartyArbitrable.Status"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 10043,
            "name": "PARTY_A_WINS",
            "nodeType": "VariableDeclaration",
            "scope": 10439,
            "src": "1273:31:32",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 10041,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "1273:5:32",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "31",
              "id": 10042,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1303:1:32",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1_by_1",
                "typeString": "int_const 1"
              },
              "value": "1"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 10046,
            "name": "PARTY_B_WINS",
            "nodeType": "VariableDeclaration",
            "scope": 10439,
            "src": "1310:31:32",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 10044,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "1310:5:32",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "32",
              "id": 10045,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1340:1:32",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_2_by_1",
                "typeString": "int_const 2"
              },
              "value": "2"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 10049,
            "name": "RULING_OPTIONS",
            "nodeType": "VariableDeclaration",
            "scope": 10439,
            "src": "1347:60:32",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 10047,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1347:6:32",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "506172747920412077696e733b506172747920422077696e73",
              "id": 10048,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1380:27:32",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_a9bb0285e06a0f4a385c0b2c1c099df224b3ca7e76988c6a71339dd91d802a24",
                "typeString": "literal_string \"Party A wins;Party B wins\""
              },
              "value": "Party A wins;Party B wins"
            },
            "visibility": "internal"
          },
          {
            "body": {
              "id": 10060,
              "nodeType": "Block",
              "src": "1513:69:32",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 10055,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 10052,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20639,
                            "src": "1522:3:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 10053,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1522:10:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 10054,
                          "name": "partyA",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10022,
                          "src": "1536:6:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "1522:20:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616e206f6e6c792062652063616c6c656420627920706172747920412e",
                        "id": 10056,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1544:32:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_18761c3a468d0eaa2562f82b32b5aad7e384a096b3c2bdf03633ae0e34a7f6aa",
                          "typeString": "literal_string \"Can only be called by party A.\""
                        },
                        "value": "Can only be called by party A."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_18761c3a468d0eaa2562f82b32b5aad7e384a096b3c2bdf03633ae0e34a7f6aa",
                          "typeString": "literal_string \"Can only be called by party A.\""
                        }
                      ],
                      "id": 10051,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "1514:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10057,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1514:63:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10058,
                  "nodeType": "ExpressionStatement",
                  "src": "1514:63:32"
                },
                {
                  "id": 10059,
                  "nodeType": "PlaceholderStatement",
                  "src": "1579:1:32"
                }
              ]
            },
            "documentation": null,
            "id": 10061,
            "name": "onlyPartyA",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 10050,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1513:0:32"
            },
            "src": "1494:88:32",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 10072,
              "nodeType": "Block",
              "src": "1606:69:32",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 10067,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 10064,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20639,
                            "src": "1615:3:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 10065,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1615:10:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 10066,
                          "name": "partyB",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10024,
                          "src": "1629:6:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "1615:20:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616e206f6e6c792062652063616c6c656420627920706172747920422e",
                        "id": 10068,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1637:32:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c6facbc720898ae97acc3dab6cd6ea01fa0ea97af972d443e80f2af0911d986d",
                          "typeString": "literal_string \"Can only be called by party B.\""
                        },
                        "value": "Can only be called by party B."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c6facbc720898ae97acc3dab6cd6ea01fa0ea97af972d443e80f2af0911d986d",
                          "typeString": "literal_string \"Can only be called by party B.\""
                        }
                      ],
                      "id": 10063,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "1607:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10069,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1607:63:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10070,
                  "nodeType": "ExpressionStatement",
                  "src": "1607:63:32"
                },
                {
                  "id": 10071,
                  "nodeType": "PlaceholderStatement",
                  "src": "1672:1:32"
                }
              ]
            },
            "documentation": null,
            "id": 10073,
            "name": "onlyPartyB",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 10062,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1606:0:32"
            },
            "src": "1587:88:32",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 10089,
              "nodeType": "Block",
              "src": "1698:104:32",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 10084,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 10079,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 10076,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20639,
                              "src": "1707:3:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 10077,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1707:10:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 10078,
                            "name": "partyA",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10022,
                            "src": "1721:6:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "1707:20:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 10083,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 10080,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20639,
                              "src": "1731:3:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 10081,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1731:10:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 10082,
                            "name": "partyB",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10024,
                            "src": "1745:6:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "1731:20:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1707:44:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616e206f6e6c792062652063616c6c65642062792070617274792041206f7220706172747920422e",
                        "id": 10085,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1753:43:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9a2e2b243909f8bd6cdb33700187415c876a65f5d3755e283c9a0e44bd274d9d",
                          "typeString": "literal_string \"Can only be called by party A or party B.\""
                        },
                        "value": "Can only be called by party A or party B."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9a2e2b243909f8bd6cdb33700187415c876a65f5d3755e283c9a0e44bd274d9d",
                          "typeString": "literal_string \"Can only be called by party A or party B.\""
                        }
                      ],
                      "id": 10075,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "1699:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10086,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1699:98:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10087,
                  "nodeType": "ExpressionStatement",
                  "src": "1699:98:32"
                },
                {
                  "id": 10088,
                  "nodeType": "PlaceholderStatement",
                  "src": "1799:1:32"
                }
              ]
            },
            "documentation": null,
            "id": 10090,
            "name": "onlyParty",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 10074,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1698:0:32"
            },
            "src": "1680:122:32",
            "visibility": "internal"
          },
          {
            "canonicalName": "TwoPartyArbitrable.Party",
            "id": 10093,
            "members": [
              {
                "id": 10091,
                "name": "PartyA",
                "nodeType": "EnumValue",
                "src": "1820:6:32"
              },
              {
                "id": 10092,
                "name": "PartyB",
                "nodeType": "EnumValue",
                "src": "1828:6:32"
              }
            ],
            "name": "Party",
            "nodeType": "EnumDefinition",
            "src": "1808:27:32"
          },
          {
            "anonymous": false,
            "documentation": "@dev Indicate that a party has to pay a fee or would otherwise be considered as loosing.\n @param _party The party who has to pay.",
            "id": 10097,
            "name": "HasToPayFee",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 10096,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10095,
                  "indexed": false,
                  "name": "_party",
                  "nodeType": "VariableDeclaration",
                  "scope": 10097,
                  "src": "2012:12:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Party_$10093",
                    "typeString": "enum TwoPartyArbitrable.Party"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10094,
                    "name": "Party",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 10093,
                    "src": "2012:5:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Party_$10093",
                      "typeString": "enum TwoPartyArbitrable.Party"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2011:14:32"
            },
            "src": "1994:32:32"
          },
          {
            "body": {
              "id": 10138,
              "nodeType": "Block",
              "src": "2754:179:32",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10118,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10116,
                      "name": "timeout",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10018,
                      "src": "2764:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10117,
                      "name": "_timeout",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10101,
                      "src": "2774:8:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2764:18:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10119,
                  "nodeType": "ExpressionStatement",
                  "src": "2764:18:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10123,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10120,
                      "name": "partyA",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10022,
                      "src": "2792:6:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 10121,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20639,
                        "src": "2801:3:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 10122,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2801:10:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2792:19:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 10124,
                  "nodeType": "ExpressionStatement",
                  "src": "2792:19:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10127,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10125,
                      "name": "partyB",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10024,
                      "src": "2821:6:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10126,
                      "name": "_partyB",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10103,
                      "src": "2830:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2821:16:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 10128,
                  "nodeType": "ExpressionStatement",
                  "src": "2821:16:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10131,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10129,
                      "name": "amountOfChoices",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10020,
                      "src": "2847:15:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10130,
                      "name": "_amountOfChoices",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10105,
                      "src": "2865:16:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "src": "2847:34:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "id": 10132,
                  "nodeType": "ExpressionStatement",
                  "src": "2847:34:32"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 10134,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2909:1:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "id": 10135,
                        "name": "_metaEvidence",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10109,
                        "src": "2912:13:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 10133,
                      "name": "MetaEvidence",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 521,
                      "src": "2896:12:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,string memory)"
                      }
                    },
                    "id": 10136,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2896:30:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10137,
                  "nodeType": "EmitStatement",
                  "src": "2891:35:32"
                }
              ]
            },
            "documentation": "@dev Constructor. Choose the arbitrator.\n @param _arbitrator The arbitrator of the contract.\n @param _timeout Time after which a party automatically loose a dispute.\n @param _partyB The recipient of the transaction.\n @param _amountOfChoices The number of ruling options available.\n @param _arbitratorExtraData Extra data for the arbitrator.\n @param _metaEvidence Link to the meta-evidence.",
            "id": 10139,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 10112,
                    "name": "_arbitrator",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 10099,
                    "src": "2699:11:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Arbitrator_$4021",
                      "typeString": "contract Arbitrator"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 10113,
                    "name": "_arbitratorExtraData",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 10107,
                    "src": "2711:20:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  }
                ],
                "id": 10114,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 10111,
                  "name": "Arbitrable",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 595,
                  "src": "2688:10:32",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_Arbitrable_$595_$",
                    "typeString": "type(contract Arbitrable)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2688:44:32"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10110,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10099,
                  "name": "_arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 10139,
                  "src": "2501:22:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Arbitrator_$4021",
                    "typeString": "contract Arbitrator"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10098,
                    "name": "Arbitrator",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4021,
                    "src": "2501:10:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Arbitrator_$4021",
                      "typeString": "contract Arbitrator"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10101,
                  "name": "_timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 10139,
                  "src": "2534:13:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10100,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2534:4:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10103,
                  "name": "_partyB",
                  "nodeType": "VariableDeclaration",
                  "scope": 10139,
                  "src": "2558:15:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10102,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2558:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10105,
                  "name": "_amountOfChoices",
                  "nodeType": "VariableDeclaration",
                  "scope": 10139,
                  "src": "2583:22:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 10104,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "2583:5:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10107,
                  "name": "_arbitratorExtraData",
                  "nodeType": "VariableDeclaration",
                  "scope": 10139,
                  "src": "2615:26:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 10106,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2615:5:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10109,
                  "name": "_metaEvidence",
                  "nodeType": "VariableDeclaration",
                  "scope": 10139,
                  "src": "2652:20:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 10108,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2652:6:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2491:187:32"
            },
            "payable": false,
            "returnParameters": {
              "id": 10115,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2754:0:32"
            },
            "scope": 10439,
            "src": "2480:453:32",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10195,
              "nodeType": "Block",
              "src": "3356:846:32",
              "statements": [
                {
                  "assignments": [
                    10145
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10145,
                      "name": "arbitrationCost",
                      "nodeType": "VariableDeclaration",
                      "scope": 10196,
                      "src": "3366:20:32",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 10144,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "3366:4:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 10150,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 10148,
                        "name": "arbitratorExtraData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 501,
                        "src": "3416:19:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage",
                          "typeString": "bytes storage ref"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_storage",
                          "typeString": "bytes storage ref"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 10146,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 499,
                        "src": "3389:10:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Arbitrator_$4021",
                          "typeString": "contract Arbitrator"
                        }
                      },
                      "id": 10147,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "arbitrationCost",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3967,
                      "src": "3389:26:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (bytes memory) view external returns (uint256)"
                      }
                    },
                    "id": 10149,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3389:47:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3366:70:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10154,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10151,
                      "name": "partyAFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10026,
                      "src": "3446:9:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 10152,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20639,
                        "src": "3459:3:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 10153,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "3459:9:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3446:22:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10155,
                  "nodeType": "ExpressionStatement",
                  "src": "3446:22:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 10159,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 10157,
                          "name": "partyAFee",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10026,
                          "src": "3499:9:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 10158,
                          "name": "arbitrationCost",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10145,
                          "src": "3512:15:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "3499:28:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f7420656e6f7567682045544820746f20636f766572206172626974726174696f6e20636f7374732e",
                        "id": 10160,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3541:44:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a1af5fd889c47f413805f3e7ab28c2126990ca133ff4d9cb5f76335a7c5ca974",
                          "typeString": "literal_string \"Not enough ETH to cover arbitration costs.\""
                        },
                        "value": "Not enough ETH to cover arbitration costs."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a1af5fd889c47f413805f3e7ab28c2126990ca133ff4d9cb5f76335a7c5ca974",
                          "typeString": "literal_string \"Not enough ETH to cover arbitration costs.\""
                        }
                      ],
                      "id": 10156,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "3478:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10161,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3478:117:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10162,
                  "nodeType": "ExpressionStatement",
                  "src": "3478:117:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Status_$10038",
                          "typeString": "enum TwoPartyArbitrable.Status"
                        },
                        "id": 10167,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 10164,
                          "name": "status",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10040,
                          "src": "3674:6:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$10038",
                            "typeString": "enum TwoPartyArbitrable.Status"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 10165,
                            "name": "Status",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10038,
                            "src": "3683:6:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Status_$10038_$",
                              "typeString": "type(enum TwoPartyArbitrable.Status)"
                            }
                          },
                          "id": 10166,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "DisputeCreated",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3683:21:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$10038",
                            "typeString": "enum TwoPartyArbitrable.Status"
                          }
                        },
                        "src": "3674:30:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "446973707574652068617320616c7265616479206265656e20637265617465642e",
                        "id": 10168,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3706:35:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_12a3d561391026bf16363385b702fb97b57574ceb4b814754c337973a387f686",
                          "typeString": "literal_string \"Dispute has already been created.\""
                        },
                        "value": "Dispute has already been created."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_12a3d561391026bf16363385b702fb97b57574ceb4b814754c337973a387f686",
                          "typeString": "literal_string \"Dispute has already been created.\""
                        }
                      ],
                      "id": 10163,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "3666:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10169,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3666:76:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10170,
                  "nodeType": "ExpressionStatement",
                  "src": "3666:76:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10173,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10171,
                      "name": "lastInteraction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10030,
                      "src": "3802:15:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10172,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 20641,
                      "src": "3820:3:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3802:21:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10174,
                  "nodeType": "ExpressionStatement",
                  "src": "3802:21:32"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10177,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 10175,
                      "name": "partyBFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10028,
                      "src": "3950:9:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 10176,
                      "name": "arbitrationCost",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10145,
                      "src": "3962:15:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3950:27:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 10193,
                    "nodeType": "Block",
                    "src": "4083:113:32",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 10190,
                              "name": "arbitrationCost",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10145,
                              "src": "4169:15:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 10189,
                            "name": "raiseDispute",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10281,
                            "src": "4156:12:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256)"
                            }
                          },
                          "id": 10191,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4156:29:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 10192,
                        "nodeType": "ExpressionStatement",
                        "src": "4156:29:32"
                      }
                    ]
                  },
                  "id": 10194,
                  "nodeType": "IfStatement",
                  "src": "3946:250:32",
                  "trueBody": {
                    "id": 10188,
                    "nodeType": "Block",
                    "src": "3979:98:32",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 10181,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 10178,
                            "name": "status",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10040,
                            "src": "3993:6:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Status_$10038",
                              "typeString": "enum TwoPartyArbitrable.Status"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 10179,
                              "name": "Status",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10038,
                              "src": "4002:6:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Status_$10038_$",
                                "typeString": "type(enum TwoPartyArbitrable.Status)"
                              }
                            },
                            "id": 10180,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "WaitingPartyB",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "4002:20:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Status_$10038",
                              "typeString": "enum TwoPartyArbitrable.Status"
                            }
                          },
                          "src": "3993:29:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$10038",
                            "typeString": "enum TwoPartyArbitrable.Status"
                          }
                        },
                        "id": 10182,
                        "nodeType": "ExpressionStatement",
                        "src": "3993:29:32"
                      },
                      {
                        "eventCall": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 10184,
                                "name": "Party",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10093,
                                "src": "4053:5:32",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_Party_$10093_$",
                                  "typeString": "type(enum TwoPartyArbitrable.Party)"
                                }
                              },
                              "id": 10185,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "PartyB",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "4053:12:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_Party_$10093",
                                "typeString": "enum TwoPartyArbitrable.Party"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_enum$_Party_$10093",
                                "typeString": "enum TwoPartyArbitrable.Party"
                              }
                            ],
                            "id": 10183,
                            "name": "HasToPayFee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10097,
                            "src": "4041:11:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_enum$_Party_$10093_$returns$__$",
                              "typeString": "function (enum TwoPartyArbitrable.Party)"
                            }
                          },
                          "id": 10186,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4041:25:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 10187,
                        "nodeType": "EmitStatement",
                        "src": "4036:30:32"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Pay the arbitration fee to raise a dispute. To be called by the party A. UNTRUSTED.\n Note that the arbitrator can have createDispute throw, which will make this function \n throw and therefore lead to a party being timed-out.\n This is not a vulnerability as the arbitrator can rule in favor of one party anyway.",
            "id": 10196,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 10142,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 10141,
                  "name": "onlyPartyA",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 10061,
                  "src": "3345:10:32",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3345:10:32"
              }
            ],
            "name": "payArbitrationFeeByPartyA",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10140,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3327:2:32"
            },
            "payable": true,
            "returnParameters": {
              "id": 10143,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3356:0:32"
            },
            "scope": 10439,
            "src": "3293:909:32",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10252,
              "nodeType": "Block",
              "src": "4443:846:32",
              "statements": [
                {
                  "assignments": [
                    10202
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10202,
                      "name": "arbitrationCost",
                      "nodeType": "VariableDeclaration",
                      "scope": 10253,
                      "src": "4453:20:32",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 10201,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4453:4:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 10207,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 10205,
                        "name": "arbitratorExtraData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 501,
                        "src": "4503:19:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage",
                          "typeString": "bytes storage ref"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_storage",
                          "typeString": "bytes storage ref"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 10203,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 499,
                        "src": "4476:10:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Arbitrator_$4021",
                          "typeString": "contract Arbitrator"
                        }
                      },
                      "id": 10204,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "arbitrationCost",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3967,
                      "src": "4476:26:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (bytes memory) view external returns (uint256)"
                      }
                    },
                    "id": 10206,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4476:47:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4453:70:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10211,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10208,
                      "name": "partyBFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10028,
                      "src": "4533:9:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 10209,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20639,
                        "src": "4546:3:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 10210,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "4546:9:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4533:22:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10212,
                  "nodeType": "ExpressionStatement",
                  "src": "4533:22:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 10216,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 10214,
                          "name": "partyBFee",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10028,
                          "src": "4586:9:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 10215,
                          "name": "arbitrationCost",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10202,
                          "src": "4599:15:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "4586:28:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f7420656e6f7567682045544820746f20636f766572206172626974726174696f6e20636f7374732e",
                        "id": 10217,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4628:44:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a1af5fd889c47f413805f3e7ab28c2126990ca133ff4d9cb5f76335a7c5ca974",
                          "typeString": "literal_string \"Not enough ETH to cover arbitration costs.\""
                        },
                        "value": "Not enough ETH to cover arbitration costs."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a1af5fd889c47f413805f3e7ab28c2126990ca133ff4d9cb5f76335a7c5ca974",
                          "typeString": "literal_string \"Not enough ETH to cover arbitration costs.\""
                        }
                      ],
                      "id": 10213,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "4565:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10218,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4565:117:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10219,
                  "nodeType": "ExpressionStatement",
                  "src": "4565:117:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Status_$10038",
                          "typeString": "enum TwoPartyArbitrable.Status"
                        },
                        "id": 10224,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 10221,
                          "name": "status",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10040,
                          "src": "4761:6:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$10038",
                            "typeString": "enum TwoPartyArbitrable.Status"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 10222,
                            "name": "Status",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10038,
                            "src": "4770:6:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Status_$10038_$",
                              "typeString": "type(enum TwoPartyArbitrable.Status)"
                            }
                          },
                          "id": 10223,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "DisputeCreated",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4770:21:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$10038",
                            "typeString": "enum TwoPartyArbitrable.Status"
                          }
                        },
                        "src": "4761:30:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "446973707574652068617320616c7265616479206265656e20637265617465642e",
                        "id": 10225,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4793:35:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_12a3d561391026bf16363385b702fb97b57574ceb4b814754c337973a387f686",
                          "typeString": "literal_string \"Dispute has already been created.\""
                        },
                        "value": "Dispute has already been created."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_12a3d561391026bf16363385b702fb97b57574ceb4b814754c337973a387f686",
                          "typeString": "literal_string \"Dispute has already been created.\""
                        }
                      ],
                      "id": 10220,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "4753:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10226,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4753:76:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10227,
                  "nodeType": "ExpressionStatement",
                  "src": "4753:76:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10230,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10228,
                      "name": "lastInteraction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10030,
                      "src": "4889:15:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10229,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 20641,
                      "src": "4907:3:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4889:21:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10231,
                  "nodeType": "ExpressionStatement",
                  "src": "4889:21:32"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10234,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 10232,
                      "name": "partyAFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10026,
                      "src": "5037:9:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 10233,
                      "name": "arbitrationCost",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10202,
                      "src": "5049:15:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5037:27:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 10250,
                    "nodeType": "Block",
                    "src": "5170:113:32",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 10247,
                              "name": "arbitrationCost",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10202,
                              "src": "5256:15:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 10246,
                            "name": "raiseDispute",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10281,
                            "src": "5243:12:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256)"
                            }
                          },
                          "id": 10248,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5243:29:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 10249,
                        "nodeType": "ExpressionStatement",
                        "src": "5243:29:32"
                      }
                    ]
                  },
                  "id": 10251,
                  "nodeType": "IfStatement",
                  "src": "5033:250:32",
                  "trueBody": {
                    "id": 10245,
                    "nodeType": "Block",
                    "src": "5066:98:32",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 10238,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 10235,
                            "name": "status",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10040,
                            "src": "5080:6:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Status_$10038",
                              "typeString": "enum TwoPartyArbitrable.Status"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 10236,
                              "name": "Status",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10038,
                              "src": "5089:6:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Status_$10038_$",
                                "typeString": "type(enum TwoPartyArbitrable.Status)"
                              }
                            },
                            "id": 10237,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "WaitingPartyA",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "5089:20:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Status_$10038",
                              "typeString": "enum TwoPartyArbitrable.Status"
                            }
                          },
                          "src": "5080:29:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$10038",
                            "typeString": "enum TwoPartyArbitrable.Status"
                          }
                        },
                        "id": 10239,
                        "nodeType": "ExpressionStatement",
                        "src": "5080:29:32"
                      },
                      {
                        "eventCall": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 10241,
                                "name": "Party",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10093,
                                "src": "5140:5:32",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_Party_$10093_$",
                                  "typeString": "type(enum TwoPartyArbitrable.Party)"
                                }
                              },
                              "id": 10242,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "PartyA",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "5140:12:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_Party_$10093",
                                "typeString": "enum TwoPartyArbitrable.Party"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_enum$_Party_$10093",
                                "typeString": "enum TwoPartyArbitrable.Party"
                              }
                            ],
                            "id": 10240,
                            "name": "HasToPayFee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10097,
                            "src": "5128:11:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_enum$_Party_$10093_$returns$__$",
                              "typeString": "function (enum TwoPartyArbitrable.Party)"
                            }
                          },
                          "id": 10243,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5128:25:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 10244,
                        "nodeType": "EmitStatement",
                        "src": "5123:30:32"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Pay the arbitration fee to raise a dispute. To be called by the party B. UNTRUSTED.\n Note that this function mirror payArbitrationFeeByPartyA.",
            "id": 10253,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 10199,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 10198,
                  "name": "onlyPartyB",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 10073,
                  "src": "4432:10:32",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4432:10:32"
              }
            ],
            "name": "payArbitrationFeeByPartyB",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10197,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4414:2:32"
            },
            "payable": true,
            "returnParameters": {
              "id": 10200,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4443:0:32"
            },
            "scope": 10439,
            "src": "4380:909:32",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10280,
              "nodeType": "Block",
              "src": "5461:200:32",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10261,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10258,
                      "name": "status",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10040,
                      "src": "5471:6:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$10038",
                        "typeString": "enum TwoPartyArbitrable.Status"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 10259,
                        "name": "Status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10038,
                        "src": "5480:6:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Status_$10038_$",
                          "typeString": "type(enum TwoPartyArbitrable.Status)"
                        }
                      },
                      "id": 10260,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "DisputeCreated",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "5480:21:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$10038",
                        "typeString": "enum TwoPartyArbitrable.Status"
                      }
                    },
                    "src": "5471:30:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Status_$10038",
                      "typeString": "enum TwoPartyArbitrable.Status"
                    }
                  },
                  "id": 10262,
                  "nodeType": "ExpressionStatement",
                  "src": "5471:30:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10272,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10263,
                      "name": "disputeID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10032,
                      "src": "5511:9:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 10269,
                          "name": "amountOfChoices",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10020,
                          "src": "5572:15:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 10270,
                          "name": "arbitratorExtraData",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 501,
                          "src": "5588:19:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage",
                            "typeString": "bytes storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          {
                            "typeIdentifier": "t_bytes_storage",
                            "typeString": "bytes storage ref"
                          }
                        ],
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 10267,
                            "name": "_arbitrationCost",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10255,
                            "src": "5554:16:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 10264,
                              "name": "arbitrator",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 499,
                              "src": "5523:10:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Arbitrator_$4021",
                                "typeString": "contract Arbitrator"
                              }
                            },
                            "id": 10265,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "createDispute",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3960,
                            "src": "5523:24:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$",
                              "typeString": "function (uint256,bytes memory) payable external returns (uint256)"
                            }
                          },
                          "id": 10266,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5523:30:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$value_$",
                            "typeString": "function (uint256) returns (function (uint256,bytes memory) payable external returns (uint256))"
                          }
                        },
                        "id": 10268,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5523:48:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$value",
                          "typeString": "function (uint256,bytes memory) payable external returns (uint256)"
                        }
                      },
                      "id": 10271,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5523:85:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5511:97:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10273,
                  "nodeType": "ExpressionStatement",
                  "src": "5511:97:32"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 10275,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 499,
                        "src": "5631:10:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Arbitrator_$4021",
                          "typeString": "contract Arbitrator"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 10276,
                        "name": "disputeID",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10032,
                        "src": "5642:9:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 10277,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5652:1:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Arbitrator_$4021",
                          "typeString": "contract Arbitrator"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 10274,
                      "name": "Dispute",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 529,
                      "src": "5623:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Arbitrator_$4021_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (contract Arbitrator,uint256,uint256)"
                      }
                    },
                    "id": 10278,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5623:31:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10279,
                  "nodeType": "EmitStatement",
                  "src": "5618:36:32"
                }
              ]
            },
            "documentation": "@dev Create a dispute. UNTRUSTED.\n @param _arbitrationCost Amount to pay the arbitrator.",
            "id": 10281,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "raiseDispute",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10256,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10255,
                  "name": "_arbitrationCost",
                  "nodeType": "VariableDeclaration",
                  "scope": 10281,
                  "src": "5429:21:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10254,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5429:4:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5428:23:32"
            },
            "payable": false,
            "returnParameters": {
              "id": 10257,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5461:0:32"
            },
            "scope": 10439,
            "src": "5407:254:32",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 10308,
              "nodeType": "Block",
              "src": "5782:219:32",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Status_$10038",
                          "typeString": "enum TwoPartyArbitrable.Status"
                        },
                        "id": 10290,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 10287,
                          "name": "status",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10040,
                          "src": "5800:6:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$10038",
                            "typeString": "enum TwoPartyArbitrable.Status"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 10288,
                            "name": "Status",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10038,
                            "src": "5810:6:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Status_$10038_$",
                              "typeString": "type(enum TwoPartyArbitrable.Status)"
                            }
                          },
                          "id": 10289,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "WaitingPartyB",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5810:20:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$10038",
                            "typeString": "enum TwoPartyArbitrable.Status"
                          }
                        },
                        "src": "5800:30:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f742077616974696e6720666f7220706172747920422e",
                        "id": 10291,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5832:26:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_35c7663d8feb3a4495f9a0173d8b79b61a17c210e5afcd011e87614b87174505",
                          "typeString": "literal_string \"Not waiting for party B.\""
                        },
                        "value": "Not waiting for party B."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_35c7663d8feb3a4495f9a0173d8b79b61a17c210e5afcd011e87614b87174505",
                          "typeString": "literal_string \"Not waiting for party B.\""
                        }
                      ],
                      "id": 10286,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "5792:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10292,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5792:67:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10293,
                  "nodeType": "ExpressionStatement",
                  "src": "5792:67:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 10299,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 10295,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20641,
                          "src": "5877:3:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 10298,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 10296,
                            "name": "lastInteraction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10030,
                            "src": "5884:15:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 10297,
                            "name": "timeout",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10018,
                            "src": "5902:7:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5884:25:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5877:32:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5468652074696d656f75742074696d6520686173206e6f74207061737365642e",
                        "id": 10300,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5911:34:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_34d1dfea914fe5f8f93bf2e43bdccaf2e60f18b4dae8e9804b537319d310532e",
                          "typeString": "literal_string \"The timeout time has not passed.\""
                        },
                        "value": "The timeout time has not passed."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_34d1dfea914fe5f8f93bf2e43bdccaf2e60f18b4dae8e9804b537319d310532e",
                          "typeString": "literal_string \"The timeout time has not passed.\""
                        }
                      ],
                      "id": 10294,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "5869:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10301,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5869:77:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10302,
                  "nodeType": "ExpressionStatement",
                  "src": "5869:77:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 10304,
                        "name": "disputeID",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10032,
                        "src": "5971:9:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 10305,
                        "name": "PARTY_A_WINS",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10043,
                        "src": "5981:12:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "id": 10303,
                      "name": "executeRuling",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        10438
                      ],
                      "referencedDeclaration": 10438,
                      "src": "5957:13:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (uint256,uint256)"
                      }
                    },
                    "id": 10306,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5957:37:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10307,
                  "nodeType": "ExpressionStatement",
                  "src": "5957:37:32"
                }
              ]
            },
            "documentation": "@dev Reimburse partyA if partyB fails to pay the fee.",
            "id": 10309,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 10284,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 10283,
                  "name": "onlyPartyA",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 10061,
                  "src": "5771:10:32",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "5771:10:32"
              }
            ],
            "name": "timeOutByPartyA",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10282,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5761:2:32"
            },
            "payable": false,
            "returnParameters": {
              "id": 10285,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5782:0:32"
            },
            "scope": 10439,
            "src": "5737:264:32",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10336,
              "nodeType": "Block",
              "src": "6116:219:32",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Status_$10038",
                          "typeString": "enum TwoPartyArbitrable.Status"
                        },
                        "id": 10318,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 10315,
                          "name": "status",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10040,
                          "src": "6134:6:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$10038",
                            "typeString": "enum TwoPartyArbitrable.Status"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 10316,
                            "name": "Status",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10038,
                            "src": "6144:6:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Status_$10038_$",
                              "typeString": "type(enum TwoPartyArbitrable.Status)"
                            }
                          },
                          "id": 10317,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "WaitingPartyA",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "6144:20:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$10038",
                            "typeString": "enum TwoPartyArbitrable.Status"
                          }
                        },
                        "src": "6134:30:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f742077616974696e6720666f7220706172747920412e",
                        "id": 10319,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6166:26:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_613be34c9f7daef7f0df2d0bd5257cdcf7175d99e922c751f1dd6aaf6907f233",
                          "typeString": "literal_string \"Not waiting for party A.\""
                        },
                        "value": "Not waiting for party A."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_613be34c9f7daef7f0df2d0bd5257cdcf7175d99e922c751f1dd6aaf6907f233",
                          "typeString": "literal_string \"Not waiting for party A.\""
                        }
                      ],
                      "id": 10314,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "6126:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10320,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6126:67:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10321,
                  "nodeType": "ExpressionStatement",
                  "src": "6126:67:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 10327,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 10323,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20641,
                          "src": "6211:3:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 10326,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 10324,
                            "name": "lastInteraction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10030,
                            "src": "6218:15:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 10325,
                            "name": "timeout",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10018,
                            "src": "6236:7:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "6218:25:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6211:32:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5468652074696d656f75742074696d6520686173206e6f74207061737365642e",
                        "id": 10328,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6245:34:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_34d1dfea914fe5f8f93bf2e43bdccaf2e60f18b4dae8e9804b537319d310532e",
                          "typeString": "literal_string \"The timeout time has not passed.\""
                        },
                        "value": "The timeout time has not passed."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_34d1dfea914fe5f8f93bf2e43bdccaf2e60f18b4dae8e9804b537319d310532e",
                          "typeString": "literal_string \"The timeout time has not passed.\""
                        }
                      ],
                      "id": 10322,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "6203:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10329,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6203:77:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10330,
                  "nodeType": "ExpressionStatement",
                  "src": "6203:77:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 10332,
                        "name": "disputeID",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10032,
                        "src": "6305:9:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 10333,
                        "name": "PARTY_B_WINS",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10046,
                        "src": "6315:12:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "id": 10331,
                      "name": "executeRuling",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        10438
                      ],
                      "referencedDeclaration": 10438,
                      "src": "6291:13:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (uint256,uint256)"
                      }
                    },
                    "id": 10334,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6291:37:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10335,
                  "nodeType": "ExpressionStatement",
                  "src": "6291:37:32"
                }
              ]
            },
            "documentation": "@dev Pay partyB if partyA fails to pay the fee.",
            "id": 10337,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 10312,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 10311,
                  "name": "onlyPartyB",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 10073,
                  "src": "6105:10:32",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "6105:10:32"
              }
            ],
            "name": "timeOutByPartyB",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10310,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6095:2:32"
            },
            "payable": false,
            "returnParameters": {
              "id": 10313,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6116:0:32"
            },
            "scope": 10439,
            "src": "6071:264:32",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10360,
              "nodeType": "Block",
              "src": "6522:164:32",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Status_$10038",
                          "typeString": "enum TwoPartyArbitrable.Status"
                        },
                        "id": 10348,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 10345,
                          "name": "status",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10040,
                          "src": "6540:6:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$10038",
                            "typeString": "enum TwoPartyArbitrable.Status"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 10346,
                            "name": "Status",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10038,
                            "src": "6550:6:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Status_$10038_$",
                              "typeString": "type(enum TwoPartyArbitrable.Status)"
                            }
                          },
                          "id": 10347,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "DisputeCreated",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "6550:21:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$10038",
                            "typeString": "enum TwoPartyArbitrable.Status"
                          }
                        },
                        "src": "6540:31:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "546865206469737075746520686173206e6f74206265656e2063726561746564207965742e",
                        "id": 10349,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6573:39:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6d34cac14a6f2f93f413dae0a4e1f185789b6f825388bf953296823ff678d065",
                          "typeString": "literal_string \"The dispute has not been created yet.\""
                        },
                        "value": "The dispute has not been created yet."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6d34cac14a6f2f93f413dae0a4e1f185789b6f825388bf953296823ff678d065",
                          "typeString": "literal_string \"The dispute has not been created yet.\""
                        }
                      ],
                      "id": 10344,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "6532:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10350,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6532:81:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10351,
                  "nodeType": "ExpressionStatement",
                  "src": "6532:81:32"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 10353,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 499,
                        "src": "6637:10:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Arbitrator_$4021",
                          "typeString": "contract Arbitrator"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 10354,
                        "name": "disputeID",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10032,
                        "src": "6648:9:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 10355,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20639,
                          "src": "6658:3:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 10356,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "6658:10:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 10357,
                        "name": "_evidence",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10339,
                        "src": "6669:9:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Arbitrator_$4021",
                          "typeString": "contract Arbitrator"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 10352,
                      "name": "Evidence",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 539,
                      "src": "6628:8:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Arbitrator_$4021_$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (contract Arbitrator,uint256,address,string memory)"
                      }
                    },
                    "id": 10358,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6628:51:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10359,
                  "nodeType": "EmitStatement",
                  "src": "6623:56:32"
                }
              ]
            },
            "documentation": "@dev Submit a reference to evidence. EVENT.\n @param _evidence A link to an evidence using its URI.",
            "id": 10361,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 10342,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 10341,
                  "name": "onlyParty",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 10090,
                  "src": "6512:9:32",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "6512:9:32"
              }
            ],
            "name": "submitEvidence",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10340,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10339,
                  "name": "_evidence",
                  "nodeType": "VariableDeclaration",
                  "scope": 10361,
                  "src": "6487:16:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 10338,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "6487:6:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6486:18:32"
            },
            "payable": false,
            "returnParameters": {
              "id": 10343,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6522:0:32"
            },
            "scope": 10439,
            "src": "6463:223:32",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10380,
              "nodeType": "Block",
              "src": "7004:73:32",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 10376,
                        "name": "disputeID",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10032,
                        "src": "7049:9:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 10377,
                        "name": "_extraData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10363,
                        "src": "7059:10:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 10373,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20639,
                            "src": "7038:3:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 10374,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "7038:9:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 10368,
                            "name": "arbitrator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 499,
                            "src": "7014:10:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Arbitrator_$4021",
                              "typeString": "contract Arbitrator"
                            }
                          },
                          "id": 10371,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "appeal",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3987,
                          "src": "7014:17:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                            "typeString": "function (uint256,bytes memory) payable external"
                          }
                        },
                        "id": 10372,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "7014:23:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$value_$",
                          "typeString": "function (uint256) returns (function (uint256,bytes memory) payable external)"
                        }
                      },
                      "id": 10375,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7014:34:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$value",
                        "typeString": "function (uint256,bytes memory) payable external"
                      }
                    },
                    "id": 10378,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7014:56:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10379,
                  "nodeType": "ExpressionStatement",
                  "src": "7014:56:32"
                }
              ]
            },
            "documentation": "@dev Appeal an appealable ruling.\n Transfer the funds to the arbitrator.\n Note that no checks are required as the checks are done by the arbitrator.\n @param _extraData Extra data for the arbitrator appeal procedure.",
            "id": 10381,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 10366,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 10365,
                  "name": "onlyParty",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 10090,
                  "src": "6986:9:32",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "6986:9:32"
              }
            ],
            "name": "appeal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10364,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10363,
                  "name": "_extraData",
                  "nodeType": "VariableDeclaration",
                  "scope": 10381,
                  "src": "6961:16:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 10362,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "6961:5:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6960:18:32"
            },
            "payable": true,
            "returnParameters": {
              "id": 10367,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7004:0:32"
            },
            "scope": 10439,
            "src": "6945:132:32",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10437,
              "nodeType": "Block",
              "src": "7479:654:32",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 10391,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 10389,
                          "name": "_disputeID",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10383,
                          "src": "7497:10:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 10390,
                          "name": "disputeID",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10032,
                          "src": "7511:9:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "7497:23:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "57726f6e6720646973707574652049442e",
                        "id": 10392,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7522:19:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_592f5101973b6cc3d369ba410fae1f41cd87e7dce28c818774c5095e76af8c1e",
                          "typeString": "literal_string \"Wrong dispute ID.\""
                        },
                        "value": "Wrong dispute ID."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_592f5101973b6cc3d369ba410fae1f41cd87e7dce28c818774c5095e76af8c1e",
                          "typeString": "literal_string \"Wrong dispute ID.\""
                        }
                      ],
                      "id": 10388,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "7489:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10393,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7489:53:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10394,
                  "nodeType": "ExpressionStatement",
                  "src": "7489:53:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 10398,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 10396,
                          "name": "_ruling",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10385,
                          "src": "7560:7:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 10397,
                          "name": "amountOfChoices",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10020,
                          "src": "7571:15:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "src": "7560:26:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "496e76616c69642072756c696e672e",
                        "id": 10399,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7588:17:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_30a1efd31034a387a6ecd17203195002f6ea4f4b6af4307c4b0d6824823a3ea6",
                          "typeString": "literal_string \"Invalid ruling.\""
                        },
                        "value": "Invalid ruling."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_30a1efd31034a387a6ecd17203195002f6ea4f4b6af4307c4b0d6824823a3ea6",
                          "typeString": "literal_string \"Invalid ruling.\""
                        }
                      ],
                      "id": 10395,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "7552:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10400,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7552:54:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10401,
                  "nodeType": "ExpressionStatement",
                  "src": "7552:54:32"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10404,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 10402,
                      "name": "_ruling",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10385,
                      "src": "7886:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 10403,
                      "name": "PARTY_A_WINS",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10043,
                      "src": "7895:12:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "src": "7886:21:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 10418,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 10416,
                        "name": "_ruling",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10385,
                        "src": "7998:7:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 10417,
                        "name": "PARTY_B_WINS",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10046,
                        "src": "8007:12:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "src": "7998:21:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": null,
                    "id": 10430,
                    "nodeType": "IfStatement",
                    "src": "7994:97:32",
                    "trueBody": {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 10424,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 10422,
                                "name": "partyAFee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10026,
                                "src": "8045:9:32",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 10423,
                                "name": "partyBFee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10028,
                                "src": "8057:9:32",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "8045:21:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseExpression": {
                              "argumentTypes": null,
                              "id": 10426,
                              "name": "partyBFee",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10028,
                              "src": "8081:9:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 10427,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "Conditional",
                            "src": "8045:45:32",
                            "trueExpression": {
                              "argumentTypes": null,
                              "id": 10425,
                              "name": "partyAFee",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10026,
                              "src": "8069:9:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 10419,
                            "name": "partyB",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10024,
                            "src": "8033:6:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 10421,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "send",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "8033:11:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) returns (bool)"
                          }
                        },
                        "id": 10428,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8033:58:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 10429,
                      "nodeType": "ExpressionStatement",
                      "src": "8033:58:32"
                    }
                  },
                  "id": 10431,
                  "nodeType": "IfStatement",
                  "src": "7882:209:32",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 10410,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 10408,
                              "name": "partyAFee",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10026,
                              "src": "7933:9:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 10409,
                              "name": "partyBFee",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10028,
                              "src": "7945:9:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "7933:21:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseExpression": {
                            "argumentTypes": null,
                            "id": 10412,
                            "name": "partyBFee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10028,
                            "src": "7969:9:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 10413,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "Conditional",
                          "src": "7933:45:32",
                          "trueExpression": {
                            "argumentTypes": null,
                            "id": 10411,
                            "name": "partyAFee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10026,
                            "src": "7957:9:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 10405,
                          "name": "partyA",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10022,
                          "src": "7921:6:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 10407,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "send",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "7921:11:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (uint256) returns (bool)"
                        }
                      },
                      "id": 10414,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7921:58:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "id": 10415,
                    "nodeType": "ExpressionStatement",
                    "src": "7921:58:32"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10435,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10432,
                      "name": "status",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10040,
                      "src": "8102:6:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$10038",
                        "typeString": "enum TwoPartyArbitrable.Status"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 10433,
                        "name": "Status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10038,
                        "src": "8111:6:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Status_$10038_$",
                          "typeString": "type(enum TwoPartyArbitrable.Status)"
                        }
                      },
                      "id": 10434,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Resolved",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "8111:15:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$10038",
                        "typeString": "enum TwoPartyArbitrable.Status"
                      }
                    },
                    "src": "8102:24:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Status_$10038",
                      "typeString": "enum TwoPartyArbitrable.Status"
                    }
                  },
                  "id": 10436,
                  "nodeType": "ExpressionStatement",
                  "src": "8102:24:32"
                }
              ]
            },
            "documentation": "@dev Execute a ruling of a dispute. It reimburse the fee to the winning party.\n This need to be extended by contract inheriting from it.\n @param _disputeID ID of the dispute in the Arbitrator contract.\n @param _ruling Ruling given by the arbitrator. 1 : Reimburse the partyA. 2 : Pay the partyB.",
            "id": 10438,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "executeRuling",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10386,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10383,
                  "name": "_disputeID",
                  "nodeType": "VariableDeclaration",
                  "scope": 10438,
                  "src": "7439:15:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10382,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "7439:4:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10385,
                  "name": "_ruling",
                  "nodeType": "VariableDeclaration",
                  "scope": 10438,
                  "src": "7456:12:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10384,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "7456:4:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7438:31:32"
            },
            "payable": false,
            "returnParameters": {
              "id": 10387,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7479:0:32"
            },
            "scope": 10439,
            "src": "7416:717:32",
            "stateMutability": "nonpayable",
            "superFunction": 594,
            "visibility": "internal"
          }
        ],
        "scope": 10440,
        "src": "678:7458:32"
      }
    ],
    "src": "167:7970:32"
  },
  "legacyAST": {
    "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/TwoPartyArbitrable.sol",
    "exportedSymbols": {
      "TwoPartyArbitrable": [
        10439
      ]
    },
    "id": 10440,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 10013,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".15"
        ],
        "nodeType": "PragmaDirective",
        "src": "167:24:32"
      },
      {
        "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/Arbitrable.sol",
        "file": "./Arbitrable.sol",
        "id": 10014,
        "nodeType": "ImportDirective",
        "scope": 10440,
        "sourceUnit": 596,
        "src": "192:26:32",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 10015,
              "name": "Arbitrable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 595,
              "src": "709:10:32",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Arbitrable_$595",
                "typeString": "contract Arbitrable"
              }
            },
            "id": 10016,
            "nodeType": "InheritanceSpecifier",
            "src": "709:10:32"
          }
        ],
        "contractDependencies": [
          595
        ],
        "contractKind": "contract",
        "documentation": "@title Two-Party Arbitrable\n @dev A contract between two parties which can be arbitrated. Both parties has to pay for the arbitration fee. The winning party will get its fee refunded.\n To develop a contract inheriting from this one, you need to:\n - Redefine RULING_OPTIONS to explain the consequences of the possible rulings.\n - Redefine executeRuling while still calling super.executeRuling to implement the results of the arbitration.",
        "fullyImplemented": true,
        "id": 10439,
        "linearizedBaseContracts": [
          10439,
          595
        ],
        "name": "TwoPartyArbitrable",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 10018,
            "name": "timeout",
            "nodeType": "VariableDeclaration",
            "scope": 10439,
            "src": "726:19:32",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10017,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "726:4:32",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 10020,
            "name": "amountOfChoices",
            "nodeType": "VariableDeclaration",
            "scope": 10439,
            "src": "845:28:32",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 10019,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "845:5:32",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 10022,
            "name": "partyA",
            "nodeType": "VariableDeclaration",
            "scope": 10439,
            "src": "879:21:32",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 10021,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "879:7:32",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 10024,
            "name": "partyB",
            "nodeType": "VariableDeclaration",
            "scope": 10439,
            "src": "906:21:32",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 10023,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "906:7:32",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 10026,
            "name": "partyAFee",
            "nodeType": "VariableDeclaration",
            "scope": 10439,
            "src": "933:21:32",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10025,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "933:4:32",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 10028,
            "name": "partyBFee",
            "nodeType": "VariableDeclaration",
            "scope": 10439,
            "src": "994:21:32",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10027,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "994:4:32",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 10030,
            "name": "lastInteraction",
            "nodeType": "VariableDeclaration",
            "scope": 10439,
            "src": "1055:27:32",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10029,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1055:4:32",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 10032,
            "name": "disputeID",
            "nodeType": "VariableDeclaration",
            "scope": 10439,
            "src": "1135:21:32",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10031,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1135:4:32",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "canonicalName": "TwoPartyArbitrable.Status",
            "id": 10038,
            "members": [
              {
                "id": 10033,
                "name": "NoDispute",
                "nodeType": "EnumValue",
                "src": "1175:9:32"
              },
              {
                "id": 10034,
                "name": "WaitingPartyA",
                "nodeType": "EnumValue",
                "src": "1186:13:32"
              },
              {
                "id": 10035,
                "name": "WaitingPartyB",
                "nodeType": "EnumValue",
                "src": "1201:13:32"
              },
              {
                "id": 10036,
                "name": "DisputeCreated",
                "nodeType": "EnumValue",
                "src": "1216:14:32"
              },
              {
                "id": 10037,
                "name": "Resolved",
                "nodeType": "EnumValue",
                "src": "1232:8:32"
              }
            ],
            "name": "Status",
            "nodeType": "EnumDefinition",
            "src": "1162:79:32"
          },
          {
            "constant": false,
            "id": 10040,
            "name": "status",
            "nodeType": "VariableDeclaration",
            "scope": 10439,
            "src": "1246:20:32",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_enum$_Status_$10038",
              "typeString": "enum TwoPartyArbitrable.Status"
            },
            "typeName": {
              "contractScope": null,
              "id": 10039,
              "name": "Status",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 10038,
              "src": "1246:6:32",
              "typeDescriptions": {
                "typeIdentifier": "t_enum$_Status_$10038",
                "typeString": "enum TwoPartyArbitrable.Status"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 10043,
            "name": "PARTY_A_WINS",
            "nodeType": "VariableDeclaration",
            "scope": 10439,
            "src": "1273:31:32",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 10041,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "1273:5:32",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "31",
              "id": 10042,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1303:1:32",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1_by_1",
                "typeString": "int_const 1"
              },
              "value": "1"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 10046,
            "name": "PARTY_B_WINS",
            "nodeType": "VariableDeclaration",
            "scope": 10439,
            "src": "1310:31:32",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 10044,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "1310:5:32",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "32",
              "id": 10045,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1340:1:32",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_2_by_1",
                "typeString": "int_const 2"
              },
              "value": "2"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 10049,
            "name": "RULING_OPTIONS",
            "nodeType": "VariableDeclaration",
            "scope": 10439,
            "src": "1347:60:32",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 10047,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1347:6:32",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "506172747920412077696e733b506172747920422077696e73",
              "id": 10048,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1380:27:32",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_a9bb0285e06a0f4a385c0b2c1c099df224b3ca7e76988c6a71339dd91d802a24",
                "typeString": "literal_string \"Party A wins;Party B wins\""
              },
              "value": "Party A wins;Party B wins"
            },
            "visibility": "internal"
          },
          {
            "body": {
              "id": 10060,
              "nodeType": "Block",
              "src": "1513:69:32",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 10055,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 10052,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20639,
                            "src": "1522:3:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 10053,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1522:10:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 10054,
                          "name": "partyA",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10022,
                          "src": "1536:6:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "1522:20:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616e206f6e6c792062652063616c6c656420627920706172747920412e",
                        "id": 10056,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1544:32:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_18761c3a468d0eaa2562f82b32b5aad7e384a096b3c2bdf03633ae0e34a7f6aa",
                          "typeString": "literal_string \"Can only be called by party A.\""
                        },
                        "value": "Can only be called by party A."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_18761c3a468d0eaa2562f82b32b5aad7e384a096b3c2bdf03633ae0e34a7f6aa",
                          "typeString": "literal_string \"Can only be called by party A.\""
                        }
                      ],
                      "id": 10051,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "1514:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10057,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1514:63:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10058,
                  "nodeType": "ExpressionStatement",
                  "src": "1514:63:32"
                },
                {
                  "id": 10059,
                  "nodeType": "PlaceholderStatement",
                  "src": "1579:1:32"
                }
              ]
            },
            "documentation": null,
            "id": 10061,
            "name": "onlyPartyA",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 10050,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1513:0:32"
            },
            "src": "1494:88:32",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 10072,
              "nodeType": "Block",
              "src": "1606:69:32",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 10067,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 10064,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20639,
                            "src": "1615:3:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 10065,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1615:10:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 10066,
                          "name": "partyB",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10024,
                          "src": "1629:6:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "1615:20:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616e206f6e6c792062652063616c6c656420627920706172747920422e",
                        "id": 10068,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1637:32:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c6facbc720898ae97acc3dab6cd6ea01fa0ea97af972d443e80f2af0911d986d",
                          "typeString": "literal_string \"Can only be called by party B.\""
                        },
                        "value": "Can only be called by party B."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c6facbc720898ae97acc3dab6cd6ea01fa0ea97af972d443e80f2af0911d986d",
                          "typeString": "literal_string \"Can only be called by party B.\""
                        }
                      ],
                      "id": 10063,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "1607:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10069,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1607:63:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10070,
                  "nodeType": "ExpressionStatement",
                  "src": "1607:63:32"
                },
                {
                  "id": 10071,
                  "nodeType": "PlaceholderStatement",
                  "src": "1672:1:32"
                }
              ]
            },
            "documentation": null,
            "id": 10073,
            "name": "onlyPartyB",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 10062,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1606:0:32"
            },
            "src": "1587:88:32",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 10089,
              "nodeType": "Block",
              "src": "1698:104:32",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 10084,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 10079,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 10076,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20639,
                              "src": "1707:3:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 10077,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1707:10:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 10078,
                            "name": "partyA",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10022,
                            "src": "1721:6:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "1707:20:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 10083,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 10080,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20639,
                              "src": "1731:3:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 10081,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1731:10:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 10082,
                            "name": "partyB",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10024,
                            "src": "1745:6:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "1731:20:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1707:44:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616e206f6e6c792062652063616c6c65642062792070617274792041206f7220706172747920422e",
                        "id": 10085,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1753:43:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9a2e2b243909f8bd6cdb33700187415c876a65f5d3755e283c9a0e44bd274d9d",
                          "typeString": "literal_string \"Can only be called by party A or party B.\""
                        },
                        "value": "Can only be called by party A or party B."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9a2e2b243909f8bd6cdb33700187415c876a65f5d3755e283c9a0e44bd274d9d",
                          "typeString": "literal_string \"Can only be called by party A or party B.\""
                        }
                      ],
                      "id": 10075,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "1699:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10086,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1699:98:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10087,
                  "nodeType": "ExpressionStatement",
                  "src": "1699:98:32"
                },
                {
                  "id": 10088,
                  "nodeType": "PlaceholderStatement",
                  "src": "1799:1:32"
                }
              ]
            },
            "documentation": null,
            "id": 10090,
            "name": "onlyParty",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 10074,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1698:0:32"
            },
            "src": "1680:122:32",
            "visibility": "internal"
          },
          {
            "canonicalName": "TwoPartyArbitrable.Party",
            "id": 10093,
            "members": [
              {
                "id": 10091,
                "name": "PartyA",
                "nodeType": "EnumValue",
                "src": "1820:6:32"
              },
              {
                "id": 10092,
                "name": "PartyB",
                "nodeType": "EnumValue",
                "src": "1828:6:32"
              }
            ],
            "name": "Party",
            "nodeType": "EnumDefinition",
            "src": "1808:27:32"
          },
          {
            "anonymous": false,
            "documentation": "@dev Indicate that a party has to pay a fee or would otherwise be considered as loosing.\n @param _party The party who has to pay.",
            "id": 10097,
            "name": "HasToPayFee",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 10096,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10095,
                  "indexed": false,
                  "name": "_party",
                  "nodeType": "VariableDeclaration",
                  "scope": 10097,
                  "src": "2012:12:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Party_$10093",
                    "typeString": "enum TwoPartyArbitrable.Party"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10094,
                    "name": "Party",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 10093,
                    "src": "2012:5:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Party_$10093",
                      "typeString": "enum TwoPartyArbitrable.Party"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2011:14:32"
            },
            "src": "1994:32:32"
          },
          {
            "body": {
              "id": 10138,
              "nodeType": "Block",
              "src": "2754:179:32",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10118,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10116,
                      "name": "timeout",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10018,
                      "src": "2764:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10117,
                      "name": "_timeout",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10101,
                      "src": "2774:8:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2764:18:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10119,
                  "nodeType": "ExpressionStatement",
                  "src": "2764:18:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10123,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10120,
                      "name": "partyA",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10022,
                      "src": "2792:6:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 10121,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20639,
                        "src": "2801:3:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 10122,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2801:10:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2792:19:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 10124,
                  "nodeType": "ExpressionStatement",
                  "src": "2792:19:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10127,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10125,
                      "name": "partyB",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10024,
                      "src": "2821:6:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10126,
                      "name": "_partyB",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10103,
                      "src": "2830:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2821:16:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 10128,
                  "nodeType": "ExpressionStatement",
                  "src": "2821:16:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10131,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10129,
                      "name": "amountOfChoices",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10020,
                      "src": "2847:15:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10130,
                      "name": "_amountOfChoices",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10105,
                      "src": "2865:16:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "src": "2847:34:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "id": 10132,
                  "nodeType": "ExpressionStatement",
                  "src": "2847:34:32"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 10134,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2909:1:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "id": 10135,
                        "name": "_metaEvidence",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10109,
                        "src": "2912:13:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 10133,
                      "name": "MetaEvidence",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 521,
                      "src": "2896:12:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,string memory)"
                      }
                    },
                    "id": 10136,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2896:30:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10137,
                  "nodeType": "EmitStatement",
                  "src": "2891:35:32"
                }
              ]
            },
            "documentation": "@dev Constructor. Choose the arbitrator.\n @param _arbitrator The arbitrator of the contract.\n @param _timeout Time after which a party automatically loose a dispute.\n @param _partyB The recipient of the transaction.\n @param _amountOfChoices The number of ruling options available.\n @param _arbitratorExtraData Extra data for the arbitrator.\n @param _metaEvidence Link to the meta-evidence.",
            "id": 10139,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 10112,
                    "name": "_arbitrator",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 10099,
                    "src": "2699:11:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Arbitrator_$4021",
                      "typeString": "contract Arbitrator"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 10113,
                    "name": "_arbitratorExtraData",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 10107,
                    "src": "2711:20:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  }
                ],
                "id": 10114,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 10111,
                  "name": "Arbitrable",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 595,
                  "src": "2688:10:32",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_Arbitrable_$595_$",
                    "typeString": "type(contract Arbitrable)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2688:44:32"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10110,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10099,
                  "name": "_arbitrator",
                  "nodeType": "VariableDeclaration",
                  "scope": 10139,
                  "src": "2501:22:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Arbitrator_$4021",
                    "typeString": "contract Arbitrator"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10098,
                    "name": "Arbitrator",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4021,
                    "src": "2501:10:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Arbitrator_$4021",
                      "typeString": "contract Arbitrator"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10101,
                  "name": "_timeout",
                  "nodeType": "VariableDeclaration",
                  "scope": 10139,
                  "src": "2534:13:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10100,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2534:4:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10103,
                  "name": "_partyB",
                  "nodeType": "VariableDeclaration",
                  "scope": 10139,
                  "src": "2558:15:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10102,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2558:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10105,
                  "name": "_amountOfChoices",
                  "nodeType": "VariableDeclaration",
                  "scope": 10139,
                  "src": "2583:22:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 10104,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "2583:5:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10107,
                  "name": "_arbitratorExtraData",
                  "nodeType": "VariableDeclaration",
                  "scope": 10139,
                  "src": "2615:26:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 10106,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2615:5:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10109,
                  "name": "_metaEvidence",
                  "nodeType": "VariableDeclaration",
                  "scope": 10139,
                  "src": "2652:20:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 10108,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2652:6:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2491:187:32"
            },
            "payable": false,
            "returnParameters": {
              "id": 10115,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2754:0:32"
            },
            "scope": 10439,
            "src": "2480:453:32",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10195,
              "nodeType": "Block",
              "src": "3356:846:32",
              "statements": [
                {
                  "assignments": [
                    10145
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10145,
                      "name": "arbitrationCost",
                      "nodeType": "VariableDeclaration",
                      "scope": 10196,
                      "src": "3366:20:32",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 10144,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "3366:4:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 10150,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 10148,
                        "name": "arbitratorExtraData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 501,
                        "src": "3416:19:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage",
                          "typeString": "bytes storage ref"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_storage",
                          "typeString": "bytes storage ref"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 10146,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 499,
                        "src": "3389:10:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Arbitrator_$4021",
                          "typeString": "contract Arbitrator"
                        }
                      },
                      "id": 10147,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "arbitrationCost",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3967,
                      "src": "3389:26:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (bytes memory) view external returns (uint256)"
                      }
                    },
                    "id": 10149,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3389:47:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3366:70:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10154,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10151,
                      "name": "partyAFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10026,
                      "src": "3446:9:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 10152,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20639,
                        "src": "3459:3:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 10153,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "3459:9:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3446:22:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10155,
                  "nodeType": "ExpressionStatement",
                  "src": "3446:22:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 10159,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 10157,
                          "name": "partyAFee",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10026,
                          "src": "3499:9:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 10158,
                          "name": "arbitrationCost",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10145,
                          "src": "3512:15:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "3499:28:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f7420656e6f7567682045544820746f20636f766572206172626974726174696f6e20636f7374732e",
                        "id": 10160,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3541:44:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a1af5fd889c47f413805f3e7ab28c2126990ca133ff4d9cb5f76335a7c5ca974",
                          "typeString": "literal_string \"Not enough ETH to cover arbitration costs.\""
                        },
                        "value": "Not enough ETH to cover arbitration costs."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a1af5fd889c47f413805f3e7ab28c2126990ca133ff4d9cb5f76335a7c5ca974",
                          "typeString": "literal_string \"Not enough ETH to cover arbitration costs.\""
                        }
                      ],
                      "id": 10156,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "3478:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10161,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3478:117:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10162,
                  "nodeType": "ExpressionStatement",
                  "src": "3478:117:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Status_$10038",
                          "typeString": "enum TwoPartyArbitrable.Status"
                        },
                        "id": 10167,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 10164,
                          "name": "status",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10040,
                          "src": "3674:6:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$10038",
                            "typeString": "enum TwoPartyArbitrable.Status"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 10165,
                            "name": "Status",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10038,
                            "src": "3683:6:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Status_$10038_$",
                              "typeString": "type(enum TwoPartyArbitrable.Status)"
                            }
                          },
                          "id": 10166,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "DisputeCreated",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3683:21:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$10038",
                            "typeString": "enum TwoPartyArbitrable.Status"
                          }
                        },
                        "src": "3674:30:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "446973707574652068617320616c7265616479206265656e20637265617465642e",
                        "id": 10168,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3706:35:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_12a3d561391026bf16363385b702fb97b57574ceb4b814754c337973a387f686",
                          "typeString": "literal_string \"Dispute has already been created.\""
                        },
                        "value": "Dispute has already been created."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_12a3d561391026bf16363385b702fb97b57574ceb4b814754c337973a387f686",
                          "typeString": "literal_string \"Dispute has already been created.\""
                        }
                      ],
                      "id": 10163,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "3666:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10169,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3666:76:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10170,
                  "nodeType": "ExpressionStatement",
                  "src": "3666:76:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10173,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10171,
                      "name": "lastInteraction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10030,
                      "src": "3802:15:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10172,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 20641,
                      "src": "3820:3:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3802:21:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10174,
                  "nodeType": "ExpressionStatement",
                  "src": "3802:21:32"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10177,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 10175,
                      "name": "partyBFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10028,
                      "src": "3950:9:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 10176,
                      "name": "arbitrationCost",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10145,
                      "src": "3962:15:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3950:27:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 10193,
                    "nodeType": "Block",
                    "src": "4083:113:32",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 10190,
                              "name": "arbitrationCost",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10145,
                              "src": "4169:15:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 10189,
                            "name": "raiseDispute",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10281,
                            "src": "4156:12:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256)"
                            }
                          },
                          "id": 10191,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4156:29:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 10192,
                        "nodeType": "ExpressionStatement",
                        "src": "4156:29:32"
                      }
                    ]
                  },
                  "id": 10194,
                  "nodeType": "IfStatement",
                  "src": "3946:250:32",
                  "trueBody": {
                    "id": 10188,
                    "nodeType": "Block",
                    "src": "3979:98:32",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 10181,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 10178,
                            "name": "status",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10040,
                            "src": "3993:6:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Status_$10038",
                              "typeString": "enum TwoPartyArbitrable.Status"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 10179,
                              "name": "Status",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10038,
                              "src": "4002:6:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Status_$10038_$",
                                "typeString": "type(enum TwoPartyArbitrable.Status)"
                              }
                            },
                            "id": 10180,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "WaitingPartyB",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "4002:20:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Status_$10038",
                              "typeString": "enum TwoPartyArbitrable.Status"
                            }
                          },
                          "src": "3993:29:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$10038",
                            "typeString": "enum TwoPartyArbitrable.Status"
                          }
                        },
                        "id": 10182,
                        "nodeType": "ExpressionStatement",
                        "src": "3993:29:32"
                      },
                      {
                        "eventCall": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 10184,
                                "name": "Party",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10093,
                                "src": "4053:5:32",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_Party_$10093_$",
                                  "typeString": "type(enum TwoPartyArbitrable.Party)"
                                }
                              },
                              "id": 10185,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "PartyB",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "4053:12:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_Party_$10093",
                                "typeString": "enum TwoPartyArbitrable.Party"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_enum$_Party_$10093",
                                "typeString": "enum TwoPartyArbitrable.Party"
                              }
                            ],
                            "id": 10183,
                            "name": "HasToPayFee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10097,
                            "src": "4041:11:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_enum$_Party_$10093_$returns$__$",
                              "typeString": "function (enum TwoPartyArbitrable.Party)"
                            }
                          },
                          "id": 10186,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4041:25:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 10187,
                        "nodeType": "EmitStatement",
                        "src": "4036:30:32"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Pay the arbitration fee to raise a dispute. To be called by the party A. UNTRUSTED.\n Note that the arbitrator can have createDispute throw, which will make this function \n throw and therefore lead to a party being timed-out.\n This is not a vulnerability as the arbitrator can rule in favor of one party anyway.",
            "id": 10196,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 10142,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 10141,
                  "name": "onlyPartyA",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 10061,
                  "src": "3345:10:32",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3345:10:32"
              }
            ],
            "name": "payArbitrationFeeByPartyA",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10140,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3327:2:32"
            },
            "payable": true,
            "returnParameters": {
              "id": 10143,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3356:0:32"
            },
            "scope": 10439,
            "src": "3293:909:32",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10252,
              "nodeType": "Block",
              "src": "4443:846:32",
              "statements": [
                {
                  "assignments": [
                    10202
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10202,
                      "name": "arbitrationCost",
                      "nodeType": "VariableDeclaration",
                      "scope": 10253,
                      "src": "4453:20:32",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 10201,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4453:4:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 10207,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 10205,
                        "name": "arbitratorExtraData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 501,
                        "src": "4503:19:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage",
                          "typeString": "bytes storage ref"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_storage",
                          "typeString": "bytes storage ref"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 10203,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 499,
                        "src": "4476:10:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Arbitrator_$4021",
                          "typeString": "contract Arbitrator"
                        }
                      },
                      "id": 10204,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "arbitrationCost",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3967,
                      "src": "4476:26:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (bytes memory) view external returns (uint256)"
                      }
                    },
                    "id": 10206,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4476:47:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4453:70:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10211,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10208,
                      "name": "partyBFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10028,
                      "src": "4533:9:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 10209,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20639,
                        "src": "4546:3:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 10210,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "4546:9:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4533:22:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10212,
                  "nodeType": "ExpressionStatement",
                  "src": "4533:22:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 10216,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 10214,
                          "name": "partyBFee",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10028,
                          "src": "4586:9:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 10215,
                          "name": "arbitrationCost",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10202,
                          "src": "4599:15:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "4586:28:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f7420656e6f7567682045544820746f20636f766572206172626974726174696f6e20636f7374732e",
                        "id": 10217,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4628:44:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a1af5fd889c47f413805f3e7ab28c2126990ca133ff4d9cb5f76335a7c5ca974",
                          "typeString": "literal_string \"Not enough ETH to cover arbitration costs.\""
                        },
                        "value": "Not enough ETH to cover arbitration costs."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a1af5fd889c47f413805f3e7ab28c2126990ca133ff4d9cb5f76335a7c5ca974",
                          "typeString": "literal_string \"Not enough ETH to cover arbitration costs.\""
                        }
                      ],
                      "id": 10213,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "4565:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10218,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4565:117:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10219,
                  "nodeType": "ExpressionStatement",
                  "src": "4565:117:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Status_$10038",
                          "typeString": "enum TwoPartyArbitrable.Status"
                        },
                        "id": 10224,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 10221,
                          "name": "status",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10040,
                          "src": "4761:6:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$10038",
                            "typeString": "enum TwoPartyArbitrable.Status"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 10222,
                            "name": "Status",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10038,
                            "src": "4770:6:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Status_$10038_$",
                              "typeString": "type(enum TwoPartyArbitrable.Status)"
                            }
                          },
                          "id": 10223,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "DisputeCreated",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4770:21:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$10038",
                            "typeString": "enum TwoPartyArbitrable.Status"
                          }
                        },
                        "src": "4761:30:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "446973707574652068617320616c7265616479206265656e20637265617465642e",
                        "id": 10225,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4793:35:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_12a3d561391026bf16363385b702fb97b57574ceb4b814754c337973a387f686",
                          "typeString": "literal_string \"Dispute has already been created.\""
                        },
                        "value": "Dispute has already been created."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_12a3d561391026bf16363385b702fb97b57574ceb4b814754c337973a387f686",
                          "typeString": "literal_string \"Dispute has already been created.\""
                        }
                      ],
                      "id": 10220,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "4753:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10226,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4753:76:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10227,
                  "nodeType": "ExpressionStatement",
                  "src": "4753:76:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10230,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10228,
                      "name": "lastInteraction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10030,
                      "src": "4889:15:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10229,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 20641,
                      "src": "4907:3:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4889:21:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10231,
                  "nodeType": "ExpressionStatement",
                  "src": "4889:21:32"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10234,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 10232,
                      "name": "partyAFee",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10026,
                      "src": "5037:9:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 10233,
                      "name": "arbitrationCost",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10202,
                      "src": "5049:15:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5037:27:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 10250,
                    "nodeType": "Block",
                    "src": "5170:113:32",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 10247,
                              "name": "arbitrationCost",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10202,
                              "src": "5256:15:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 10246,
                            "name": "raiseDispute",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10281,
                            "src": "5243:12:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256)"
                            }
                          },
                          "id": 10248,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5243:29:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 10249,
                        "nodeType": "ExpressionStatement",
                        "src": "5243:29:32"
                      }
                    ]
                  },
                  "id": 10251,
                  "nodeType": "IfStatement",
                  "src": "5033:250:32",
                  "trueBody": {
                    "id": 10245,
                    "nodeType": "Block",
                    "src": "5066:98:32",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 10238,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 10235,
                            "name": "status",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10040,
                            "src": "5080:6:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Status_$10038",
                              "typeString": "enum TwoPartyArbitrable.Status"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 10236,
                              "name": "Status",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10038,
                              "src": "5089:6:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Status_$10038_$",
                                "typeString": "type(enum TwoPartyArbitrable.Status)"
                              }
                            },
                            "id": 10237,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "WaitingPartyA",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "5089:20:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Status_$10038",
                              "typeString": "enum TwoPartyArbitrable.Status"
                            }
                          },
                          "src": "5080:29:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$10038",
                            "typeString": "enum TwoPartyArbitrable.Status"
                          }
                        },
                        "id": 10239,
                        "nodeType": "ExpressionStatement",
                        "src": "5080:29:32"
                      },
                      {
                        "eventCall": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 10241,
                                "name": "Party",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10093,
                                "src": "5140:5:32",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_Party_$10093_$",
                                  "typeString": "type(enum TwoPartyArbitrable.Party)"
                                }
                              },
                              "id": 10242,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "PartyA",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "5140:12:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_Party_$10093",
                                "typeString": "enum TwoPartyArbitrable.Party"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_enum$_Party_$10093",
                                "typeString": "enum TwoPartyArbitrable.Party"
                              }
                            ],
                            "id": 10240,
                            "name": "HasToPayFee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10097,
                            "src": "5128:11:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_enum$_Party_$10093_$returns$__$",
                              "typeString": "function (enum TwoPartyArbitrable.Party)"
                            }
                          },
                          "id": 10243,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5128:25:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 10244,
                        "nodeType": "EmitStatement",
                        "src": "5123:30:32"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Pay the arbitration fee to raise a dispute. To be called by the party B. UNTRUSTED.\n Note that this function mirror payArbitrationFeeByPartyA.",
            "id": 10253,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 10199,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 10198,
                  "name": "onlyPartyB",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 10073,
                  "src": "4432:10:32",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4432:10:32"
              }
            ],
            "name": "payArbitrationFeeByPartyB",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10197,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4414:2:32"
            },
            "payable": true,
            "returnParameters": {
              "id": 10200,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4443:0:32"
            },
            "scope": 10439,
            "src": "4380:909:32",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10280,
              "nodeType": "Block",
              "src": "5461:200:32",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10261,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10258,
                      "name": "status",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10040,
                      "src": "5471:6:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$10038",
                        "typeString": "enum TwoPartyArbitrable.Status"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 10259,
                        "name": "Status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10038,
                        "src": "5480:6:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Status_$10038_$",
                          "typeString": "type(enum TwoPartyArbitrable.Status)"
                        }
                      },
                      "id": 10260,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "DisputeCreated",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "5480:21:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$10038",
                        "typeString": "enum TwoPartyArbitrable.Status"
                      }
                    },
                    "src": "5471:30:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Status_$10038",
                      "typeString": "enum TwoPartyArbitrable.Status"
                    }
                  },
                  "id": 10262,
                  "nodeType": "ExpressionStatement",
                  "src": "5471:30:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10272,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10263,
                      "name": "disputeID",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10032,
                      "src": "5511:9:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 10269,
                          "name": "amountOfChoices",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10020,
                          "src": "5572:15:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 10270,
                          "name": "arbitratorExtraData",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 501,
                          "src": "5588:19:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage",
                            "typeString": "bytes storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          {
                            "typeIdentifier": "t_bytes_storage",
                            "typeString": "bytes storage ref"
                          }
                        ],
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 10267,
                            "name": "_arbitrationCost",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10255,
                            "src": "5554:16:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 10264,
                              "name": "arbitrator",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 499,
                              "src": "5523:10:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Arbitrator_$4021",
                                "typeString": "contract Arbitrator"
                              }
                            },
                            "id": 10265,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "createDispute",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3960,
                            "src": "5523:24:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$",
                              "typeString": "function (uint256,bytes memory) payable external returns (uint256)"
                            }
                          },
                          "id": 10266,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5523:30:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$value_$",
                            "typeString": "function (uint256) returns (function (uint256,bytes memory) payable external returns (uint256))"
                          }
                        },
                        "id": 10268,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5523:48:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$value",
                          "typeString": "function (uint256,bytes memory) payable external returns (uint256)"
                        }
                      },
                      "id": 10271,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5523:85:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5511:97:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10273,
                  "nodeType": "ExpressionStatement",
                  "src": "5511:97:32"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 10275,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 499,
                        "src": "5631:10:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Arbitrator_$4021",
                          "typeString": "contract Arbitrator"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 10276,
                        "name": "disputeID",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10032,
                        "src": "5642:9:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 10277,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5652:1:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Arbitrator_$4021",
                          "typeString": "contract Arbitrator"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 10274,
                      "name": "Dispute",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 529,
                      "src": "5623:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Arbitrator_$4021_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (contract Arbitrator,uint256,uint256)"
                      }
                    },
                    "id": 10278,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5623:31:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10279,
                  "nodeType": "EmitStatement",
                  "src": "5618:36:32"
                }
              ]
            },
            "documentation": "@dev Create a dispute. UNTRUSTED.\n @param _arbitrationCost Amount to pay the arbitrator.",
            "id": 10281,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "raiseDispute",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10256,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10255,
                  "name": "_arbitrationCost",
                  "nodeType": "VariableDeclaration",
                  "scope": 10281,
                  "src": "5429:21:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10254,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5429:4:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5428:23:32"
            },
            "payable": false,
            "returnParameters": {
              "id": 10257,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5461:0:32"
            },
            "scope": 10439,
            "src": "5407:254:32",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 10308,
              "nodeType": "Block",
              "src": "5782:219:32",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Status_$10038",
                          "typeString": "enum TwoPartyArbitrable.Status"
                        },
                        "id": 10290,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 10287,
                          "name": "status",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10040,
                          "src": "5800:6:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$10038",
                            "typeString": "enum TwoPartyArbitrable.Status"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 10288,
                            "name": "Status",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10038,
                            "src": "5810:6:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Status_$10038_$",
                              "typeString": "type(enum TwoPartyArbitrable.Status)"
                            }
                          },
                          "id": 10289,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "WaitingPartyB",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5810:20:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$10038",
                            "typeString": "enum TwoPartyArbitrable.Status"
                          }
                        },
                        "src": "5800:30:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f742077616974696e6720666f7220706172747920422e",
                        "id": 10291,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5832:26:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_35c7663d8feb3a4495f9a0173d8b79b61a17c210e5afcd011e87614b87174505",
                          "typeString": "literal_string \"Not waiting for party B.\""
                        },
                        "value": "Not waiting for party B."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_35c7663d8feb3a4495f9a0173d8b79b61a17c210e5afcd011e87614b87174505",
                          "typeString": "literal_string \"Not waiting for party B.\""
                        }
                      ],
                      "id": 10286,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "5792:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10292,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5792:67:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10293,
                  "nodeType": "ExpressionStatement",
                  "src": "5792:67:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 10299,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 10295,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20641,
                          "src": "5877:3:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 10298,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 10296,
                            "name": "lastInteraction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10030,
                            "src": "5884:15:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 10297,
                            "name": "timeout",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10018,
                            "src": "5902:7:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5884:25:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5877:32:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5468652074696d656f75742074696d6520686173206e6f74207061737365642e",
                        "id": 10300,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5911:34:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_34d1dfea914fe5f8f93bf2e43bdccaf2e60f18b4dae8e9804b537319d310532e",
                          "typeString": "literal_string \"The timeout time has not passed.\""
                        },
                        "value": "The timeout time has not passed."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_34d1dfea914fe5f8f93bf2e43bdccaf2e60f18b4dae8e9804b537319d310532e",
                          "typeString": "literal_string \"The timeout time has not passed.\""
                        }
                      ],
                      "id": 10294,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "5869:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10301,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5869:77:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10302,
                  "nodeType": "ExpressionStatement",
                  "src": "5869:77:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 10304,
                        "name": "disputeID",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10032,
                        "src": "5971:9:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 10305,
                        "name": "PARTY_A_WINS",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10043,
                        "src": "5981:12:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "id": 10303,
                      "name": "executeRuling",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        10438
                      ],
                      "referencedDeclaration": 10438,
                      "src": "5957:13:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (uint256,uint256)"
                      }
                    },
                    "id": 10306,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5957:37:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10307,
                  "nodeType": "ExpressionStatement",
                  "src": "5957:37:32"
                }
              ]
            },
            "documentation": "@dev Reimburse partyA if partyB fails to pay the fee.",
            "id": 10309,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 10284,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 10283,
                  "name": "onlyPartyA",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 10061,
                  "src": "5771:10:32",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "5771:10:32"
              }
            ],
            "name": "timeOutByPartyA",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10282,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5761:2:32"
            },
            "payable": false,
            "returnParameters": {
              "id": 10285,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5782:0:32"
            },
            "scope": 10439,
            "src": "5737:264:32",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10336,
              "nodeType": "Block",
              "src": "6116:219:32",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Status_$10038",
                          "typeString": "enum TwoPartyArbitrable.Status"
                        },
                        "id": 10318,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 10315,
                          "name": "status",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10040,
                          "src": "6134:6:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$10038",
                            "typeString": "enum TwoPartyArbitrable.Status"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 10316,
                            "name": "Status",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10038,
                            "src": "6144:6:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Status_$10038_$",
                              "typeString": "type(enum TwoPartyArbitrable.Status)"
                            }
                          },
                          "id": 10317,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "WaitingPartyA",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "6144:20:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$10038",
                            "typeString": "enum TwoPartyArbitrable.Status"
                          }
                        },
                        "src": "6134:30:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f742077616974696e6720666f7220706172747920412e",
                        "id": 10319,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6166:26:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_613be34c9f7daef7f0df2d0bd5257cdcf7175d99e922c751f1dd6aaf6907f233",
                          "typeString": "literal_string \"Not waiting for party A.\""
                        },
                        "value": "Not waiting for party A."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_613be34c9f7daef7f0df2d0bd5257cdcf7175d99e922c751f1dd6aaf6907f233",
                          "typeString": "literal_string \"Not waiting for party A.\""
                        }
                      ],
                      "id": 10314,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "6126:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10320,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6126:67:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10321,
                  "nodeType": "ExpressionStatement",
                  "src": "6126:67:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 10327,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 10323,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20641,
                          "src": "6211:3:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 10326,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 10324,
                            "name": "lastInteraction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10030,
                            "src": "6218:15:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 10325,
                            "name": "timeout",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10018,
                            "src": "6236:7:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "6218:25:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6211:32:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5468652074696d656f75742074696d6520686173206e6f74207061737365642e",
                        "id": 10328,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6245:34:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_34d1dfea914fe5f8f93bf2e43bdccaf2e60f18b4dae8e9804b537319d310532e",
                          "typeString": "literal_string \"The timeout time has not passed.\""
                        },
                        "value": "The timeout time has not passed."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_34d1dfea914fe5f8f93bf2e43bdccaf2e60f18b4dae8e9804b537319d310532e",
                          "typeString": "literal_string \"The timeout time has not passed.\""
                        }
                      ],
                      "id": 10322,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "6203:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10329,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6203:77:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10330,
                  "nodeType": "ExpressionStatement",
                  "src": "6203:77:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 10332,
                        "name": "disputeID",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10032,
                        "src": "6305:9:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 10333,
                        "name": "PARTY_B_WINS",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10046,
                        "src": "6315:12:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "id": 10331,
                      "name": "executeRuling",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        10438
                      ],
                      "referencedDeclaration": 10438,
                      "src": "6291:13:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (uint256,uint256)"
                      }
                    },
                    "id": 10334,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6291:37:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10335,
                  "nodeType": "ExpressionStatement",
                  "src": "6291:37:32"
                }
              ]
            },
            "documentation": "@dev Pay partyB if partyA fails to pay the fee.",
            "id": 10337,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 10312,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 10311,
                  "name": "onlyPartyB",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 10073,
                  "src": "6105:10:32",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "6105:10:32"
              }
            ],
            "name": "timeOutByPartyB",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10310,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6095:2:32"
            },
            "payable": false,
            "returnParameters": {
              "id": 10313,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6116:0:32"
            },
            "scope": 10439,
            "src": "6071:264:32",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10360,
              "nodeType": "Block",
              "src": "6522:164:32",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Status_$10038",
                          "typeString": "enum TwoPartyArbitrable.Status"
                        },
                        "id": 10348,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 10345,
                          "name": "status",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10040,
                          "src": "6540:6:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$10038",
                            "typeString": "enum TwoPartyArbitrable.Status"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 10346,
                            "name": "Status",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10038,
                            "src": "6550:6:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Status_$10038_$",
                              "typeString": "type(enum TwoPartyArbitrable.Status)"
                            }
                          },
                          "id": 10347,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "DisputeCreated",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "6550:21:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$10038",
                            "typeString": "enum TwoPartyArbitrable.Status"
                          }
                        },
                        "src": "6540:31:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "546865206469737075746520686173206e6f74206265656e2063726561746564207965742e",
                        "id": 10349,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6573:39:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6d34cac14a6f2f93f413dae0a4e1f185789b6f825388bf953296823ff678d065",
                          "typeString": "literal_string \"The dispute has not been created yet.\""
                        },
                        "value": "The dispute has not been created yet."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6d34cac14a6f2f93f413dae0a4e1f185789b6f825388bf953296823ff678d065",
                          "typeString": "literal_string \"The dispute has not been created yet.\""
                        }
                      ],
                      "id": 10344,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "6532:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10350,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6532:81:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10351,
                  "nodeType": "ExpressionStatement",
                  "src": "6532:81:32"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 10353,
                        "name": "arbitrator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 499,
                        "src": "6637:10:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Arbitrator_$4021",
                          "typeString": "contract Arbitrator"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 10354,
                        "name": "disputeID",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10032,
                        "src": "6648:9:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 10355,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20639,
                          "src": "6658:3:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 10356,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "6658:10:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 10357,
                        "name": "_evidence",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10339,
                        "src": "6669:9:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Arbitrator_$4021",
                          "typeString": "contract Arbitrator"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 10352,
                      "name": "Evidence",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 539,
                      "src": "6628:8:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Arbitrator_$4021_$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (contract Arbitrator,uint256,address,string memory)"
                      }
                    },
                    "id": 10358,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6628:51:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10359,
                  "nodeType": "EmitStatement",
                  "src": "6623:56:32"
                }
              ]
            },
            "documentation": "@dev Submit a reference to evidence. EVENT.\n @param _evidence A link to an evidence using its URI.",
            "id": 10361,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 10342,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 10341,
                  "name": "onlyParty",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 10090,
                  "src": "6512:9:32",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "6512:9:32"
              }
            ],
            "name": "submitEvidence",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10340,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10339,
                  "name": "_evidence",
                  "nodeType": "VariableDeclaration",
                  "scope": 10361,
                  "src": "6487:16:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 10338,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "6487:6:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6486:18:32"
            },
            "payable": false,
            "returnParameters": {
              "id": 10343,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6522:0:32"
            },
            "scope": 10439,
            "src": "6463:223:32",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10380,
              "nodeType": "Block",
              "src": "7004:73:32",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 10376,
                        "name": "disputeID",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10032,
                        "src": "7049:9:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 10377,
                        "name": "_extraData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10363,
                        "src": "7059:10:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 10373,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20639,
                            "src": "7038:3:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 10374,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "7038:9:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 10368,
                            "name": "arbitrator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 499,
                            "src": "7014:10:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Arbitrator_$4021",
                              "typeString": "contract Arbitrator"
                            }
                          },
                          "id": 10371,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "appeal",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3987,
                          "src": "7014:17:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                            "typeString": "function (uint256,bytes memory) payable external"
                          }
                        },
                        "id": 10372,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "7014:23:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$value_$",
                          "typeString": "function (uint256) returns (function (uint256,bytes memory) payable external)"
                        }
                      },
                      "id": 10375,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7014:34:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$value",
                        "typeString": "function (uint256,bytes memory) payable external"
                      }
                    },
                    "id": 10378,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7014:56:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10379,
                  "nodeType": "ExpressionStatement",
                  "src": "7014:56:32"
                }
              ]
            },
            "documentation": "@dev Appeal an appealable ruling.\n Transfer the funds to the arbitrator.\n Note that no checks are required as the checks are done by the arbitrator.\n @param _extraData Extra data for the arbitrator appeal procedure.",
            "id": 10381,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 10366,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 10365,
                  "name": "onlyParty",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 10090,
                  "src": "6986:9:32",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "6986:9:32"
              }
            ],
            "name": "appeal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10364,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10363,
                  "name": "_extraData",
                  "nodeType": "VariableDeclaration",
                  "scope": 10381,
                  "src": "6961:16:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 10362,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "6961:5:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6960:18:32"
            },
            "payable": true,
            "returnParameters": {
              "id": 10367,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7004:0:32"
            },
            "scope": 10439,
            "src": "6945:132:32",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10437,
              "nodeType": "Block",
              "src": "7479:654:32",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 10391,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 10389,
                          "name": "_disputeID",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10383,
                          "src": "7497:10:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 10390,
                          "name": "disputeID",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10032,
                          "src": "7511:9:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "7497:23:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "57726f6e6720646973707574652049442e",
                        "id": 10392,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7522:19:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_592f5101973b6cc3d369ba410fae1f41cd87e7dce28c818774c5095e76af8c1e",
                          "typeString": "literal_string \"Wrong dispute ID.\""
                        },
                        "value": "Wrong dispute ID."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_592f5101973b6cc3d369ba410fae1f41cd87e7dce28c818774c5095e76af8c1e",
                          "typeString": "literal_string \"Wrong dispute ID.\""
                        }
                      ],
                      "id": 10388,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "7489:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10393,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7489:53:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10394,
                  "nodeType": "ExpressionStatement",
                  "src": "7489:53:32"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 10398,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 10396,
                          "name": "_ruling",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10385,
                          "src": "7560:7:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 10397,
                          "name": "amountOfChoices",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10020,
                          "src": "7571:15:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "src": "7560:26:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "496e76616c69642072756c696e672e",
                        "id": 10399,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7588:17:32",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_30a1efd31034a387a6ecd17203195002f6ea4f4b6af4307c4b0d6824823a3ea6",
                          "typeString": "literal_string \"Invalid ruling.\""
                        },
                        "value": "Invalid ruling."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_30a1efd31034a387a6ecd17203195002f6ea4f4b6af4307c4b0d6824823a3ea6",
                          "typeString": "literal_string \"Invalid ruling.\""
                        }
                      ],
                      "id": 10395,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20643,
                      "src": "7552:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 10400,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7552:54:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10401,
                  "nodeType": "ExpressionStatement",
                  "src": "7552:54:32"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10404,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 10402,
                      "name": "_ruling",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10385,
                      "src": "7886:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 10403,
                      "name": "PARTY_A_WINS",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10043,
                      "src": "7895:12:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "src": "7886:21:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 10418,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 10416,
                        "name": "_ruling",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10385,
                        "src": "7998:7:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 10417,
                        "name": "PARTY_B_WINS",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10046,
                        "src": "8007:12:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "src": "7998:21:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": null,
                    "id": 10430,
                    "nodeType": "IfStatement",
                    "src": "7994:97:32",
                    "trueBody": {
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 10424,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 10422,
                                "name": "partyAFee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10026,
                                "src": "8045:9:32",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 10423,
                                "name": "partyBFee",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10028,
                                "src": "8057:9:32",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "8045:21:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseExpression": {
                              "argumentTypes": null,
                              "id": 10426,
                              "name": "partyBFee",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10028,
                              "src": "8081:9:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 10427,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "Conditional",
                            "src": "8045:45:32",
                            "trueExpression": {
                              "argumentTypes": null,
                              "id": 10425,
                              "name": "partyAFee",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10026,
                              "src": "8069:9:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 10419,
                            "name": "partyB",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10024,
                            "src": "8033:6:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 10421,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "send",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "8033:11:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) returns (bool)"
                          }
                        },
                        "id": 10428,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8033:58:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 10429,
                      "nodeType": "ExpressionStatement",
                      "src": "8033:58:32"
                    }
                  },
                  "id": 10431,
                  "nodeType": "IfStatement",
                  "src": "7882:209:32",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 10410,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 10408,
                              "name": "partyAFee",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10026,
                              "src": "7933:9:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 10409,
                              "name": "partyBFee",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10028,
                              "src": "7945:9:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "7933:21:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseExpression": {
                            "argumentTypes": null,
                            "id": 10412,
                            "name": "partyBFee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10028,
                            "src": "7969:9:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 10413,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "Conditional",
                          "src": "7933:45:32",
                          "trueExpression": {
                            "argumentTypes": null,
                            "id": 10411,
                            "name": "partyAFee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10026,
                            "src": "7957:9:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 10405,
                          "name": "partyA",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10022,
                          "src": "7921:6:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 10407,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "send",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "7921:11:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (uint256) returns (bool)"
                        }
                      },
                      "id": 10414,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7921:58:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "id": 10415,
                    "nodeType": "ExpressionStatement",
                    "src": "7921:58:32"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10435,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10432,
                      "name": "status",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10040,
                      "src": "8102:6:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$10038",
                        "typeString": "enum TwoPartyArbitrable.Status"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 10433,
                        "name": "Status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10038,
                        "src": "8111:6:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Status_$10038_$",
                          "typeString": "type(enum TwoPartyArbitrable.Status)"
                        }
                      },
                      "id": 10434,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Resolved",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "8111:15:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$10038",
                        "typeString": "enum TwoPartyArbitrable.Status"
                      }
                    },
                    "src": "8102:24:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Status_$10038",
                      "typeString": "enum TwoPartyArbitrable.Status"
                    }
                  },
                  "id": 10436,
                  "nodeType": "ExpressionStatement",
                  "src": "8102:24:32"
                }
              ]
            },
            "documentation": "@dev Execute a ruling of a dispute. It reimburse the fee to the winning party.\n This need to be extended by contract inheriting from it.\n @param _disputeID ID of the dispute in the Arbitrator contract.\n @param _ruling Ruling given by the arbitrator. 1 : Reimburse the partyA. 2 : Pay the partyB.",
            "id": 10438,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "executeRuling",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10386,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10383,
                  "name": "_disputeID",
                  "nodeType": "VariableDeclaration",
                  "scope": 10438,
                  "src": "7439:15:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10382,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "7439:4:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10385,
                  "name": "_ruling",
                  "nodeType": "VariableDeclaration",
                  "scope": 10438,
                  "src": "7456:12:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10384,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "7456:4:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7438:31:32"
            },
            "payable": false,
            "returnParameters": {
              "id": 10387,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7479:0:32"
            },
            "scope": 10439,
            "src": "7416:717:32",
            "stateMutability": "nonpayable",
            "superFunction": 594,
            "visibility": "internal"
          }
        ],
        "scope": 10440,
        "src": "678:7458:32"
      }
    ],
    "src": "167:7970:32"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.1",
  "updatedAt": "2018-11-02T14:04:11.027Z"
}