{
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "premiumAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "sumInsuredAmount",
          "type": "uint256"
        }
      ],
      "name": "LogApplicationCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "LogApplicationDeclined",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "premiumAmountOld",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "premiumAmount",
          "type": "uint256"
        }
      ],
      "name": "LogApplicationPremiumAdjusted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "LogApplicationRevoked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "sumInsuredAmountOld",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "sumInsuredAmount",
          "type": "uint256"
        }
      ],
      "name": "LogApplicationSumInsuredAdjusted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "LogApplicationUnderwritten",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "claimId",
          "type": "uint256"
        }
      ],
      "name": "LogClaimClosed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "claimId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "confirmedAmount",
          "type": "uint256"
        }
      ],
      "name": "LogClaimConfirmed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "claimId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "claimAmount",
          "type": "uint256"
        }
      ],
      "name": "LogClaimCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "claimId",
          "type": "uint256"
        }
      ],
      "name": "LogClaimDeclined",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "productId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "enum IPolicy.PolicyFlowState",
          "name": "state",
          "type": "uint8"
        }
      ],
      "name": "LogMetadataCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "enum IPolicy.PolicyFlowState",
          "name": "state",
          "type": "uint8"
        }
      ],
      "name": "LogMetadataStateChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "claimId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "payoutId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogPayoutCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "payoutId",
          "type": "uint256"
        }
      ],
      "name": "LogPayoutProcessed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "LogPolicyClosed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "LogPolicyCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "LogPolicyExpired",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "premiumExpectedAmountOld",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "premiumExpectedAmount",
          "type": "uint256"
        }
      ],
      "name": "LogPolicyPremiumAdjusted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogPremiumCollected",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "expectedPremiumAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "sumInsuredAmount",
          "type": "uint256"
        }
      ],
      "name": "adjustPremiumSumInsured",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "claimId",
          "type": "uint256"
        }
      ],
      "name": "closeClaim",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "closePolicy",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "collectPremium",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "claimId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "confirmedAmount",
          "type": "uint256"
        }
      ],
      "name": "confirmClaim",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "premiumAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "sumInsuredAmount",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "createApplication",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "claimAmount",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "createClaim",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "claimId",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "claimId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "payoutAmount",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "createPayout",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "payoutId",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "createPolicy",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "productId",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "createPolicyFlow",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "declineApplication",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "claimId",
          "type": "uint256"
        }
      ],
      "name": "declineClaim",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "expirePolicy",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "payoutId",
          "type": "uint256"
        }
      ],
      "name": "processPayout",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "revokeApplication",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "underwriteApplication",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "allSourcePaths": {
    "41": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IPolicy.sol"
  },
  "ast": {
    "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IPolicy.sol",
    "exportedSymbols": {
      "IPolicy": [
        20837
      ]
    },
    "id": 20838,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 20493,
        "literals": [
          "solidity",
          "0.8",
          ".2"
        ],
        "nodeType": "PragmaDirective",
        "src": "39:22:41"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "fullyImplemented": false,
        "id": 20837,
        "linearizedBaseContracts": [
          20837
        ],
        "name": "IPolicy",
        "nameLocation": "73:7:41",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "id": 20504,
            "name": "LogMetadataCreated",
            "nameLocation": "108:18:41",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 20503,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20495,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "owner",
                  "nameLocation": "144:5:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20504,
                  "src": "136:13:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 20494,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "136:7:41",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20497,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "167:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20504,
                  "src": "159:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20496,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "159:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20499,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "productId",
                  "nameLocation": "194:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20504,
                  "src": "186:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20498,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "186:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20502,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "state",
                  "nameLocation": "230:5:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20504,
                  "src": "214:21:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_PolicyFlowState_$20621",
                    "typeString": "enum IPolicy.PolicyFlowState"
                  },
                  "typeName": {
                    "id": 20501,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 20500,
                      "name": "PolicyFlowState",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 20621,
                      "src": "214:15:41"
                    },
                    "referencedDeclaration": 20621,
                    "src": "214:15:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_PolicyFlowState_$20621",
                      "typeString": "enum IPolicy.PolicyFlowState"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "126:115:41"
            },
            "src": "102:140:41"
          },
          {
            "anonymous": false,
            "id": 20511,
            "name": "LogMetadataStateChanged",
            "nameLocation": "254:23:41",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 20510,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20506,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "295:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20511,
                  "src": "287:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20505,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "287:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20509,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "state",
                  "nameLocation": "331:5:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20511,
                  "src": "315:21:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_PolicyFlowState_$20621",
                    "typeString": "enum IPolicy.PolicyFlowState"
                  },
                  "typeName": {
                    "id": 20508,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 20507,
                      "name": "PolicyFlowState",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 20621,
                      "src": "315:15:41"
                    },
                    "referencedDeclaration": 20621,
                    "src": "315:15:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_PolicyFlowState_$20621",
                      "typeString": "enum IPolicy.PolicyFlowState"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "277:65:41"
            },
            "src": "248:95:41"
          },
          {
            "anonymous": false,
            "id": 20519,
            "name": "LogApplicationCreated",
            "nameLocation": "355:21:41",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 20518,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20513,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "394:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20519,
                  "src": "386:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20512,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "386:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20515,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "premiumAmount",
                  "nameLocation": "422:13:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20519,
                  "src": "414:21:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20514,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "414:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20517,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "sumInsuredAmount",
                  "nameLocation": "454:16:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20519,
                  "src": "446:24:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20516,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "446:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "376:100:41"
            },
            "src": "349:128:41"
          },
          {
            "anonymous": false,
            "id": 20523,
            "name": "LogApplicationRevoked",
            "nameLocation": "489:21:41",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 20522,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20521,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "519:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20523,
                  "src": "511:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20520,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "511:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "510:19:41"
            },
            "src": "483:47:41"
          },
          {
            "anonymous": false,
            "id": 20527,
            "name": "LogApplicationUnderwritten",
            "nameLocation": "541:26:41",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 20526,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20525,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "576:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20527,
                  "src": "568:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20524,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "568:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "567:19:41"
            },
            "src": "535:52:41"
          },
          {
            "anonymous": false,
            "id": 20531,
            "name": "LogApplicationDeclined",
            "nameLocation": "598:22:41",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 20530,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20529,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "629:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20531,
                  "src": "621:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20528,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "621:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "620:19:41"
            },
            "src": "592:48:41"
          },
          {
            "anonymous": false,
            "id": 20535,
            "name": "LogPolicyCreated",
            "nameLocation": "652:16:41",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 20534,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20533,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "677:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20535,
                  "src": "669:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20532,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "669:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "668:19:41"
            },
            "src": "646:42:41"
          },
          {
            "anonymous": false,
            "id": 20539,
            "name": "LogPolicyExpired",
            "nameLocation": "699:16:41",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 20538,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20537,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "724:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20539,
                  "src": "716:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20536,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "716:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "715:19:41"
            },
            "src": "693:42:41"
          },
          {
            "anonymous": false,
            "id": 20543,
            "name": "LogPolicyClosed",
            "nameLocation": "746:15:41",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 20542,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20541,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "770:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20543,
                  "src": "762:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20540,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "762:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "761:19:41"
            },
            "src": "740:41:41"
          },
          {
            "anonymous": false,
            "id": 20549,
            "name": "LogPremiumCollected",
            "nameLocation": "793:19:41",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 20548,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20545,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "821:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20549,
                  "src": "813:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20544,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "813:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20547,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "840:6:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20549,
                  "src": "832:14:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20546,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "832:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "812:35:41"
            },
            "src": "787:61:41"
          },
          {
            "anonymous": false,
            "id": 20557,
            "name": "LogApplicationSumInsuredAdjusted",
            "nameLocation": "864:32:41",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 20556,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20551,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "905:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20557,
                  "src": "897:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20550,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "897:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20553,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "sumInsuredAmountOld",
                  "nameLocation": "924:19:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20557,
                  "src": "916:27:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20552,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "916:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20555,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "sumInsuredAmount",
                  "nameLocation": "953:16:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20557,
                  "src": "945:24:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20554,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "945:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "896:74:41"
            },
            "src": "858:113:41"
          },
          {
            "anonymous": false,
            "id": 20565,
            "name": "LogApplicationPremiumAdjusted",
            "nameLocation": "982:29:41",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 20564,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20559,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "1020:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20565,
                  "src": "1012:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20558,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1012:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20561,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "premiumAmountOld",
                  "nameLocation": "1039:16:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20565,
                  "src": "1031:24:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20560,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1031:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20563,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "premiumAmount",
                  "nameLocation": "1065:13:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20565,
                  "src": "1057:21:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20562,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1057:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1011:68:41"
            },
            "src": "976:104:41"
          },
          {
            "anonymous": false,
            "id": 20573,
            "name": "LogPolicyPremiumAdjusted",
            "nameLocation": "1091:24:41",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 20572,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20567,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "1124:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20573,
                  "src": "1116:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20566,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1116:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20569,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "premiumExpectedAmountOld",
                  "nameLocation": "1143:24:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20573,
                  "src": "1135:32:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20568,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1135:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20571,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "premiumExpectedAmount",
                  "nameLocation": "1177:21:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20573,
                  "src": "1169:29:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20570,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1169:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1115:84:41"
            },
            "src": "1085:115:41"
          },
          {
            "anonymous": false,
            "id": 20581,
            "name": "LogClaimCreated",
            "nameLocation": "1212:15:41",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 20580,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20575,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "1236:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20581,
                  "src": "1228:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20574,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1228:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20577,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "claimId",
                  "nameLocation": "1255:7:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20581,
                  "src": "1247:15:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20576,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1247:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20579,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "claimAmount",
                  "nameLocation": "1272:11:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20581,
                  "src": "1264:19:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20578,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1264:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1227:57:41"
            },
            "src": "1206:79:41"
          },
          {
            "anonymous": false,
            "id": 20589,
            "name": "LogClaimConfirmed",
            "nameLocation": "1296:17:41",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 20588,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20583,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "1322:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20589,
                  "src": "1314:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20582,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1314:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20585,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "claimId",
                  "nameLocation": "1341:7:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20589,
                  "src": "1333:15:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20584,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1333:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20587,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "confirmedAmount",
                  "nameLocation": "1358:15:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20589,
                  "src": "1350:23:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20586,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1350:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1313:61:41"
            },
            "src": "1290:85:41"
          },
          {
            "anonymous": false,
            "id": 20595,
            "name": "LogClaimDeclined",
            "nameLocation": "1386:16:41",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 20594,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20591,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "1411:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20595,
                  "src": "1403:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20590,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1403:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20593,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "claimId",
                  "nameLocation": "1430:7:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20595,
                  "src": "1422:15:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20592,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1422:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1402:36:41"
            },
            "src": "1380:59:41"
          },
          {
            "anonymous": false,
            "id": 20601,
            "name": "LogClaimClosed",
            "nameLocation": "1450:14:41",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 20600,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20597,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "1473:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20601,
                  "src": "1465:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20596,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1465:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20599,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "claimId",
                  "nameLocation": "1492:7:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20601,
                  "src": "1484:15:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20598,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1484:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1464:36:41"
            },
            "src": "1444:57:41"
          },
          {
            "anonymous": false,
            "id": 20611,
            "name": "LogPayoutCreated",
            "nameLocation": "1513:16:41",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 20610,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20603,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "1547:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20611,
                  "src": "1539:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20602,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1539:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20605,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "claimId",
                  "nameLocation": "1574:7:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20611,
                  "src": "1566:15:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20604,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1566:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20607,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "payoutId",
                  "nameLocation": "1599:8:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20611,
                  "src": "1591:16:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20606,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1591:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20609,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1625:6:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20611,
                  "src": "1617:14:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20608,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1617:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1529:108:41"
            },
            "src": "1507:131:41"
          },
          {
            "anonymous": false,
            "id": 20617,
            "name": "LogPayoutProcessed",
            "nameLocation": "1650:18:41",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 20616,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20613,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "1686:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20617,
                  "src": "1678:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20612,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1678:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20615,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "payoutId",
                  "nameLocation": "1714:8:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20617,
                  "src": "1706:16:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20614,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1706:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1668:60:41"
            },
            "src": "1644:85:41"
          },
          {
            "canonicalName": "IPolicy.PolicyFlowState",
            "id": 20621,
            "members": [
              {
                "id": 20618,
                "name": "Started",
                "nameLocation": "1771:7:41",
                "nodeType": "EnumValue",
                "src": "1771:7:41"
              },
              {
                "id": 20619,
                "name": "Active",
                "nameLocation": "1780:6:41",
                "nodeType": "EnumValue",
                "src": "1780:6:41"
              },
              {
                "id": 20620,
                "name": "Finished",
                "nameLocation": "1788:8:41",
                "nodeType": "EnumValue",
                "src": "1788:8:41"
              }
            ],
            "name": "PolicyFlowState",
            "nameLocation": "1754:15:41",
            "nodeType": "EnumDefinition",
            "src": "1749:48:41"
          },
          {
            "canonicalName": "IPolicy.ApplicationState",
            "id": 20626,
            "members": [
              {
                "id": 20622,
                "name": "Applied",
                "nameLocation": "1825:7:41",
                "nodeType": "EnumValue",
                "src": "1825:7:41"
              },
              {
                "id": 20623,
                "name": "Revoked",
                "nameLocation": "1834:7:41",
                "nodeType": "EnumValue",
                "src": "1834:7:41"
              },
              {
                "id": 20624,
                "name": "Underwritten",
                "nameLocation": "1843:12:41",
                "nodeType": "EnumValue",
                "src": "1843:12:41"
              },
              {
                "id": 20625,
                "name": "Declined",
                "nameLocation": "1857:8:41",
                "nodeType": "EnumValue",
                "src": "1857:8:41"
              }
            ],
            "name": "ApplicationState",
            "nameLocation": "1807:16:41",
            "nodeType": "EnumDefinition",
            "src": "1802:64:41"
          },
          {
            "canonicalName": "IPolicy.PolicyState",
            "id": 20630,
            "members": [
              {
                "id": 20627,
                "name": "Active",
                "nameLocation": "1889:6:41",
                "nodeType": "EnumValue",
                "src": "1889:6:41"
              },
              {
                "id": 20628,
                "name": "Expired",
                "nameLocation": "1897:7:41",
                "nodeType": "EnumValue",
                "src": "1897:7:41"
              },
              {
                "id": 20629,
                "name": "Closed",
                "nameLocation": "1906:6:41",
                "nodeType": "EnumValue",
                "src": "1906:6:41"
              }
            ],
            "name": "PolicyState",
            "nameLocation": "1876:11:41",
            "nodeType": "EnumDefinition",
            "src": "1871:42:41"
          },
          {
            "canonicalName": "IPolicy.ClaimState",
            "id": 20635,
            "members": [
              {
                "id": 20631,
                "name": "Applied",
                "nameLocation": "1935:7:41",
                "nodeType": "EnumValue",
                "src": "1935:7:41"
              },
              {
                "id": 20632,
                "name": "Confirmed",
                "nameLocation": "1944:9:41",
                "nodeType": "EnumValue",
                "src": "1944:9:41"
              },
              {
                "id": 20633,
                "name": "Declined",
                "nameLocation": "1955:8:41",
                "nodeType": "EnumValue",
                "src": "1955:8:41"
              },
              {
                "id": 20634,
                "name": "Closed",
                "nameLocation": "1965:6:41",
                "nodeType": "EnumValue",
                "src": "1965:6:41"
              }
            ],
            "name": "ClaimState",
            "nameLocation": "1923:10:41",
            "nodeType": "EnumDefinition",
            "src": "1918:54:41"
          },
          {
            "canonicalName": "IPolicy.PayoutState",
            "id": 20638,
            "members": [
              {
                "id": 20636,
                "name": "Expected",
                "nameLocation": "1995:8:41",
                "nodeType": "EnumValue",
                "src": "1995:8:41"
              },
              {
                "id": 20637,
                "name": "PaidOut",
                "nameLocation": "2005:7:41",
                "nodeType": "EnumValue",
                "src": "2005:7:41"
              }
            ],
            "name": "PayoutState",
            "nameLocation": "1982:11:41",
            "nodeType": "EnumDefinition",
            "src": "1977:36:41"
          },
          {
            "canonicalName": "IPolicy.Metadata",
            "id": 20652,
            "members": [
              {
                "constant": false,
                "id": 20640,
                "mutability": "mutable",
                "name": "owner",
                "nameLocation": "2068:5:41",
                "nodeType": "VariableDeclaration",
                "scope": 20652,
                "src": "2060:13:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 20639,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2060:7:41",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20642,
                "mutability": "mutable",
                "name": "productId",
                "nameLocation": "2091:9:41",
                "nodeType": "VariableDeclaration",
                "scope": 20652,
                "src": "2083:17:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 20641,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2083:7:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20645,
                "mutability": "mutable",
                "name": "state",
                "nameLocation": "2126:5:41",
                "nodeType": "VariableDeclaration",
                "scope": 20652,
                "src": "2110:21:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_PolicyFlowState_$20621",
                  "typeString": "enum IPolicy.PolicyFlowState"
                },
                "typeName": {
                  "id": 20644,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 20643,
                    "name": "PolicyFlowState",
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 20621,
                    "src": "2110:15:41"
                  },
                  "referencedDeclaration": 20621,
                  "src": "2110:15:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_PolicyFlowState_$20621",
                    "typeString": "enum IPolicy.PolicyFlowState"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20647,
                "mutability": "mutable",
                "name": "data",
                "nameLocation": "2147:4:41",
                "nodeType": "VariableDeclaration",
                "scope": 20652,
                "src": "2141:10:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 20646,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "2141:5:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20649,
                "mutability": "mutable",
                "name": "createdAt",
                "nameLocation": "2169:9:41",
                "nodeType": "VariableDeclaration",
                "scope": 20652,
                "src": "2161:17:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 20648,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2161:7:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20651,
                "mutability": "mutable",
                "name": "updatedAt",
                "nameLocation": "2196:9:41",
                "nodeType": "VariableDeclaration",
                "scope": 20652,
                "src": "2188:17:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 20650,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2188:7:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Metadata",
            "nameLocation": "2041:8:41",
            "nodeType": "StructDefinition",
            "scope": 20837,
            "src": "2034:178:41",
            "visibility": "public"
          },
          {
            "canonicalName": "IPolicy.Application",
            "id": 20666,
            "members": [
              {
                "constant": false,
                "id": 20655,
                "mutability": "mutable",
                "name": "state",
                "nameLocation": "2264:5:41",
                "nodeType": "VariableDeclaration",
                "scope": 20666,
                "src": "2247:22:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_ApplicationState_$20626",
                  "typeString": "enum IPolicy.ApplicationState"
                },
                "typeName": {
                  "id": 20654,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 20653,
                    "name": "ApplicationState",
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 20626,
                    "src": "2247:16:41"
                  },
                  "referencedDeclaration": 20626,
                  "src": "2247:16:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ApplicationState_$20626",
                    "typeString": "enum IPolicy.ApplicationState"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20657,
                "mutability": "mutable",
                "name": "premiumAmount",
                "nameLocation": "2287:13:41",
                "nodeType": "VariableDeclaration",
                "scope": 20666,
                "src": "2279:21:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 20656,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2279:7:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20659,
                "mutability": "mutable",
                "name": "sumInsuredAmount",
                "nameLocation": "2318:16:41",
                "nodeType": "VariableDeclaration",
                "scope": 20666,
                "src": "2310:24:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 20658,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2310:7:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20661,
                "mutability": "mutable",
                "name": "data",
                "nameLocation": "2350:4:41",
                "nodeType": "VariableDeclaration",
                "scope": 20666,
                "src": "2344:10:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 20660,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "2344:5:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20663,
                "mutability": "mutable",
                "name": "createdAt",
                "nameLocation": "2373:9:41",
                "nodeType": "VariableDeclaration",
                "scope": 20666,
                "src": "2365:17:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 20662,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2365:7:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20665,
                "mutability": "mutable",
                "name": "updatedAt",
                "nameLocation": "2400:9:41",
                "nodeType": "VariableDeclaration",
                "scope": 20666,
                "src": "2392:17:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 20664,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2392:7:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Application",
            "nameLocation": "2225:11:41",
            "nodeType": "StructDefinition",
            "scope": 20837,
            "src": "2218:198:41",
            "visibility": "public"
          },
          {
            "canonicalName": "IPolicy.Policy",
            "id": 20686,
            "members": [
              {
                "constant": false,
                "id": 20669,
                "mutability": "mutable",
                "name": "state",
                "nameLocation": "2458:5:41",
                "nodeType": "VariableDeclaration",
                "scope": 20686,
                "src": "2446:17:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_PolicyState_$20630",
                  "typeString": "enum IPolicy.PolicyState"
                },
                "typeName": {
                  "id": 20668,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 20667,
                    "name": "PolicyState",
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 20630,
                    "src": "2446:11:41"
                  },
                  "referencedDeclaration": 20630,
                  "src": "2446:11:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_PolicyState_$20630",
                    "typeString": "enum IPolicy.PolicyState"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20671,
                "mutability": "mutable",
                "name": "premiumExpectedAmount",
                "nameLocation": "2481:21:41",
                "nodeType": "VariableDeclaration",
                "scope": 20686,
                "src": "2473:29:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 20670,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2473:7:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20673,
                "mutability": "mutable",
                "name": "premiumPaidAmount",
                "nameLocation": "2520:17:41",
                "nodeType": "VariableDeclaration",
                "scope": 20686,
                "src": "2512:25:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 20672,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2512:7:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20675,
                "mutability": "mutable",
                "name": "claimsCount",
                "nameLocation": "2555:11:41",
                "nodeType": "VariableDeclaration",
                "scope": 20686,
                "src": "2547:19:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 20674,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2547:7:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20677,
                "mutability": "mutable",
                "name": "openClaimsCount",
                "nameLocation": "2584:15:41",
                "nodeType": "VariableDeclaration",
                "scope": 20686,
                "src": "2576:23:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 20676,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2576:7:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20679,
                "mutability": "mutable",
                "name": "payoutMaxAmount",
                "nameLocation": "2617:15:41",
                "nodeType": "VariableDeclaration",
                "scope": 20686,
                "src": "2609:23:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 20678,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2609:7:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20681,
                "mutability": "mutable",
                "name": "payoutAmount",
                "nameLocation": "2650:12:41",
                "nodeType": "VariableDeclaration",
                "scope": 20686,
                "src": "2642:20:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 20680,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2642:7:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20683,
                "mutability": "mutable",
                "name": "createdAt",
                "nameLocation": "2680:9:41",
                "nodeType": "VariableDeclaration",
                "scope": 20686,
                "src": "2672:17:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 20682,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2672:7:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20685,
                "mutability": "mutable",
                "name": "updatedAt",
                "nameLocation": "2707:9:41",
                "nodeType": "VariableDeclaration",
                "scope": 20686,
                "src": "2699:17:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 20684,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2699:7:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Policy",
            "nameLocation": "2429:6:41",
            "nodeType": "StructDefinition",
            "scope": 20837,
            "src": "2422:301:41",
            "visibility": "public"
          },
          {
            "canonicalName": "IPolicy.Claim",
            "id": 20700,
            "members": [
              {
                "constant": false,
                "id": 20689,
                "mutability": "mutable",
                "name": "state",
                "nameLocation": "2763:5:41",
                "nodeType": "VariableDeclaration",
                "scope": 20700,
                "src": "2752:16:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_ClaimState_$20635",
                  "typeString": "enum IPolicy.ClaimState"
                },
                "typeName": {
                  "id": 20688,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 20687,
                    "name": "ClaimState",
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 20635,
                    "src": "2752:10:41"
                  },
                  "referencedDeclaration": 20635,
                  "src": "2752:10:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ClaimState_$20635",
                    "typeString": "enum IPolicy.ClaimState"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20691,
                "mutability": "mutable",
                "name": "claimAmount",
                "nameLocation": "2786:11:41",
                "nodeType": "VariableDeclaration",
                "scope": 20700,
                "src": "2778:19:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 20690,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2778:7:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20693,
                "mutability": "mutable",
                "name": "paidAmount",
                "nameLocation": "2815:10:41",
                "nodeType": "VariableDeclaration",
                "scope": 20700,
                "src": "2807:18:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 20692,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2807:7:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20695,
                "mutability": "mutable",
                "name": "data",
                "nameLocation": "2841:4:41",
                "nodeType": "VariableDeclaration",
                "scope": 20700,
                "src": "2835:10:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 20694,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "2835:5:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20697,
                "mutability": "mutable",
                "name": "createdAt",
                "nameLocation": "2863:9:41",
                "nodeType": "VariableDeclaration",
                "scope": 20700,
                "src": "2855:17:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 20696,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2855:7:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20699,
                "mutability": "mutable",
                "name": "updatedAt",
                "nameLocation": "2890:9:41",
                "nodeType": "VariableDeclaration",
                "scope": 20700,
                "src": "2882:17:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 20698,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2882:7:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Claim",
            "nameLocation": "2736:5:41",
            "nodeType": "StructDefinition",
            "scope": 20837,
            "src": "2729:177:41",
            "visibility": "public"
          },
          {
            "canonicalName": "IPolicy.Payout",
            "id": 20714,
            "members": [
              {
                "constant": false,
                "id": 20702,
                "mutability": "mutable",
                "name": "claimId",
                "nameLocation": "2944:7:41",
                "nodeType": "VariableDeclaration",
                "scope": 20714,
                "src": "2936:15:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 20701,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2936:7:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20705,
                "mutability": "mutable",
                "name": "state",
                "nameLocation": "2973:5:41",
                "nodeType": "VariableDeclaration",
                "scope": 20714,
                "src": "2961:17:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_PayoutState_$20638",
                  "typeString": "enum IPolicy.PayoutState"
                },
                "typeName": {
                  "id": 20704,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 20703,
                    "name": "PayoutState",
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 20638,
                    "src": "2961:11:41"
                  },
                  "referencedDeclaration": 20638,
                  "src": "2961:11:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_PayoutState_$20638",
                    "typeString": "enum IPolicy.PayoutState"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20707,
                "mutability": "mutable",
                "name": "amount",
                "nameLocation": "2996:6:41",
                "nodeType": "VariableDeclaration",
                "scope": 20714,
                "src": "2988:14:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 20706,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2988:7:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20709,
                "mutability": "mutable",
                "name": "data",
                "nameLocation": "3018:4:41",
                "nodeType": "VariableDeclaration",
                "scope": 20714,
                "src": "3012:10:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 20708,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "3012:5:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20711,
                "mutability": "mutable",
                "name": "createdAt",
                "nameLocation": "3040:9:41",
                "nodeType": "VariableDeclaration",
                "scope": 20714,
                "src": "3032:17:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 20710,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "3032:7:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 20713,
                "mutability": "mutable",
                "name": "updatedAt",
                "nameLocation": "3067:9:41",
                "nodeType": "VariableDeclaration",
                "scope": 20714,
                "src": "3059:17:41",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 20712,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "3059:7:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Payout",
            "nameLocation": "2919:6:41",
            "nodeType": "StructDefinition",
            "scope": 20837,
            "src": "2912:171:41",
            "visibility": "public"
          },
          {
            "functionSelector": "a1814a1a",
            "id": 20725,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "createPolicyFlow",
            "nameLocation": "3098:16:41",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20721,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20716,
                  "mutability": "mutable",
                  "name": "owner",
                  "nameLocation": "3132:5:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20725,
                  "src": "3124:13:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 20715,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3124:7:41",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20718,
                  "mutability": "mutable",
                  "name": "productId",
                  "nameLocation": "3155:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20725,
                  "src": "3147:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20717,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3147:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20720,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "3190:4:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20725,
                  "src": "3175:19:41",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 20719,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "3175:5:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3114:86:41"
            },
            "returnParameters": {
              "id": 20724,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20723,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "3226:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20725,
                  "src": "3218:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20722,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3218:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3217:19:41"
            },
            "scope": 20837,
            "src": "3089:148:41",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "6780336e",
            "id": 20736,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "createApplication",
            "nameLocation": "3252:17:41",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20734,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20727,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "3287:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20736,
                  "src": "3279:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20726,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3279:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20729,
                  "mutability": "mutable",
                  "name": "premiumAmount",
                  "nameLocation": "3315:13:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20736,
                  "src": "3307:21:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20728,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3307:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20731,
                  "mutability": "mutable",
                  "name": "sumInsuredAmount",
                  "nameLocation": "3346:16:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20736,
                  "src": "3338:24:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20730,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3338:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20733,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "3387:4:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20736,
                  "src": "3372:19:41",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 20732,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "3372:5:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3269:128:41"
            },
            "returnParameters": {
              "id": 20735,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3406:0:41"
            },
            "scope": 20837,
            "src": "3243:164:41",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "eb96cbed",
            "id": 20741,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "revokeApplication",
            "nameLocation": "3422:17:41",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20739,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20738,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "3448:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20741,
                  "src": "3440:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20737,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3440:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3439:19:41"
            },
            "returnParameters": {
              "id": 20740,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3467:0:41"
            },
            "scope": 20837,
            "src": "3413:55:41",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "5c955288",
            "id": 20746,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "underwriteApplication",
            "nameLocation": "3482:21:41",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20744,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20743,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "3512:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20746,
                  "src": "3504:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20742,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3504:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3503:19:41"
            },
            "returnParameters": {
              "id": 20745,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3531:0:41"
            },
            "scope": 20837,
            "src": "3473:59:41",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "296d6c7d",
            "id": 20751,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "declineApplication",
            "nameLocation": "3546:18:41",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20749,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20748,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "3573:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20751,
                  "src": "3565:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20747,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3565:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3564:19:41"
            },
            "returnParameters": {
              "id": 20750,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3592:0:41"
            },
            "scope": 20837,
            "src": "3537:56:41",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "e3ebdea5",
            "id": 20758,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "collectPremium",
            "nameLocation": "3608:14:41",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20756,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20753,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "3631:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20758,
                  "src": "3623:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20752,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3623:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20755,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "3650:6:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20758,
                  "src": "3642:14:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20754,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3642:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3622:35:41"
            },
            "returnParameters": {
              "id": 20757,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3666:0:41"
            },
            "scope": 20837,
            "src": "3599:68:41",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "30a73da5",
            "id": 20767,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "adjustPremiumSumInsured",
            "nameLocation": "3682:23:41",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20765,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20760,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "3723:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20767,
                  "src": "3715:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20759,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3715:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20762,
                  "mutability": "mutable",
                  "name": "expectedPremiumAmount",
                  "nameLocation": "3751:21:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20767,
                  "src": "3743:29:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20761,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3743:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20764,
                  "mutability": "mutable",
                  "name": "sumInsuredAmount",
                  "nameLocation": "3790:16:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20767,
                  "src": "3782:24:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20763,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3782:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3705:107:41"
            },
            "returnParameters": {
              "id": 20766,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3821:0:41"
            },
            "scope": 20837,
            "src": "3673:149:41",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "4c14ccc2",
            "id": 20772,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "createPolicy",
            "nameLocation": "3837:12:41",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20770,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20769,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "3858:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20772,
                  "src": "3850:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20768,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3850:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3849:19:41"
            },
            "returnParameters": {
              "id": 20771,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3877:0:41"
            },
            "scope": 20837,
            "src": "3828:50:41",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "47e3b138",
            "id": 20777,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "expirePolicy",
            "nameLocation": "3892:12:41",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20775,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20774,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "3913:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20777,
                  "src": "3905:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20773,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3905:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3904:19:41"
            },
            "returnParameters": {
              "id": 20776,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3932:0:41"
            },
            "scope": 20837,
            "src": "3883:50:41",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "adcadb28",
            "id": 20782,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "closePolicy",
            "nameLocation": "3947:11:41",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20780,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20779,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "3967:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20782,
                  "src": "3959:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20778,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3959:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3958:19:41"
            },
            "returnParameters": {
              "id": 20781,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3986:0:41"
            },
            "scope": 20837,
            "src": "3938:49:41",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "ec935668",
            "id": 20793,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "createClaim",
            "nameLocation": "4002:11:41",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20789,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20784,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4031:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20793,
                  "src": "4023:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20783,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4023:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20786,
                  "mutability": "mutable",
                  "name": "claimAmount",
                  "nameLocation": "4059:11:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20793,
                  "src": "4051:19:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20785,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4051:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20788,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "4096:4:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20793,
                  "src": "4081:19:41",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 20787,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "4081:5:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4013:93:41"
            },
            "returnParameters": {
              "id": 20792,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20791,
                  "mutability": "mutable",
                  "name": "claimId",
                  "nameLocation": "4133:7:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20793,
                  "src": "4125:15:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20790,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4125:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4124:17:41"
            },
            "scope": 20837,
            "src": "3993:149:41",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "4e02c63f",
            "id": 20802,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "confirmClaim",
            "nameLocation": "4157:12:41",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20800,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20795,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4187:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20802,
                  "src": "4179:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20794,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4179:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20797,
                  "mutability": "mutable",
                  "name": "claimId",
                  "nameLocation": "4215:7:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20802,
                  "src": "4207:15:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20796,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4207:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20799,
                  "mutability": "mutable",
                  "name": "confirmedAmount",
                  "nameLocation": "4241:15:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20802,
                  "src": "4233:23:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20798,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4233:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4169:93:41"
            },
            "returnParameters": {
              "id": 20801,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4271:0:41"
            },
            "scope": 20837,
            "src": "4148:124:41",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "4cda0de9",
            "id": 20809,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "declineClaim",
            "nameLocation": "4287:12:41",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20807,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20804,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4308:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20809,
                  "src": "4300:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20803,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4300:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20806,
                  "mutability": "mutable",
                  "name": "claimId",
                  "nameLocation": "4327:7:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20809,
                  "src": "4319:15:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20805,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4319:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4299:36:41"
            },
            "returnParameters": {
              "id": 20808,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4344:0:41"
            },
            "scope": 20837,
            "src": "4278:67:41",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "7f29dba2",
            "id": 20816,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "closeClaim",
            "nameLocation": "4359:10:41",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20814,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20811,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4378:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20816,
                  "src": "4370:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20810,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4370:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20813,
                  "mutability": "mutable",
                  "name": "claimId",
                  "nameLocation": "4397:7:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20816,
                  "src": "4389:15:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20812,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4389:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4369:36:41"
            },
            "returnParameters": {
              "id": 20815,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4414:0:41"
            },
            "scope": 20837,
            "src": "4350:65:41",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "db42b77b",
            "id": 20829,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "createPayout",
            "nameLocation": "4430:12:41",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20825,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20818,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4460:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20829,
                  "src": "4452:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20817,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4452:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20820,
                  "mutability": "mutable",
                  "name": "claimId",
                  "nameLocation": "4487:7:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20829,
                  "src": "4479:15:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20819,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4479:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20822,
                  "mutability": "mutable",
                  "name": "payoutAmount",
                  "nameLocation": "4512:12:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20829,
                  "src": "4504:20:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20821,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4504:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20824,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "4549:4:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20829,
                  "src": "4534:19:41",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 20823,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "4534:5:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4442:117:41"
            },
            "returnParameters": {
              "id": 20828,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20827,
                  "mutability": "mutable",
                  "name": "payoutId",
                  "nameLocation": "4586:8:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20829,
                  "src": "4578:16:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20826,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4578:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4577:18:41"
            },
            "scope": 20837,
            "src": "4421:175:41",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "fe64372b",
            "id": 20836,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "processPayout",
            "nameLocation": "4611:13:41",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 20834,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 20831,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4642:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20836,
                  "src": "4634:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 20830,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4634:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 20833,
                  "mutability": "mutable",
                  "name": "payoutId",
                  "nameLocation": "4669:8:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 20836,
                  "src": "4661:16:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 20832,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4661:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4624:59:41"
            },
            "returnParameters": {
              "id": 20835,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4692:0:41"
            },
            "scope": 20837,
            "src": "4602:91:41",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 20838,
        "src": "63:4632:41"
      }
    ],
    "src": "39:4657:41"
  },
  "bytecode": "",
  "bytecodeSha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.2+commit.661d1103"
  },
  "contractName": "IPolicy",
  "coverageMap": {
    "branches": {},
    "statements": {}
  },
  "dependencies": [],
  "deployedBytecode": "",
  "deployedSourceMap": "",
  "language": "Solidity",
  "natspec": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "offset": [
    63,
    4695
  ],
  "opcodes": "",
  "pcMap": {},
  "sha1": "1c3411ced5e5b27768292ff3c50213ef5701ff25",
  "source": "// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\ninterface IPolicy {\n\n    // Events\n    event LogMetadataCreated(\n        address owner,\n        bytes32 processId,\n        uint256 productId, \n        PolicyFlowState state\n    );\n\n    event LogMetadataStateChanged(\n        bytes32 processId, \n        PolicyFlowState state\n    );\n\n    event LogApplicationCreated(\n        bytes32 processId, \n        uint256 premiumAmount, \n        uint256 sumInsuredAmount\n    );\n\n    event LogApplicationRevoked(bytes32 processId);\n    event LogApplicationUnderwritten(bytes32 processId);\n    event LogApplicationDeclined(bytes32 processId);\n\n    event LogPolicyCreated(bytes32 processId);\n    event LogPolicyExpired(bytes32 processId);\n    event LogPolicyClosed(bytes32 processId);\n\n    event LogPremiumCollected(bytes32 processId, uint256 amount);\n    \n    event LogApplicationSumInsuredAdjusted(bytes32 processId, uint256 sumInsuredAmountOld, uint256 sumInsuredAmount);\n    event LogApplicationPremiumAdjusted(bytes32 processId, uint256 premiumAmountOld, uint256 premiumAmount);\n    event LogPolicyPremiumAdjusted(bytes32 processId, uint256 premiumExpectedAmountOld, uint256 premiumExpectedAmount);\n\n    event LogClaimCreated(bytes32 processId, uint256 claimId, uint256 claimAmount);\n    event LogClaimConfirmed(bytes32 processId, uint256 claimId, uint256 confirmedAmount);\n    event LogClaimDeclined(bytes32 processId, uint256 claimId);\n    event LogClaimClosed(bytes32 processId, uint256 claimId);\n\n    event LogPayoutCreated(\n        bytes32 processId,\n        uint256 claimId,\n        uint256 payoutId,\n        uint256 amount\n    );\n\n    event LogPayoutProcessed(\n        bytes32 processId, \n        uint256 payoutId\n    );\n\n    // States\n    enum PolicyFlowState {Started, Active, Finished}\n    enum ApplicationState {Applied, Revoked, Underwritten, Declined}\n    enum PolicyState {Active, Expired, Closed}\n    enum ClaimState {Applied, Confirmed, Declined, Closed}\n    enum PayoutState {Expected, PaidOut}\n\n    // Objects\n    struct Metadata {\n        address owner;\n        uint256 productId;\n        PolicyFlowState state;\n        bytes data;\n        uint256 createdAt;\n        uint256 updatedAt;\n    }\n\n    struct Application {\n        ApplicationState state;\n        uint256 premiumAmount;\n        uint256 sumInsuredAmount;\n        bytes data; \n        uint256 createdAt;\n        uint256 updatedAt;\n    }\n\n    struct Policy {\n        PolicyState state;\n        uint256 premiumExpectedAmount;\n        uint256 premiumPaidAmount;\n        uint256 claimsCount;\n        uint256 openClaimsCount;\n        uint256 payoutMaxAmount;\n        uint256 payoutAmount;\n        uint256 createdAt;\n        uint256 updatedAt;\n    }\n\n    struct Claim {\n        ClaimState state;\n        uint256 claimAmount;\n        uint256 paidAmount;\n        bytes data;\n        uint256 createdAt;\n        uint256 updatedAt;\n    }\n\n    struct Payout {\n        uint256 claimId;\n        PayoutState state;\n        uint256 amount;\n        bytes data;\n        uint256 createdAt;\n        uint256 updatedAt;\n    }\n\n    function createPolicyFlow(\n        address owner,\n        uint256 productId, \n        bytes calldata data\n    ) external returns(bytes32 processId);\n\n    function createApplication(\n        bytes32 processId, \n        uint256 premiumAmount,\n        uint256 sumInsuredAmount,\n        bytes calldata data\n    ) external;\n\n    function revokeApplication(bytes32 processId) external;\n    function underwriteApplication(bytes32 processId) external;\n    function declineApplication(bytes32 processId) external;\n\n    function collectPremium(bytes32 processId, uint256 amount) external;\n\n    function adjustPremiumSumInsured(\n        bytes32 processId, \n        uint256 expectedPremiumAmount,\n        uint256 sumInsuredAmount\n    ) external;\n\n    function createPolicy(bytes32 processId) external;\n    function expirePolicy(bytes32 processId) external;\n    function closePolicy(bytes32 processId) external;\n\n    function createClaim(\n        bytes32 processId, \n        uint256 claimAmount, \n        bytes calldata data\n    ) external returns (uint256 claimId);\n\n    function confirmClaim(\n        bytes32 processId, \n        uint256 claimId, \n        uint256 confirmedAmount\n    ) external;\n\n    function declineClaim(bytes32 processId, uint256 claimId) external;\n    function closeClaim(bytes32 processId, uint256 claimId) external;\n\n    function createPayout(\n        bytes32 processId,\n        uint256 claimId,\n        uint256 payoutAmount,\n        bytes calldata data\n    ) external returns (uint256 payoutId);\n\n    function processPayout(\n        bytes32 processId,\n        uint256 payoutId\n    ) external;\n}\n",
  "sourceMap": "",
  "sourcePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IPolicy.sol",
  "type": "interface"
}