{
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogComponentApproved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogComponentArchived",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "componentName",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "enum IComponent.ComponentType",
          "name": "componentType",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "componentAddress",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "registryAddress",
          "type": "address"
        }
      ],
      "name": "LogComponentCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogComponentDeclined",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogComponentPaused",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "componentName",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "enum IComponent.ComponentType",
          "name": "componentType",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "componentAddress",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogComponentProposed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogComponentResumed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "enum IComponent.ComponentState",
          "name": "stateOld",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "enum IComponent.ComponentState",
          "name": "stateNew",
          "type": "uint8"
        }
      ],
      "name": "LogComponentStateChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogComponentSuspended",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogComponentUnpaused",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogRiskpoolApproved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogRiskpoolBundleCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "isMatching",
          "type": "bool"
        }
      ],
      "name": "LogRiskpoolBundleMatchesPolicy",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "collateralAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "isSecured",
          "type": "bool"
        }
      ],
      "name": "LogRiskpoolCollateralLocked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "collateralAmount",
          "type": "uint256"
        }
      ],
      "name": "LogRiskpoolCollateralReleased",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "riskpoolAddress",
          "type": "address"
        }
      ],
      "name": "LogRiskpoolCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogRiskpoolDeclined",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogRiskpoolPayoutProcessed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogRiskpoolPremiumProcessed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogRiskpoolProposed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "DEFAULT_FILTER_DATA_STRUCTURE",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "FULL_COLLATERALIZATION_LEVEL",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "activeBundles",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "approvalCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "archiveCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "id",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "riskpoolId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "tokenId",
              "type": "uint256"
            },
            {
              "internalType": "enum IBundle.BundleState",
              "name": "state",
              "type": "uint8"
            },
            {
              "internalType": "bytes",
              "name": "filter",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "capital",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "lockedCapital",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "balance",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "updatedAt",
              "type": "uint256"
            }
          ],
          "internalType": "struct IBundle.Bundle",
          "name": "bundle",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "enum IPolicy.ApplicationState",
              "name": "state",
              "type": "uint8"
            },
            {
              "internalType": "uint256",
              "name": "premiumAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "sumInsuredAmount",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "updatedAt",
              "type": "uint256"
            }
          ],
          "internalType": "struct IPolicy.Application",
          "name": "application",
          "type": "tuple"
        }
      ],
      "name": "bundleMatchesApplication",
      "outputs": [
        {
          "internalType": "bool",
          "name": "isMatching",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "bundles",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        }
      ],
      "name": "burnBundle",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        }
      ],
      "name": "closeBundle",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "collateralAmount",
          "type": "uint256"
        }
      ],
      "name": "collateralizePolicy",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "filter",
          "type": "bytes"
        },
        {
          "internalType": "uint256",
          "name": "initialAmount",
          "type": "uint256"
        }
      ],
      "name": "createBundle",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "declineCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "defundBundle",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "netAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "fundBundle",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "netAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "idx",
          "type": "uint256"
        }
      ],
      "name": "getActiveBundleId",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getBalance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "idx",
          "type": "uint256"
        }
      ],
      "name": "getBundle",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "id",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "riskpoolId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "tokenId",
              "type": "uint256"
            },
            {
              "internalType": "enum IBundle.BundleState",
              "name": "state",
              "type": "uint8"
            },
            {
              "internalType": "bytes",
              "name": "filter",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "capital",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "lockedCapital",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "balance",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "updatedAt",
              "type": "uint256"
            }
          ],
          "internalType": "struct IBundle.Bundle",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getCapacity",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getCapital",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getCollateralizationLevel",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getErc20Token",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getFilterDataStructure",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getFullCollateralizationLevel",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getId",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getMaximumNumberOfActiveBundles",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "maximumNumberOfActiveBundles",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getName",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getOwner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getRegistry",
      "outputs": [
        {
          "internalType": "contract IRegistry",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getState",
      "outputs": [
        {
          "internalType": "enum IComponent.ComponentState",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getSumOfSumInsuredCap",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getTotalValueLocked",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getType",
      "outputs": [
        {
          "internalType": "enum IComponent.ComponentType",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getWallet",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "isOracle",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "isProduct",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "isRiskpool",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        }
      ],
      "name": "lockBundle",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pauseCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "processPolicyPayout",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "processPolicyPremium",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "proposalCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "releasePolicy",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "resumeCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "setId",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "maximumNumberOfActiveBundles",
          "type": "uint256"
        }
      ],
      "name": "setMaximumNumberOfActiveBundles",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "suspendCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        }
      ],
      "name": "unlockBundle",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "unpauseCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "allSourcePaths": {
    "0": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/access/Ownable.sol",
    "1": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/IERC20.sol",
    "10": "contracts/components/IRiskpool.sol",
    "13": "contracts/components/Riskpool.sol",
    "14": "contracts/modules/IAccess.sol",
    "16": "contracts/modules/IComponentEvents.sol",
    "2": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC721/IERC721.sol",
    "21": "contracts/modules/IRegistry.sol",
    "23": "contracts/services/IComponentOwnerService.sol",
    "24": "contracts/services/IInstanceOperatorService.sol",
    "25": "contracts/services/IInstanceService.sol",
    "26": "contracts/services/IOracleService.sol",
    "27": "contracts/services/IProductService.sol",
    "28": "contracts/services/IRiskpoolService.sol",
    "3": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/Context.sol",
    "30": "contracts/tokens/IBundleToken.sol",
    "4": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/introspection/IERC165.sol",
    "6": "contracts/components/Component.sol",
    "7": "contracts/components/IComponent.sol"
  },
  "ast": {
    "absolutePath": "contracts/components/Riskpool.sol",
    "exportedSymbols": {
      "Component": [
        708
      ],
      "Context": [
        4978
      ],
      "IAccess": [
        2660
      ],
      "IBundle": [
        2844
      ],
      "IBundleToken": [
        4649
      ],
      "IComponent": [
        812
      ],
      "IComponentEvents": [
        2897
      ],
      "IComponentOwnerService": [
        3833
      ],
      "IERC165": [
        4990
      ],
      "IERC20": [
        4956
      ],
      "IERC721": [
        4878
      ],
      "IInstanceOperatorService": [
        3984
      ],
      "IInstanceService": [
        4333
      ],
      "IOracleService": [
        4343
      ],
      "IPolicy": [
        3257
      ],
      "IPool": [
        3373
      ],
      "IProductService": [
        4488
      ],
      "IRegistry": [
        3538
      ],
      "IRiskpool": [
        1136
      ],
      "IRiskpoolService": [
        4594
      ],
      "ITreasury": [
        3798
      ],
      "Ownable": [
        4762
      ],
      "Riskpool": [
        2597
      ]
    },
    "id": 2598,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1868,
        "literals": [
          "solidity",
          "0.8",
          ".2"
        ],
        "nodeType": "PragmaDirective",
        "src": "39:22:13"
      },
      {
        "absolutePath": "contracts/components/IRiskpool.sol",
        "file": "./IRiskpool.sol",
        "id": 1869,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 2598,
        "sourceUnit": 1137,
        "src": "63:25:13",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "contracts/components/Component.sol",
        "file": "./Component.sol",
        "id": 1870,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 2598,
        "sourceUnit": 709,
        "src": "89:25:13",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "contracts/modules/IBundle.sol",
        "file": "../modules/IBundle.sol",
        "id": 1871,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 2598,
        "sourceUnit": 2845,
        "src": "116:32:13",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "contracts/modules/IPolicy.sol",
        "file": "../modules/IPolicy.sol",
        "id": 1872,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 2598,
        "sourceUnit": 3258,
        "src": "149:32:13",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "contracts/services/IInstanceService.sol",
        "file": "../services/IInstanceService.sol",
        "id": 1873,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 2598,
        "sourceUnit": 4334,
        "src": "182:42:13",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "contracts/services/IRiskpoolService.sol",
        "file": "../services/IRiskpoolService.sol",
        "id": 1874,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 2598,
        "sourceUnit": 4595,
        "src": "225:42:13",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC721/IERC721.sol",
        "file": "@openzeppelin/contracts/token/ERC721/IERC721.sol",
        "id": 1875,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 2598,
        "sourceUnit": 4879,
        "src": "269:58:13",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": true,
        "baseContracts": [
          {
            "baseName": {
              "id": 1876,
              "name": "IRiskpool",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 1136,
              "src": "364:9:13"
            },
            "id": 1877,
            "nodeType": "InheritanceSpecifier",
            "src": "364:9:13"
          },
          {
            "baseName": {
              "id": 1878,
              "name": "Component",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 708,
              "src": "380:9:13"
            },
            "id": 1879,
            "nodeType": "InheritanceSpecifier",
            "src": "380:9:13"
          }
        ],
        "contractDependencies": [
          708,
          812,
          1136,
          2897,
          4762,
          4978
        ],
        "contractKind": "contract",
        "fullyImplemented": false,
        "id": 2597,
        "linearizedBaseContracts": [
          2597,
          708,
          4762,
          4978,
          2897,
          1136,
          812
        ],
        "name": "Riskpool",
        "nameLocation": "347:8:13",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "functionSelector": "45fe1c6d",
            "id": 1884,
            "mutability": "constant",
            "name": "FULL_COLLATERALIZATION_LEVEL",
            "nameLocation": "584:28:13",
            "nodeType": "VariableDeclaration",
            "scope": 2597,
            "src": "560:61:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1880,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "560:7:13",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "commonType": {
                "typeIdentifier": "t_rational_1000000000000000000_by_1",
                "typeString": "int_const 1000000000000000000"
              },
              "id": 1883,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "leftExpression": {
                "hexValue": "3130",
                "id": 1881,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "615:2:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_10_by_1",
                  "typeString": "int_const 10"
                },
                "value": "10"
              },
              "nodeType": "BinaryOperation",
              "operator": "**",
              "rightExpression": {
                "hexValue": "3138",
                "id": 1882,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "619:2:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_18_by_1",
                  "typeString": "int_const 18"
                },
                "value": "18"
              },
              "src": "615:6:13",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1000000000000000000_by_1",
                "typeString": "int_const 1000000000000000000"
              }
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "7893c7bc",
            "id": 1887,
            "mutability": "constant",
            "name": "DEFAULT_FILTER_DATA_STRUCTURE",
            "nameLocation": "650:29:13",
            "nodeType": "VariableDeclaration",
            "scope": 2597,
            "src": "627:57:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory_ptr",
              "typeString": "string"
            },
            "typeName": {
              "id": 1885,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "627:6:13",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "hexValue": "",
              "id": 1886,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "682:2:13",
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                "typeString": "literal_string \"\""
              },
              "value": ""
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1890,
            "mutability": "mutable",
            "name": "_instanceService",
            "nameLocation": "717:16:13",
            "nodeType": "VariableDeclaration",
            "scope": 2597,
            "src": "691:42:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_IInstanceService_$4333",
              "typeString": "contract IInstanceService"
            },
            "typeName": {
              "id": 1889,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 1888,
                "name": "IInstanceService",
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 4333,
                "src": "691:16:13"
              },
              "referencedDeclaration": 4333,
              "src": "691:16:13",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IInstanceService_$4333",
                "typeString": "contract IInstanceService"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1893,
            "mutability": "mutable",
            "name": "_riskpoolService",
            "nameLocation": "766:16:13",
            "nodeType": "VariableDeclaration",
            "scope": 2597,
            "src": "740:42:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_IRiskpoolService_$4594",
              "typeString": "contract IRiskpoolService"
            },
            "typeName": {
              "id": 1892,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 1891,
                "name": "IRiskpoolService",
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 4594,
                "src": "740:16:13"
              },
              "referencedDeclaration": 4594,
              "src": "740:16:13",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IRiskpoolService_$4594",
                "typeString": "contract IRiskpoolService"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1896,
            "mutability": "mutable",
            "name": "_bundleToken",
            "nameLocation": "805:12:13",
            "nodeType": "VariableDeclaration",
            "scope": 2597,
            "src": "788:29:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_IERC721_$4878",
              "typeString": "contract IERC721"
            },
            "typeName": {
              "id": 1895,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 1894,
                "name": "IERC721",
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 4878,
                "src": "788:7:13"
              },
              "referencedDeclaration": 4878,
              "src": "788:7:13",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IERC721_$4878",
                "typeString": "contract IERC721"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1899,
            "mutability": "mutable",
            "name": "_bundleIds",
            "nameLocation": "907:10:13",
            "nodeType": "VariableDeclaration",
            "scope": 2597,
            "src": "887:30:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
              "typeString": "uint256[]"
            },
            "typeName": {
              "baseType": {
                "id": 1897,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "887:7:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "id": 1898,
              "nodeType": "ArrayTypeName",
              "src": "887:10:13",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                "typeString": "uint256[]"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1901,
            "mutability": "mutable",
            "name": "_wallet",
            "nameLocation": "940:7:13",
            "nodeType": "VariableDeclaration",
            "scope": 2597,
            "src": "924:23:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 1900,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "924:7:13",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 1903,
            "mutability": "mutable",
            "name": "_erc20Token",
            "nameLocation": "969:11:13",
            "nodeType": "VariableDeclaration",
            "scope": 2597,
            "src": "953:27:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 1902,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "953:7:13",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 1905,
            "mutability": "mutable",
            "name": "_collateralization",
            "nameLocation": "1002:18:13",
            "nodeType": "VariableDeclaration",
            "scope": 2597,
            "src": "986:34:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1904,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "986:7:13",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 1907,
            "mutability": "mutable",
            "name": "_sumOfSumInsuredCap",
            "nameLocation": "1042:19:13",
            "nodeType": "VariableDeclaration",
            "scope": 2597,
            "src": "1026:35:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1906,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1026:7:13",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 1909,
            "mutability": "mutable",
            "name": "_maxNumberOfActiveBundles",
            "nameLocation": "1083:25:13",
            "nodeType": "VariableDeclaration",
            "scope": 2597,
            "src": "1067:41:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1908,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1067:7:13",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "private"
          },
          {
            "body": {
              "id": 1922,
              "nodeType": "Block",
              "src": "1133:145:13",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 1917,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 1912,
                            "name": "_msgSender",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4968,
                            "src": "1164:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                              "typeString": "function () view returns (address)"
                            }
                          },
                          "id": 1913,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1164:12:13",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "arguments": [
                            {
                              "hexValue": "506f6f6c",
                              "id": 1915,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1200:6:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f",
                                "typeString": "literal_string \"Pool\""
                              },
                              "value": "Pool"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f",
                                "typeString": "literal_string \"Pool\""
                              }
                            ],
                            "id": 1914,
                            "name": "_getContractAddress",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 707,
                            "src": "1180:19:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 1916,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1180:27:13",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "1164:43:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a52504c2d3030313a4143434553535f44454e494544",
                        "id": 1918,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1221:29:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f210ad6881c3bcfe6eee67ece1d0f357ecc667e4ab67d69f8ab3ef73d4a985c4",
                          "typeString": "literal_string \"ERROR:RPL-001:ACCESS_DENIED\""
                        },
                        "value": "ERROR:RPL-001:ACCESS_DENIED"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_f210ad6881c3bcfe6eee67ece1d0f357ecc667e4ab67d69f8ab3ef73d4a985c4",
                          "typeString": "literal_string \"ERROR:RPL-001:ACCESS_DENIED\""
                        }
                      ],
                      "id": 1911,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "1143:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1919,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1143:117:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1920,
                  "nodeType": "ExpressionStatement",
                  "src": "1143:117:13"
                },
                {
                  "id": 1921,
                  "nodeType": "PlaceholderStatement",
                  "src": "1270:1:13"
                }
              ]
            },
            "id": 1923,
            "name": "onlyPool",
            "nameLocation": "1124:8:13",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1910,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1133:0:13"
            },
            "src": "1115:163:13",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1954,
              "nodeType": "Block",
              "src": "1327:278:13",
              "statements": [
                {
                  "assignments": [
                    1931
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1931,
                      "mutability": "mutable",
                      "name": "bundle",
                      "nameLocation": "1359:6:13",
                      "nodeType": "VariableDeclaration",
                      "scope": 1954,
                      "src": "1337:28:13",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Bundle_$2760_memory_ptr",
                        "typeString": "struct IBundle.Bundle"
                      },
                      "typeName": {
                        "id": 1930,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 1929,
                          "name": "IBundle.Bundle",
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 2760,
                          "src": "1337:14:13"
                        },
                        "referencedDeclaration": 2760,
                        "src": "1337:14:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Bundle_$2760_storage_ptr",
                          "typeString": "struct IBundle.Bundle"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 1936,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 1934,
                        "name": "bundleId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1925,
                        "src": "1395:8:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 1932,
                        "name": "_instanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1890,
                        "src": "1368:16:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IInstanceService_$4333",
                          "typeString": "contract IInstanceService"
                        }
                      },
                      "id": 1933,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getBundle",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4232,
                      "src": "1368:26:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$2760_memory_ptr_$",
                        "typeString": "function (uint256) view external returns (struct IBundle.Bundle memory)"
                      }
                    },
                    "id": 1935,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1368:36:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bundle_$2760_memory_ptr",
                      "typeString": "struct IBundle.Bundle memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1337:67:13"
                },
                {
                  "assignments": [
                    1938
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1938,
                      "mutability": "mutable",
                      "name": "bundleOwner",
                      "nameLocation": "1422:11:13",
                      "nodeType": "VariableDeclaration",
                      "scope": 1954,
                      "src": "1414:19:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1937,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "1414:7:13",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 1944,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 1941,
                          "name": "bundle",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1931,
                          "src": "1457:6:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bundle_$2760_memory_ptr",
                            "typeString": "struct IBundle.Bundle memory"
                          }
                        },
                        "id": 1942,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "tokenId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2744,
                        "src": "1457:14:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 1939,
                        "name": "_bundleToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1896,
                        "src": "1436:12:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC721_$4878",
                          "typeString": "contract IERC721"
                        }
                      },
                      "id": 1940,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "ownerOf",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4811,
                      "src": "1436:20:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$",
                        "typeString": "function (uint256) view external returns (address)"
                      }
                    },
                    "id": 1943,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1436:36:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1414:58:13"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 1949,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 1946,
                            "name": "_msgSender",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4968,
                            "src": "1504:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                              "typeString": "function () view returns (address)"
                            }
                          },
                          "id": 1947,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1504:12:13",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "id": 1948,
                          "name": "bundleOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1938,
                          "src": "1520:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "1504:27:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a4255432d3030313a4e4f545f42554e444c455f4f574e4552",
                        "id": 1950,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1545:32:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a3fee6bb914432e1b8acb32301ab61e820334d80172f7ccf3c09865b96135a22",
                          "typeString": "literal_string \"ERROR:BUC-001:NOT_BUNDLE_OWNER\""
                        },
                        "value": "ERROR:BUC-001:NOT_BUNDLE_OWNER"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a3fee6bb914432e1b8acb32301ab61e820334d80172f7ccf3c09865b96135a22",
                          "typeString": "literal_string \"ERROR:BUC-001:NOT_BUNDLE_OWNER\""
                        }
                      ],
                      "id": 1945,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "1483:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1951,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1483:104:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1952,
                  "nodeType": "ExpressionStatement",
                  "src": "1483:104:13"
                },
                {
                  "id": 1953,
                  "nodeType": "PlaceholderStatement",
                  "src": "1597:1:13"
                }
              ]
            },
            "id": 1955,
            "name": "onlyBundleOwner",
            "nameLocation": "1293:15:13",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1926,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1925,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "1317:8:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 1955,
                  "src": "1309:16:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1924,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1309:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1308:18:13"
            },
            "src": "1284:321:13",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2041,
              "nodeType": "Block",
              "src": "1862:641:13",
              "statements": [
                {
                  "expression": {
                    "id": 1978,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 1976,
                      "name": "_collateralization",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1905,
                      "src": "1873:18:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 1977,
                      "name": "collateralization",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1959,
                      "src": "1894:17:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1873:38:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1979,
                  "nodeType": "ExpressionStatement",
                  "src": "1873:38:13"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1983,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 1981,
                          "name": "sumOfSumInsuredCap",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1961,
                          "src": "1930:18:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 1982,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1952:1:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "1930:23:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a52504c2d3030323a53554d5f4f465f53554d5f494e53555245445f4341505f5a45524f",
                        "id": 1984,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1955:43:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f9ae47d1eb7b15726365eb220cfb2035a2cbaaa79180bda7a61981a473c73992",
                          "typeString": "literal_string \"ERROR:RPL-002:SUM_OF_SUM_INSURED_CAP_ZERO\""
                        },
                        "value": "ERROR:RPL-002:SUM_OF_SUM_INSURED_CAP_ZERO"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_f9ae47d1eb7b15726365eb220cfb2035a2cbaaa79180bda7a61981a473c73992",
                          "typeString": "literal_string \"ERROR:RPL-002:SUM_OF_SUM_INSURED_CAP_ZERO\""
                        }
                      ],
                      "id": 1980,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "1922:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1985,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1922:77:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1986,
                  "nodeType": "ExpressionStatement",
                  "src": "1922:77:13"
                },
                {
                  "expression": {
                    "id": 1989,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 1987,
                      "name": "_sumOfSumInsuredCap",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1907,
                      "src": "2009:19:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 1988,
                      "name": "sumOfSumInsuredCap",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1961,
                      "src": "2031:18:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2009:40:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1990,
                  "nodeType": "ExpressionStatement",
                  "src": "2009:40:13"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 1997,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 1992,
                          "name": "erc20Token",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1963,
                          "src": "2068:10:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 1995,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2090:1:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 1994,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "2082:7:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 1993,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "2082:7:13",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 1996,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2082:10:13",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "2068:24:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a52504c2d3030333a45524332305f414444524553535f5a45524f",
                        "id": 1998,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2094:34:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_abdad5066ef58fdc9cd8980c3154ff17135422a93e3f8c33e7de03203e1653c6",
                          "typeString": "literal_string \"ERROR:RPL-003:ERC20_ADDRESS_ZERO\""
                        },
                        "value": "ERROR:RPL-003:ERC20_ADDRESS_ZERO"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_abdad5066ef58fdc9cd8980c3154ff17135422a93e3f8c33e7de03203e1653c6",
                          "typeString": "literal_string \"ERROR:RPL-003:ERC20_ADDRESS_ZERO\""
                        }
                      ],
                      "id": 1991,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "2060:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1999,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2060:69:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2000,
                  "nodeType": "ExpressionStatement",
                  "src": "2060:69:13"
                },
                {
                  "expression": {
                    "id": 2003,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 2001,
                      "name": "_erc20Token",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1903,
                      "src": "2139:11:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 2002,
                      "name": "erc20Token",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1963,
                      "src": "2153:10:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2139:24:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 2004,
                  "nodeType": "ExpressionStatement",
                  "src": "2139:24:13"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 2011,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 2006,
                          "name": "wallet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1965,
                          "src": "2182:6:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 2009,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2200:1:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 2008,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "2192:7:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 2007,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "2192:7:13",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 2010,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2192:10:13",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "2182:20:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a52504c2d3030343a57414c4c45545f414444524553535f5a45524f",
                        "id": 2012,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2204:35:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f37ca57d997cf850dbd93faaa263fce2fe960fe8dfe0b3a08578cb870d3e527a",
                          "typeString": "literal_string \"ERROR:RPL-004:WALLET_ADDRESS_ZERO\""
                        },
                        "value": "ERROR:RPL-004:WALLET_ADDRESS_ZERO"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_f37ca57d997cf850dbd93faaa263fce2fe960fe8dfe0b3a08578cb870d3e527a",
                          "typeString": "literal_string \"ERROR:RPL-004:WALLET_ADDRESS_ZERO\""
                        }
                      ],
                      "id": 2005,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "2174:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2013,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2174:66:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2014,
                  "nodeType": "ExpressionStatement",
                  "src": "2174:66:13"
                },
                {
                  "expression": {
                    "id": 2017,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 2015,
                      "name": "_wallet",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1901,
                      "src": "2250:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 2016,
                      "name": "wallet",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1965,
                      "src": "2260:6:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2250:16:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 2018,
                  "nodeType": "ExpressionStatement",
                  "src": "2250:16:13"
                },
                {
                  "expression": {
                    "id": 2025,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 2019,
                      "name": "_instanceService",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1890,
                      "src": "2277:16:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IInstanceService_$4333",
                        "typeString": "contract IInstanceService"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "hexValue": "496e7374616e636553657276696365",
                              "id": 2022,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2333:17:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_9d0370d7b33c0a7e946fd67f2013156c598b4d6a70b1490bc73aacf4dc1a6f52",
                                "typeString": "literal_string \"InstanceService\""
                              },
                              "value": "InstanceService"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_9d0370d7b33c0a7e946fd67f2013156c598b4d6a70b1490bc73aacf4dc1a6f52",
                                "typeString": "literal_string \"InstanceService\""
                              }
                            ],
                            "id": 2021,
                            "name": "_getContractAddress",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 707,
                            "src": "2313:19:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 2023,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2313:38:13",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 2020,
                        "name": "IInstanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4333,
                        "src": "2296:16:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_IInstanceService_$4333_$",
                          "typeString": "type(contract IInstanceService)"
                        }
                      },
                      "id": 2024,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2296:56:13",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IInstanceService_$4333",
                        "typeString": "contract IInstanceService"
                      }
                    },
                    "src": "2277:75:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IInstanceService_$4333",
                      "typeString": "contract IInstanceService"
                    }
                  },
                  "id": 2026,
                  "nodeType": "ExpressionStatement",
                  "src": "2277:75:13"
                },
                {
                  "expression": {
                    "id": 2033,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 2027,
                      "name": "_riskpoolService",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1893,
                      "src": "2363:16:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IRiskpoolService_$4594",
                        "typeString": "contract IRiskpoolService"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "hexValue": "5269736b706f6f6c53657276696365",
                              "id": 2030,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2419:17:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_e85801e7370f8299b20de95f253b0d76ea9617d54202cf651cae4bfb65abf86a",
                                "typeString": "literal_string \"RiskpoolService\""
                              },
                              "value": "RiskpoolService"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_e85801e7370f8299b20de95f253b0d76ea9617d54202cf651cae4bfb65abf86a",
                                "typeString": "literal_string \"RiskpoolService\""
                              }
                            ],
                            "id": 2029,
                            "name": "_getContractAddress",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 707,
                            "src": "2399:19:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 2031,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2399:38:13",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 2028,
                        "name": "IRiskpoolService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4594,
                        "src": "2382:16:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_IRiskpoolService_$4594_$",
                          "typeString": "type(contract IRiskpoolService)"
                        }
                      },
                      "id": 2032,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2382:56:13",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IRiskpoolService_$4594",
                        "typeString": "contract IRiskpoolService"
                      }
                    },
                    "src": "2363:75:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IRiskpoolService_$4594",
                      "typeString": "contract IRiskpoolService"
                    }
                  },
                  "id": 2034,
                  "nodeType": "ExpressionStatement",
                  "src": "2363:75:13"
                },
                {
                  "expression": {
                    "id": 2039,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 2035,
                      "name": "_bundleToken",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1896,
                      "src": "2448:12:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IERC721_$4878",
                        "typeString": "contract IERC721"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 2036,
                          "name": "_instanceService",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1890,
                          "src": "2463:16:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IInstanceService_$4333",
                            "typeString": "contract IInstanceService"
                          }
                        },
                        "id": 2037,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "getBundleToken",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4219,
                        "src": "2463:31:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IBundleToken_$4649_$",
                          "typeString": "function () view external returns (contract IBundleToken)"
                        }
                      },
                      "id": 2038,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2463:33:13",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IBundleToken_$4649",
                        "typeString": "contract IBundleToken"
                      }
                    },
                    "src": "2448:48:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC721_$4878",
                      "typeString": "contract IERC721"
                    }
                  },
                  "id": 2040,
                  "nodeType": "ExpressionStatement",
                  "src": "2448:48:13"
                }
              ]
            },
            "id": 2042,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 1970,
                    "name": "name",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1957,
                    "src": "1818:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "expression": {
                      "id": 1971,
                      "name": "ComponentType",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 715,
                      "src": "1824:13:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_ComponentType_$715_$",
                        "typeString": "type(enum IComponent.ComponentType)"
                      }
                    },
                    "id": 1972,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "Riskpool",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 714,
                    "src": "1824:22:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ComponentType_$715",
                      "typeString": "enum IComponent.ComponentType"
                    }
                  },
                  {
                    "id": 1973,
                    "name": "registry",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1967,
                    "src": "1848:8:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 1974,
                "modifierName": {
                  "id": 1969,
                  "name": "Component",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 708,
                  "src": "1808:9:13"
                },
                "nodeType": "ModifierInvocation",
                "src": "1808:49:13"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1968,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1957,
                  "mutability": "mutable",
                  "name": "name",
                  "nameLocation": "1640:4:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2042,
                  "src": "1632:12:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1956,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1632:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1959,
                  "mutability": "mutable",
                  "name": "collateralization",
                  "nameLocation": "1662:17:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2042,
                  "src": "1654:25:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1958,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1654:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1961,
                  "mutability": "mutable",
                  "name": "sumOfSumInsuredCap",
                  "nameLocation": "1697:18:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2042,
                  "src": "1689:26:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1960,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1689:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1963,
                  "mutability": "mutable",
                  "name": "erc20Token",
                  "nameLocation": "1733:10:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2042,
                  "src": "1725:18:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1962,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1725:7:13",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1965,
                  "mutability": "mutable",
                  "name": "wallet",
                  "nameLocation": "1761:6:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2042,
                  "src": "1753:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1964,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1753:7:13",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1967,
                  "mutability": "mutable",
                  "name": "registry",
                  "nameLocation": "1785:8:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2042,
                  "src": "1777:16:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1966,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1777:7:13",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1622:177:13"
            },
            "returnParameters": {
              "id": 1975,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1862:0:13"
            },
            "scope": 2597,
            "src": "1611:892:13",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              627
            ],
            "body": {
              "id": 2055,
              "nodeType": "Block",
              "src": "2560:172:13",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 2049,
                        "name": "_wallet",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1901,
                        "src": "2617:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 2050,
                        "name": "_erc20Token",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1903,
                        "src": "2638:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 2051,
                        "name": "_collateralization",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1905,
                        "src": "2664:18:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 2052,
                        "name": "_sumOfSumInsuredCap",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1907,
                        "src": "2696:19:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 2046,
                        "name": "_riskpoolService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1893,
                        "src": "2570:16:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRiskpoolService_$4594",
                          "typeString": "contract IRiskpoolService"
                        }
                      },
                      "id": 2048,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "registerRiskpool",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4501,
                      "src": "2570:33:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256,uint256) external"
                      }
                    },
                    "id": 2053,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2570:155:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2054,
                  "nodeType": "ExpressionStatement",
                  "src": "2570:155:13"
                }
              ]
            },
            "id": 2056,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_afterPropose",
            "nameLocation": "2518:13:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2044,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2543:8:13"
            },
            "parameters": {
              "id": 2043,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2531:2:13"
            },
            "returnParameters": {
              "id": 2045,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2560:0:13"
            },
            "scope": 2597,
            "src": "2509:223:13",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              973
            ],
            "body": {
              "id": 2091,
              "nodeType": "Block",
              "src": "2875:237:13",
              "statements": [
                {
                  "assignments": [
                    2067
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2067,
                      "mutability": "mutable",
                      "name": "bundleOwner",
                      "nameLocation": "2893:11:13",
                      "nodeType": "VariableDeclaration",
                      "scope": 2091,
                      "src": "2885:19:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 2066,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "2885:7:13",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 2070,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 2068,
                      "name": "_msgSender",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4968,
                      "src": "2907:10:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                        "typeString": "function () view returns (address)"
                      }
                    },
                    "id": 2069,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2907:12:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2885:34:13"
                },
                {
                  "expression": {
                    "id": 2078,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 2071,
                      "name": "bundleId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2064,
                      "src": "2929:8:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 2074,
                          "name": "bundleOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2067,
                          "src": "2970:11:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "id": 2075,
                          "name": "filter",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2058,
                          "src": "2983:6:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        {
                          "id": 2076,
                          "name": "initialAmount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2060,
                          "src": "2991:13:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "id": 2072,
                          "name": "_riskpoolService",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1893,
                          "src": "2940:16:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IRiskpoolService_$4594",
                            "typeString": "contract IRiskpoolService"
                          }
                        },
                        "id": 2073,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "createBundle",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4512,
                        "src": "2940:29:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (address,bytes memory,uint256) external returns (uint256)"
                        }
                      },
                      "id": 2077,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2940:65:13",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2929:76:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2079,
                  "nodeType": "ExpressionStatement",
                  "src": "2929:76:13"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 2083,
                        "name": "bundleId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2064,
                        "src": "3031:8:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 2080,
                        "name": "_bundleIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1899,
                        "src": "3015:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                          "typeString": "uint256[] storage ref"
                        }
                      },
                      "id": 2082,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "src": "3015:15:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$",
                        "typeString": "function (uint256[] storage pointer,uint256)"
                      }
                    },
                    "id": 2084,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3015:25:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2085,
                  "nodeType": "ExpressionStatement",
                  "src": "3015:25:13"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 2087,
                        "name": "bundleId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2064,
                        "src": "3081:8:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 2088,
                        "name": "initialAmount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2060,
                        "src": "3091:13:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2086,
                      "name": "LogRiskpoolBundleCreated",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 932,
                      "src": "3056:24:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (uint256,uint256)"
                      }
                    },
                    "id": 2089,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3056:49:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2090,
                  "nodeType": "EmitStatement",
                  "src": "3051:54:13"
                }
              ]
            },
            "functionSelector": "7888a2ff",
            "id": 2092,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "createBundle",
            "nameLocation": "2747:12:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2062,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2828:8:13"
            },
            "parameters": {
              "id": 2061,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2058,
                  "mutability": "mutable",
                  "name": "filter",
                  "nameLocation": "2773:6:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2092,
                  "src": "2760:19:13",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 2057,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2760:5:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2060,
                  "mutability": "mutable",
                  "name": "initialAmount",
                  "nameLocation": "2789:13:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2092,
                  "src": "2781:21:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2059,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2781:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2759:44:13"
            },
            "returnParameters": {
              "id": 2065,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2064,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "2861:8:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2092,
                  "src": "2853:16:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2063,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2853:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2852:18:13"
            },
            "scope": 2597,
            "src": "2738:374:13",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              982
            ],
            "body": {
              "id": 2113,
              "nodeType": "Block",
              "src": "3272:74:13",
              "statements": [
                {
                  "expression": {
                    "id": 2111,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 2105,
                      "name": "netAmount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2103,
                      "src": "3282:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 2108,
                          "name": "bundleId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2094,
                          "src": "3322:8:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "id": 2109,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2096,
                          "src": "3332:6:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "id": 2106,
                          "name": "_riskpoolService",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1893,
                          "src": "3294:16:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IRiskpoolService_$4594",
                            "typeString": "contract IRiskpoolService"
                          }
                        },
                        "id": 2107,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "fundBundle",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4521,
                        "src": "3294:27:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (uint256,uint256) external returns (uint256)"
                        }
                      },
                      "id": 2110,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3294:45:13",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3282:57:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2112,
                  "nodeType": "ExpressionStatement",
                  "src": "3282:57:13"
                }
              ]
            },
            "functionSelector": "89002da5",
            "id": 2114,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 2100,
                    "name": "bundleId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2094,
                    "src": "3223:8:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 2101,
                "modifierName": {
                  "id": 2099,
                  "name": "onlyBundleOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1955,
                  "src": "3207:15:13"
                },
                "nodeType": "ModifierInvocation",
                "src": "3207:25:13"
              }
            ],
            "name": "fundBundle",
            "nameLocation": "3127:10:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2098,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3190:8:13"
            },
            "parameters": {
              "id": 2097,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2094,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "3146:8:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2114,
                  "src": "3138:16:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2093,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3138:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2096,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "3164:6:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2114,
                  "src": "3156:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2095,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3156:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3137:34:13"
            },
            "returnParameters": {
              "id": 2104,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2103,
                  "mutability": "mutable",
                  "name": "netAmount",
                  "nameLocation": "3257:9:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2114,
                  "src": "3249:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2102,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3249:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3248:19:13"
            },
            "scope": 2597,
            "src": "3118:228:13",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              991
            ],
            "body": {
              "id": 2135,
              "nodeType": "Block",
              "src": "3507:76:13",
              "statements": [
                {
                  "expression": {
                    "id": 2133,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 2127,
                      "name": "netAmount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2125,
                      "src": "3517:9:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 2130,
                          "name": "bundleId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2116,
                          "src": "3559:8:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "id": 2131,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2118,
                          "src": "3569:6:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "id": 2128,
                          "name": "_riskpoolService",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1893,
                          "src": "3529:16:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IRiskpoolService_$4594",
                            "typeString": "contract IRiskpoolService"
                          }
                        },
                        "id": 2129,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "defundBundle",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4530,
                        "src": "3529:29:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (uint256,uint256) external returns (uint256)"
                        }
                      },
                      "id": 2132,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3529:47:13",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3517:59:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2134,
                  "nodeType": "ExpressionStatement",
                  "src": "3517:59:13"
                }
              ]
            },
            "functionSelector": "36153f3a",
            "id": 2136,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 2122,
                    "name": "bundleId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2116,
                    "src": "3458:8:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 2123,
                "modifierName": {
                  "id": 2121,
                  "name": "onlyBundleOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1955,
                  "src": "3442:15:13"
                },
                "nodeType": "ModifierInvocation",
                "src": "3442:25:13"
              }
            ],
            "name": "defundBundle",
            "nameLocation": "3361:12:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2120,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3425:8:13"
            },
            "parameters": {
              "id": 2119,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2116,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "3382:8:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2136,
                  "src": "3374:16:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2115,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3374:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2118,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "3400:6:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2136,
                  "src": "3392:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2117,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3392:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3373:34:13"
            },
            "returnParameters": {
              "id": 2126,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2125,
                  "mutability": "mutable",
                  "name": "netAmount",
                  "nameLocation": "3492:9:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2136,
                  "src": "3484:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2124,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3484:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3483:19:13"
            },
            "scope": 2597,
            "src": "3352:231:13",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              996
            ],
            "body": {
              "id": 2151,
              "nodeType": "Block",
              "src": "3691:54:13",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 2148,
                        "name": "bundleId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2138,
                        "src": "3729:8:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 2145,
                        "name": "_riskpoolService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1893,
                        "src": "3701:16:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRiskpoolService_$4594",
                          "typeString": "contract IRiskpoolService"
                        }
                      },
                      "id": 2147,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "lockBundle",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4535,
                      "src": "3701:27:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 2149,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3701:37:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2150,
                  "nodeType": "ExpressionStatement",
                  "src": "3701:37:13"
                }
              ]
            },
            "functionSelector": "a17030d5",
            "id": 2152,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 2142,
                    "name": "bundleId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2138,
                    "src": "3677:8:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 2143,
                "modifierName": {
                  "id": 2141,
                  "name": "onlyBundleOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1955,
                  "src": "3661:15:13"
                },
                "nodeType": "ModifierInvocation",
                "src": "3661:25:13"
              }
            ],
            "name": "lockBundle",
            "nameLocation": "3598:10:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2140,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3644:8:13"
            },
            "parameters": {
              "id": 2139,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2138,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "3617:8:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2152,
                  "src": "3609:16:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2137,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3609:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3608:18:13"
            },
            "returnParameters": {
              "id": 2144,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3691:0:13"
            },
            "scope": 2597,
            "src": "3589:156:13",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              1001
            ],
            "body": {
              "id": 2167,
              "nodeType": "Block",
              "src": "3855:56:13",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 2164,
                        "name": "bundleId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2154,
                        "src": "3895:8:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 2161,
                        "name": "_riskpoolService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1893,
                        "src": "3865:16:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRiskpoolService_$4594",
                          "typeString": "contract IRiskpoolService"
                        }
                      },
                      "id": 2163,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "unlockBundle",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4540,
                      "src": "3865:29:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 2165,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3865:39:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2166,
                  "nodeType": "ExpressionStatement",
                  "src": "3865:39:13"
                }
              ]
            },
            "functionSelector": "316c5348",
            "id": 2168,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 2158,
                    "name": "bundleId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2154,
                    "src": "3841:8:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 2159,
                "modifierName": {
                  "id": 2157,
                  "name": "onlyBundleOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1955,
                  "src": "3825:15:13"
                },
                "nodeType": "ModifierInvocation",
                "src": "3825:25:13"
              }
            ],
            "name": "unlockBundle",
            "nameLocation": "3760:12:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2156,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3808:8:13"
            },
            "parameters": {
              "id": 2155,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2154,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "3781:8:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2168,
                  "src": "3773:16:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2153,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3773:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3772:18:13"
            },
            "returnParameters": {
              "id": 2160,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3855:0:13"
            },
            "scope": 2597,
            "src": "3751:160:13",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              1006
            ],
            "body": {
              "id": 2183,
              "nodeType": "Block",
              "src": "4020:55:13",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 2180,
                        "name": "bundleId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2170,
                        "src": "4059:8:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 2177,
                        "name": "_riskpoolService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1893,
                        "src": "4030:16:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRiskpoolService_$4594",
                          "typeString": "contract IRiskpoolService"
                        }
                      },
                      "id": 2179,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "closeBundle",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4545,
                      "src": "4030:28:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 2181,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4030:38:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2182,
                  "nodeType": "ExpressionStatement",
                  "src": "4030:38:13"
                }
              ]
            },
            "functionSelector": "8c483e5a",
            "id": 2184,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 2174,
                    "name": "bundleId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2170,
                    "src": "4006:8:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 2175,
                "modifierName": {
                  "id": 2173,
                  "name": "onlyBundleOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1955,
                  "src": "3990:15:13"
                },
                "nodeType": "ModifierInvocation",
                "src": "3990:25:13"
              }
            ],
            "name": "closeBundle",
            "nameLocation": "3926:11:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2172,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3973:8:13"
            },
            "parameters": {
              "id": 2171,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2170,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "3946:8:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2184,
                  "src": "3938:16:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2169,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3938:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3937:18:13"
            },
            "returnParameters": {
              "id": 2176,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4020:0:13"
            },
            "scope": 2597,
            "src": "3917:158:13",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              1011
            ],
            "body": {
              "id": 2199,
              "nodeType": "Block",
              "src": "4183:54:13",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 2196,
                        "name": "bundleId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2186,
                        "src": "4221:8:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 2193,
                        "name": "_riskpoolService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1893,
                        "src": "4193:16:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRiskpoolService_$4594",
                          "typeString": "contract IRiskpoolService"
                        }
                      },
                      "id": 2195,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "burnBundle",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4550,
                      "src": "4193:27:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 2197,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4193:37:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2198,
                  "nodeType": "ExpressionStatement",
                  "src": "4193:37:13"
                }
              ]
            },
            "functionSelector": "587e59d0",
            "id": 2200,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 2190,
                    "name": "bundleId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2186,
                    "src": "4169:8:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 2191,
                "modifierName": {
                  "id": 2189,
                  "name": "onlyBundleOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1955,
                  "src": "4153:15:13"
                },
                "nodeType": "ModifierInvocation",
                "src": "4153:25:13"
              }
            ],
            "name": "burnBundle",
            "nameLocation": "4090:10:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2188,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4136:8:13"
            },
            "parameters": {
              "id": 2187,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2186,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "4109:8:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2200,
                  "src": "4101:16:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2185,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4101:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4100:18:13"
            },
            "returnParameters": {
              "id": 2192,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4183:0:13"
            },
            "scope": 2597,
            "src": "4081:156:13",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              1020
            ],
            "body": {
              "id": 2225,
              "nodeType": "Block",
              "src": "4396:151:13",
              "statements": [
                {
                  "expression": {
                    "id": 2217,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 2212,
                      "name": "success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2210,
                      "src": "4406:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 2214,
                          "name": "processId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2202,
                          "src": "4432:9:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "id": 2215,
                          "name": "collateralAmount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2204,
                          "src": "4443:16:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 2213,
                        "name": "_lockCollateral",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2575,
                        "src": "4416:15:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (bytes32,uint256) returns (bool)"
                        }
                      },
                      "id": 2216,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4416:44:13",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4406:54:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2218,
                  "nodeType": "ExpressionStatement",
                  "src": "4406:54:13"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 2220,
                        "name": "processId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2202,
                        "src": "4503:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 2221,
                        "name": "collateralAmount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2204,
                        "src": "4514:16:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 2222,
                        "name": "success",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2210,
                        "src": "4532:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2219,
                      "name": "LogRiskpoolCollateralLocked",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 946,
                      "src": "4475:27:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (bytes32,uint256,bool)"
                      }
                    },
                    "id": 2223,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4475:65:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2224,
                  "nodeType": "EmitStatement",
                  "src": "4470:70:13"
                }
              ]
            },
            "functionSelector": "890fbf78",
            "id": 2226,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 2208,
                "modifierName": {
                  "id": 2207,
                  "name": "onlyPool",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1923,
                  "src": "4352:8:13"
                },
                "nodeType": "ModifierInvocation",
                "src": "4352:8:13"
              }
            ],
            "name": "collateralizePolicy",
            "nameLocation": "4252:19:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2206,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4335:8:13"
            },
            "parameters": {
              "id": 2205,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2202,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4280:9:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2226,
                  "src": "4272:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2201,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4272:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2204,
                  "mutability": "mutable",
                  "name": "collateralAmount",
                  "nameLocation": "4299:16:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2226,
                  "src": "4291:24:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2203,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4291:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4271:45:13"
            },
            "returnParameters": {
              "id": 2211,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2210,
                  "mutability": "mutable",
                  "name": "success",
                  "nameLocation": "4382:7:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2226,
                  "src": "4377:12:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2209,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4377:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4376:14:13"
            },
            "scope": 2597,
            "src": "4243:304:13",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              1034
            ],
            "body": {
              "id": 2246,
              "nodeType": "Block",
              "src": "4664:110:13",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 2237,
                        "name": "processId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2228,
                        "src": "4689:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 2238,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2230,
                        "src": "4700:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2236,
                      "name": "_processPayout",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2589,
                      "src": "4674:14:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 2239,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4674:33:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2240,
                  "nodeType": "ExpressionStatement",
                  "src": "4674:33:13"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 2242,
                        "name": "processId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2228,
                        "src": "4749:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 2243,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2230,
                        "src": "4760:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2241,
                      "name": "LogRiskpoolPayoutProcessed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 958,
                      "src": "4722:26:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 2244,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4722:45:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2245,
                  "nodeType": "EmitStatement",
                  "src": "4717:50:13"
                }
              ]
            },
            "functionSelector": "82558906",
            "id": 2247,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 2234,
                "modifierName": {
                  "id": 2233,
                  "name": "onlyPool",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1923,
                  "src": "4651:8:13"
                },
                "nodeType": "ModifierInvocation",
                "src": "4651:8:13"
              }
            ],
            "name": "processPolicyPayout",
            "nameLocation": "4562:19:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2232,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4634:8:13"
            },
            "parameters": {
              "id": 2231,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2228,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4590:9:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2247,
                  "src": "4582:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2227,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4582:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2230,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "4609:6:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2247,
                  "src": "4601:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2229,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4601:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4581:35:13"
            },
            "returnParameters": {
              "id": 2235,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4664:0:13"
            },
            "scope": 2597,
            "src": "4553:221:13",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              1027
            ],
            "body": {
              "id": 2267,
              "nodeType": "Block",
              "src": "4892:112:13",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 2258,
                        "name": "processId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2249,
                        "src": "4918:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 2259,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2251,
                        "src": "4929:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2257,
                      "name": "_processPremium",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2582,
                      "src": "4902:15:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 2260,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4902:34:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2261,
                  "nodeType": "ExpressionStatement",
                  "src": "4902:34:13"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 2263,
                        "name": "processId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2249,
                        "src": "4979:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 2264,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2251,
                        "src": "4990:6:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2262,
                      "name": "LogRiskpoolPremiumProcessed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 952,
                      "src": "4951:27:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 2265,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4951:46:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2266,
                  "nodeType": "EmitStatement",
                  "src": "4946:51:13"
                }
              ]
            },
            "functionSelector": "3629c3c4",
            "id": 2268,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 2255,
                "modifierName": {
                  "id": 2254,
                  "name": "onlyPool",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1923,
                  "src": "4879:8:13"
                },
                "nodeType": "ModifierInvocation",
                "src": "4879:8:13"
              }
            ],
            "name": "processPolicyPremium",
            "nameLocation": "4789:20:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2253,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4862:8:13"
            },
            "parameters": {
              "id": 2252,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2249,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4818:9:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2268,
                  "src": "4810:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2248,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4810:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2251,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "4837:6:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2268,
                  "src": "4829:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2250,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4829:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4809:35:13"
            },
            "returnParameters": {
              "id": 2256,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4892:0:13"
            },
            "scope": 2597,
            "src": "4780:224:13",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              1039
            ],
            "body": {
              "id": 2287,
              "nodeType": "Block",
              "src": "5100:146:13",
              "statements": [
                {
                  "assignments": [
                    2277
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2277,
                      "mutability": "mutable",
                      "name": "collateralAmount",
                      "nameLocation": "5118:16:13",
                      "nodeType": "VariableDeclaration",
                      "scope": 2287,
                      "src": "5110:24:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2276,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5110:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 2281,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 2279,
                        "name": "processId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2270,
                        "src": "5156:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2278,
                      "name": "_releaseCollateral",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2596,
                      "src": "5137:18:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$_t_uint256_$",
                        "typeString": "function (bytes32) returns (uint256)"
                      }
                    },
                    "id": 2280,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5137:29:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5110:56:13"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 2283,
                        "name": "processId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2270,
                        "src": "5211:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 2284,
                        "name": "collateralAmount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2277,
                        "src": "5222:16:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2282,
                      "name": "LogRiskpoolCollateralReleased",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 964,
                      "src": "5181:29:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 2285,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5181:58:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2286,
                  "nodeType": "EmitStatement",
                  "src": "5176:63:13"
                }
              ]
            },
            "functionSelector": "c3004c86",
            "id": 2288,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 2274,
                "modifierName": {
                  "id": 2273,
                  "name": "onlyPool",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1923,
                  "src": "5087:8:13"
                },
                "nodeType": "ModifierInvocation",
                "src": "5087:8:13"
              }
            ],
            "name": "releasePolicy",
            "nameLocation": "5019:13:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2272,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5070:8:13"
            },
            "parameters": {
              "id": 2271,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2270,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "5041:9:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2288,
                  "src": "5033:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2269,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5033:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5032:19:13"
            },
            "returnParameters": {
              "id": 2275,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5100:0:13"
            },
            "scope": 2597,
            "src": "5010:236:13",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              1130
            ],
            "body": {
              "id": 2308,
              "nodeType": "Block",
              "src": "5379:145:13",
              "statements": [
                {
                  "assignments": [
                    2297
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2297,
                      "mutability": "mutable",
                      "name": "riskpoolId",
                      "nameLocation": "5397:10:13",
                      "nodeType": "VariableDeclaration",
                      "scope": 2308,
                      "src": "5389:18:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2296,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5389:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 2300,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 2298,
                      "name": "getId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 461,
                      "src": "5410:5:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 2299,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5410:7:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5389:28:13"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 2304,
                        "name": "riskpoolId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2297,
                        "src": "5476:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 2305,
                        "name": "maximumNumberOfActiveBundles",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2290,
                        "src": "5488:28:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 2301,
                        "name": "_riskpoolService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1893,
                        "src": "5427:16:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRiskpoolService_$4594",
                          "typeString": "contract IRiskpoolService"
                        }
                      },
                      "id": 2303,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setMaximumNumberOfActiveBundles",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4593,
                      "src": "5427:48:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (uint256,uint256) external"
                      }
                    },
                    "id": 2306,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5427:90:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2307,
                  "nodeType": "ExpressionStatement",
                  "src": "5427:90:13"
                }
              ]
            },
            "functionSelector": "652028e5",
            "id": 2309,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 2294,
                "modifierName": {
                  "id": 2293,
                  "name": "onlyOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 4681,
                  "src": "5365:9:13"
                },
                "nodeType": "ModifierInvocation",
                "src": "5365:9:13"
              }
            ],
            "name": "setMaximumNumberOfActiveBundles",
            "nameLocation": "5261:31:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2292,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5348:8:13"
            },
            "parameters": {
              "id": 2291,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2290,
                  "mutability": "mutable",
                  "name": "maximumNumberOfActiveBundles",
                  "nameLocation": "5301:28:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2309,
                  "src": "5293:36:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2289,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5293:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5292:38:13"
            },
            "returnParameters": {
              "id": 2295,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5379:0:13"
            },
            "scope": 2597,
            "src": "5252:272:13",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              1135
            ],
            "body": {
              "id": 2325,
              "nodeType": "Block",
              "src": "5660:122:13",
              "statements": [
                {
                  "assignments": [
                    2316
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2316,
                      "mutability": "mutable",
                      "name": "riskpoolId",
                      "nameLocation": "5678:10:13",
                      "nodeType": "VariableDeclaration",
                      "scope": 2325,
                      "src": "5670:18:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2315,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5670:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 2319,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 2317,
                      "name": "getId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 461,
                      "src": "5691:5:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 2318,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5691:7:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5670:28:13"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 2322,
                        "name": "riskpoolId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2316,
                        "src": "5764:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 2320,
                        "name": "_instanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1890,
                        "src": "5715:16:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IInstanceService_$4333",
                          "typeString": "contract IInstanceService"
                        }
                      },
                      "id": 2321,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getMaximumNumberOfActiveBundles",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4213,
                      "src": "5715:48:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) view external returns (uint256)"
                      }
                    },
                    "id": 2323,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5715:60:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2314,
                  "id": 2324,
                  "nodeType": "Return",
                  "src": "5708:67:13"
                }
              ]
            },
            "functionSelector": "7f3b6980",
            "id": 2326,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getMaximumNumberOfActiveBundles",
            "nameLocation": "5539:31:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2311,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5593:8:13"
            },
            "parameters": {
              "id": 2310,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5570:2:13"
            },
            "returnParameters": {
              "id": 2314,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2313,
                  "mutability": "mutable",
                  "name": "maximumNumberOfActiveBundles",
                  "nameLocation": "5626:28:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2326,
                  "src": "5618:36:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2312,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5618:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5617:38:13"
            },
            "scope": 2597,
            "src": "5530:252:13",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              1095
            ],
            "body": {
              "id": 2334,
              "nodeType": "Block",
              "src": "5847:31:13",
              "statements": [
                {
                  "expression": {
                    "id": 2332,
                    "name": "_wallet",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1901,
                    "src": "5864:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 2331,
                  "id": 2333,
                  "nodeType": "Return",
                  "src": "5857:14:13"
                }
              ]
            },
            "functionSelector": "13299604",
            "id": 2335,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getWallet",
            "nameLocation": "5797:9:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2328,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5821:8:13"
            },
            "parameters": {
              "id": 2327,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5806:2:13"
            },
            "returnParameters": {
              "id": 2331,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2330,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2335,
                  "src": "5838:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2329,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5838:7:13",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5837:9:13"
            },
            "scope": 2597,
            "src": "5788:90:13",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              1100
            ],
            "body": {
              "id": 2343,
              "nodeType": "Block",
              "src": "5947:35:13",
              "statements": [
                {
                  "expression": {
                    "id": 2341,
                    "name": "_erc20Token",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1903,
                    "src": "5964:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 2340,
                  "id": 2342,
                  "nodeType": "Return",
                  "src": "5957:18:13"
                }
              ]
            },
            "functionSelector": "feb1824b",
            "id": 2344,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getErc20Token",
            "nameLocation": "5893:13:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2337,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5921:8:13"
            },
            "parameters": {
              "id": 2336,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5906:2:13"
            },
            "returnParameters": {
              "id": 2340,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2339,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2344,
                  "src": "5938:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2338,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5938:7:13",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5937:9:13"
            },
            "scope": 2597,
            "src": "5884:98:13",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              1105
            ],
            "body": {
              "id": 2352,
              "nodeType": "Block",
              "src": "6060:43:13",
              "statements": [
                {
                  "expression": {
                    "id": 2350,
                    "name": "_sumOfSumInsuredCap",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1907,
                    "src": "6077:19:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2349,
                  "id": 2351,
                  "nodeType": "Return",
                  "src": "6070:26:13"
                }
              ]
            },
            "functionSelector": "a18aa128",
            "id": 2353,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getSumOfSumInsuredCap",
            "nameLocation": "5997:21:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2346,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6033:8:13"
            },
            "parameters": {
              "id": 2345,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6018:2:13"
            },
            "returnParameters": {
              "id": 2349,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2348,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2353,
                  "src": "6051:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2347,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6051:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6050:9:13"
            },
            "scope": 2597,
            "src": "5988:115:13",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              1049
            ],
            "body": {
              "id": 2361,
              "nodeType": "Block",
              "src": "6189:52:13",
              "statements": [
                {
                  "expression": {
                    "id": 2359,
                    "name": "FULL_COLLATERALIZATION_LEVEL",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1884,
                    "src": "6206:28:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2358,
                  "id": 2360,
                  "nodeType": "Return",
                  "src": "6199:35:13"
                }
              ]
            },
            "functionSelector": "f1d354d0",
            "id": 2362,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFullCollateralizationLevel",
            "nameLocation": "6118:29:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2355,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6162:8:13"
            },
            "parameters": {
              "id": 2354,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6147:2:13"
            },
            "returnParameters": {
              "id": 2358,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2357,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2362,
                  "src": "6180:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2356,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6180:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6179:9:13"
            },
            "scope": 2597,
            "src": "6109:132:13",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              1044
            ],
            "body": {
              "id": 2370,
              "nodeType": "Block",
              "src": "6323:42:13",
              "statements": [
                {
                  "expression": {
                    "id": 2368,
                    "name": "_collateralization",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1905,
                    "src": "6340:18:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2367,
                  "id": 2369,
                  "nodeType": "Return",
                  "src": "6333:25:13"
                }
              ]
            },
            "functionSelector": "54afef63",
            "id": 2371,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getCollateralizationLevel",
            "nameLocation": "6256:25:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2364,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6296:8:13"
            },
            "parameters": {
              "id": 2363,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6281:2:13"
            },
            "returnParameters": {
              "id": 2367,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2366,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2371,
                  "src": "6314:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2365,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6314:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6313:9:13"
            },
            "scope": 2597,
            "src": "6247:118:13",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              1070
            ],
            "body": {
              "id": 2380,
              "nodeType": "Block",
              "src": "6428:41:13",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "id": 2377,
                      "name": "_bundleIds",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1899,
                      "src": "6445:10:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "id": 2378,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "src": "6445:17:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2376,
                  "id": 2379,
                  "nodeType": "Return",
                  "src": "6438:24:13"
                }
              ]
            },
            "functionSelector": "18442e63",
            "id": 2381,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "bundles",
            "nameLocation": "6380:7:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2373,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6397:8:13"
            },
            "parameters": {
              "id": 2372,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6387:2:13"
            },
            "returnParameters": {
              "id": 2376,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2375,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2381,
                  "src": "6419:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2374,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6419:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6418:9:13"
            },
            "scope": 2597,
            "src": "6371:98:13",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              1078
            ],
            "body": {
              "id": 2409,
              "nodeType": "Block",
              "src": "6559:189:13",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2394,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 2391,
                          "name": "idx",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2383,
                          "src": "6577:3:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "expression": {
                            "id": 2392,
                            "name": "_bundleIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1899,
                            "src": "6583:10:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                              "typeString": "uint256[] storage ref"
                            }
                          },
                          "id": 2393,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "6583:17:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6577:23:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a52504c2d3030363a42554e444c455f494e4445585f544f4f5f4c41524745",
                        "id": 2395,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6602:38:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5bd5dab0bd10af75b53c0890fab91920ce3d2ed9e7810fca06e8849074b3b4ac",
                          "typeString": "literal_string \"ERROR:RPL-006:BUNDLE_INDEX_TOO_LARGE\""
                        },
                        "value": "ERROR:RPL-006:BUNDLE_INDEX_TOO_LARGE"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5bd5dab0bd10af75b53c0890fab91920ce3d2ed9e7810fca06e8849074b3b4ac",
                          "typeString": "literal_string \"ERROR:RPL-006:BUNDLE_INDEX_TOO_LARGE\""
                        }
                      ],
                      "id": 2390,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "6569:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2396,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6569:72:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2397,
                  "nodeType": "ExpressionStatement",
                  "src": "6569:72:13"
                },
                {
                  "assignments": [
                    2399
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2399,
                      "mutability": "mutable",
                      "name": "bundleIdx",
                      "nameLocation": "6660:9:13",
                      "nodeType": "VariableDeclaration",
                      "scope": 2409,
                      "src": "6652:17:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2398,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6652:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 2403,
                  "initialValue": {
                    "baseExpression": {
                      "id": 2400,
                      "name": "_bundleIds",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1899,
                      "src": "6672:10:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "id": 2402,
                    "indexExpression": {
                      "id": 2401,
                      "name": "idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2383,
                      "src": "6683:3:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "6672:15:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6652:35:13"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 2406,
                        "name": "bundleIdx",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2399,
                        "src": "6731:9:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 2404,
                        "name": "_instanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1890,
                        "src": "6704:16:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IInstanceService_$4333",
                          "typeString": "contract IInstanceService"
                        }
                      },
                      "id": 2405,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getBundle",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4232,
                      "src": "6704:26:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$2760_memory_ptr_$",
                        "typeString": "function (uint256) view external returns (struct IBundle.Bundle memory)"
                      }
                    },
                    "id": 2407,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6704:37:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bundle_$2760_memory_ptr",
                      "typeString": "struct IBundle.Bundle memory"
                    }
                  },
                  "functionReturnParameters": 2389,
                  "id": 2408,
                  "nodeType": "Return",
                  "src": "6697:44:13"
                }
              ]
            },
            "functionSelector": "2d0821b7",
            "id": 2410,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getBundle",
            "nameLocation": "6484:9:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2385,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6514:8:13"
            },
            "parameters": {
              "id": 2384,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2383,
                  "mutability": "mutable",
                  "name": "idx",
                  "nameLocation": "6502:3:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2410,
                  "src": "6494:11:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2382,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6494:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6493:13:13"
            },
            "returnParameters": {
              "id": 2389,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2388,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2410,
                  "src": "6536:21:13",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bundle_$2760_memory_ptr",
                    "typeString": "struct IBundle.Bundle"
                  },
                  "typeName": {
                    "id": 2387,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 2386,
                      "name": "IBundle.Bundle",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2760,
                      "src": "6536:14:13"
                    },
                    "referencedDeclaration": 2760,
                    "src": "6536:14:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bundle_$2760_storage_ptr",
                      "typeString": "struct IBundle.Bundle"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6535:23:13"
            },
            "scope": 2597,
            "src": "6475:273:13",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              1083
            ],
            "body": {
              "id": 2426,
              "nodeType": "Block",
              "src": "6817:104:13",
              "statements": [
                {
                  "assignments": [
                    2417
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2417,
                      "mutability": "mutable",
                      "name": "riskpoolId",
                      "nameLocation": "6835:10:13",
                      "nodeType": "VariableDeclaration",
                      "scope": 2426,
                      "src": "6827:18:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2416,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6827:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 2420,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 2418,
                      "name": "getId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 461,
                      "src": "6848:5:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 2419,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6848:7:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6827:28:13"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 2423,
                        "name": "riskpoolId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2417,
                        "src": "6903:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 2421,
                        "name": "_instanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1890,
                        "src": "6872:16:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IInstanceService_$4333",
                          "typeString": "contract IInstanceService"
                        }
                      },
                      "id": 2422,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "activeBundles",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4197,
                      "src": "6872:30:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) view external returns (uint256)"
                      }
                    },
                    "id": 2424,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6872:42:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2415,
                  "id": 2425,
                  "nodeType": "Return",
                  "src": "6865:49:13"
                }
              ]
            },
            "functionSelector": "4101b90c",
            "id": 2427,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "activeBundles",
            "nameLocation": "6763:13:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2412,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6786:8:13"
            },
            "parameters": {
              "id": 2411,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6776:2:13"
            },
            "returnParameters": {
              "id": 2415,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2414,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2427,
                  "src": "6808:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2413,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6808:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6807:9:13"
            },
            "scope": 2597,
            "src": "6754:167:13",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              1090
            ],
            "body": {
              "id": 2456,
              "nodeType": "Block",
              "src": "7014:228:13",
              "statements": [
                {
                  "assignments": [
                    2436
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2436,
                      "mutability": "mutable",
                      "name": "riskpoolId",
                      "nameLocation": "7032:10:13",
                      "nodeType": "VariableDeclaration",
                      "scope": 2456,
                      "src": "7024:18:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2435,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7024:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 2439,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 2437,
                      "name": "getId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 461,
                      "src": "7045:5:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 2438,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7045:7:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7024:28:13"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2446,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 2441,
                          "name": "idx",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2429,
                          "src": "7070:3:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "arguments": [
                            {
                              "id": 2444,
                              "name": "riskpoolId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2436,
                              "src": "7107:10:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 2442,
                              "name": "_instanceService",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1890,
                              "src": "7076:16:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IInstanceService_$4333",
                                "typeString": "contract IInstanceService"
                              }
                            },
                            "id": 2443,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "activeBundles",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4197,
                            "src": "7076:30:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256) view external returns (uint256)"
                            }
                          },
                          "id": 2445,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7076:42:13",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "7070:48:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a52504c2d3030373a4143544956455f42554e444c455f494e4445585f544f4f5f4c41524745",
                        "id": 2447,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7120:45:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_82780776f183fcd808ad9ca738f415f32c17d7a043dc65d4817fbef9c5f091f9",
                          "typeString": "literal_string \"ERROR:RPL-007:ACTIVE_BUNDLE_INDEX_TOO_LARGE\""
                        },
                        "value": "ERROR:RPL-007:ACTIVE_BUNDLE_INDEX_TOO_LARGE"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_82780776f183fcd808ad9ca738f415f32c17d7a043dc65d4817fbef9c5f091f9",
                          "typeString": "literal_string \"ERROR:RPL-007:ACTIVE_BUNDLE_INDEX_TOO_LARGE\""
                        }
                      ],
                      "id": 2440,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "7062:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2448,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7062:104:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2449,
                  "nodeType": "ExpressionStatement",
                  "src": "7062:104:13"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 2452,
                        "name": "riskpoolId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2436,
                        "src": "7219:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 2453,
                        "name": "idx",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2429,
                        "src": "7231:3:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 2450,
                        "name": "_instanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1890,
                        "src": "7184:16:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IInstanceService_$4333",
                          "typeString": "contract IInstanceService"
                        }
                      },
                      "id": 2451,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getActiveBundleId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4206,
                      "src": "7184:34:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256) view external returns (uint256)"
                      }
                    },
                    "id": 2454,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7184:51:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2434,
                  "id": 2455,
                  "nodeType": "Return",
                  "src": "7177:58:13"
                }
              ]
            },
            "functionSelector": "0676cb0e",
            "id": 2457,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getActiveBundleId",
            "nameLocation": "6936:17:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2431,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6974:8:13"
            },
            "parameters": {
              "id": 2430,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2429,
                  "mutability": "mutable",
                  "name": "idx",
                  "nameLocation": "6962:3:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2457,
                  "src": "6954:11:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2428,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6954:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6953:13:13"
            },
            "returnParameters": {
              "id": 2434,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2433,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "7004:8:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2457,
                  "src": "6996:16:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2432,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6996:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6995:18:13"
            },
            "scope": 2597,
            "src": "6927:315:13",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              1065
            ],
            "body": {
              "id": 2465,
              "nodeType": "Block",
              "src": "7328:53:13",
              "statements": [
                {
                  "expression": {
                    "id": 2463,
                    "name": "DEFAULT_FILTER_DATA_STRUCTURE",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1887,
                    "src": "7345:29:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 2462,
                  "id": 2464,
                  "nodeType": "Return",
                  "src": "7338:36:13"
                }
              ]
            },
            "functionSelector": "3dcdde17",
            "id": 2466,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFilterDataStructure",
            "nameLocation": "7257:22:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2459,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7291:8:13"
            },
            "parameters": {
              "id": 2458,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7279:2:13"
            },
            "returnParameters": {
              "id": 2462,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2461,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2466,
                  "src": "7313:13:13",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 2460,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "7313:6:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7312:15:13"
            },
            "scope": 2597,
            "src": "7248:133:13",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              1110
            ],
            "body": {
              "id": 2482,
              "nodeType": "Block",
              "src": "7447:101:13",
              "statements": [
                {
                  "assignments": [
                    2473
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2473,
                      "mutability": "mutable",
                      "name": "riskpoolId",
                      "nameLocation": "7465:10:13",
                      "nodeType": "VariableDeclaration",
                      "scope": 2482,
                      "src": "7457:18:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2472,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7457:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 2476,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 2474,
                      "name": "getId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 461,
                      "src": "7478:5:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 2475,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7478:7:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7457:28:13"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 2479,
                        "name": "riskpoolId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2473,
                        "src": "7530:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 2477,
                        "name": "_instanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1890,
                        "src": "7502:16:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IInstanceService_$4333",
                          "typeString": "contract IInstanceService"
                        }
                      },
                      "id": 2478,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getCapital",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4169,
                      "src": "7502:27:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) view external returns (uint256)"
                      }
                    },
                    "id": 2480,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7502:39:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2471,
                  "id": 2481,
                  "nodeType": "Return",
                  "src": "7495:46:13"
                }
              ]
            },
            "functionSelector": "e0032383",
            "id": 2483,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getCapital",
            "nameLocation": "7396:10:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2468,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7416:8:13"
            },
            "parameters": {
              "id": 2467,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7406:2:13"
            },
            "returnParameters": {
              "id": 2471,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2470,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2483,
                  "src": "7438:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2469,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7438:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7437:9:13"
            },
            "scope": 2597,
            "src": "7387:161:13",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              1115
            ],
            "body": {
              "id": 2499,
              "nodeType": "Block",
              "src": "7623:110:13",
              "statements": [
                {
                  "assignments": [
                    2490
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2490,
                      "mutability": "mutable",
                      "name": "riskpoolId",
                      "nameLocation": "7641:10:13",
                      "nodeType": "VariableDeclaration",
                      "scope": 2499,
                      "src": "7633:18:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2489,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7633:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 2493,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 2491,
                      "name": "getId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 461,
                      "src": "7654:5:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 2492,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7654:7:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7633:28:13"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 2496,
                        "name": "riskpoolId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2490,
                        "src": "7715:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 2494,
                        "name": "_instanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1890,
                        "src": "7678:16:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IInstanceService_$4333",
                          "typeString": "contract IInstanceService"
                        }
                      },
                      "id": 2495,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getTotalValueLocked",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4176,
                      "src": "7678:36:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) view external returns (uint256)"
                      }
                    },
                    "id": 2497,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7678:48:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2488,
                  "id": 2498,
                  "nodeType": "Return",
                  "src": "7671:55:13"
                }
              ]
            },
            "functionSelector": "b26025aa",
            "id": 2500,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getTotalValueLocked",
            "nameLocation": "7563:19:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2485,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7592:8:13"
            },
            "parameters": {
              "id": 2484,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7582:2:13"
            },
            "returnParameters": {
              "id": 2488,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2487,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2500,
                  "src": "7614:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2486,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7614:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7613:9:13"
            },
            "scope": 2597,
            "src": "7554:179:13",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              1120
            ],
            "body": {
              "id": 2516,
              "nodeType": "Block",
              "src": "7800:102:13",
              "statements": [
                {
                  "assignments": [
                    2507
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2507,
                      "mutability": "mutable",
                      "name": "riskpoolId",
                      "nameLocation": "7818:10:13",
                      "nodeType": "VariableDeclaration",
                      "scope": 2516,
                      "src": "7810:18:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2506,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7810:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 2510,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 2508,
                      "name": "getId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 461,
                      "src": "7831:5:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 2509,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7831:7:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7810:28:13"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 2513,
                        "name": "riskpoolId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2507,
                        "src": "7884:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 2511,
                        "name": "_instanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1890,
                        "src": "7855:16:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IInstanceService_$4333",
                          "typeString": "contract IInstanceService"
                        }
                      },
                      "id": 2512,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getCapacity",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4183,
                      "src": "7855:28:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) view external returns (uint256)"
                      }
                    },
                    "id": 2514,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7855:40:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2505,
                  "id": 2515,
                  "nodeType": "Return",
                  "src": "7848:47:13"
                }
              ]
            },
            "functionSelector": "c40000d4",
            "id": 2517,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getCapacity",
            "nameLocation": "7748:11:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2502,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7769:8:13"
            },
            "parameters": {
              "id": 2501,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7759:2:13"
            },
            "returnParameters": {
              "id": 2505,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2504,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2517,
                  "src": "7791:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2503,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7791:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7790:9:13"
            },
            "scope": 2597,
            "src": "7739:163:13",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              1125
            ],
            "body": {
              "id": 2533,
              "nodeType": "Block",
              "src": "7968:101:13",
              "statements": [
                {
                  "assignments": [
                    2524
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2524,
                      "mutability": "mutable",
                      "name": "riskpoolId",
                      "nameLocation": "7986:10:13",
                      "nodeType": "VariableDeclaration",
                      "scope": 2533,
                      "src": "7978:18:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2523,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7978:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 2527,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 2525,
                      "name": "getId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 461,
                      "src": "7999:5:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 2526,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7999:7:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7978:28:13"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 2530,
                        "name": "riskpoolId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2524,
                        "src": "8051:10:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 2528,
                        "name": "_instanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1890,
                        "src": "8023:16:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IInstanceService_$4333",
                          "typeString": "contract IInstanceService"
                        }
                      },
                      "id": 2529,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4190,
                      "src": "8023:27:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) view external returns (uint256)"
                      }
                    },
                    "id": 2531,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8023:39:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2522,
                  "id": 2532,
                  "nodeType": "Return",
                  "src": "8016:46:13"
                }
              ]
            },
            "functionSelector": "12065fe0",
            "id": 2534,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getBalance",
            "nameLocation": "7917:10:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2519,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7937:8:13"
            },
            "parameters": {
              "id": 2518,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7927:2:13"
            },
            "returnParameters": {
              "id": 2522,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2521,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2534,
                  "src": "7959:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2520,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7959:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7958:9:13"
            },
            "scope": 2597,
            "src": "7908:161:13",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              1060
            ],
            "functionSelector": "86c71288",
            "id": 2546,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "bundleMatchesApplication",
            "nameLocation": "8084:24:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2542,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "8209:8:13"
            },
            "parameters": {
              "id": 2541,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2537,
                  "mutability": "mutable",
                  "name": "bundle",
                  "nameLocation": "8140:6:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2546,
                  "src": "8118:28:13",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bundle_$2760_memory_ptr",
                    "typeString": "struct IBundle.Bundle"
                  },
                  "typeName": {
                    "id": 2536,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 2535,
                      "name": "IBundle.Bundle",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2760,
                      "src": "8118:14:13"
                    },
                    "referencedDeclaration": 2760,
                    "src": "8118:14:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bundle_$2760_storage_ptr",
                      "typeString": "struct IBundle.Bundle"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2540,
                  "mutability": "mutable",
                  "name": "application",
                  "nameLocation": "8184:11:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2546,
                  "src": "8157:38:13",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Application_$3086_memory_ptr",
                    "typeString": "struct IPolicy.Application"
                  },
                  "typeName": {
                    "id": 2539,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 2538,
                      "name": "IPolicy.Application",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3086,
                      "src": "8157:19:13"
                    },
                    "referencedDeclaration": 3086,
                    "src": "8157:19:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Application_$3086_storage_ptr",
                      "typeString": "struct IPolicy.Application"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8108:93:13"
            },
            "returnParameters": {
              "id": 2545,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2544,
                  "mutability": "mutable",
                  "name": "isMatching",
                  "nameLocation": "8244:10:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2546,
                  "src": "8239:15:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2543,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8239:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8238:17:13"
            },
            "scope": 2597,
            "src": "8075:181:13",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              655
            ],
            "body": {
              "id": 2565,
              "nodeType": "Block",
              "src": "8310:198:13",
              "statements": [
                {
                  "assignments": [
                    2551
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2551,
                      "mutability": "mutable",
                      "name": "riskpoolId",
                      "nameLocation": "8329:10:13",
                      "nodeType": "VariableDeclaration",
                      "scope": 2565,
                      "src": "8321:18:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2550,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "8321:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 2554,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 2552,
                      "name": "getId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 461,
                      "src": "8342:5:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 2553,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8342:7:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8321:28:13"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2561,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [
                            {
                              "id": 2558,
                              "name": "riskpoolId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2551,
                              "src": "8412:10:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 2556,
                              "name": "_instanceService",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1890,
                              "src": "8380:16:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IInstanceService_$4333",
                                "typeString": "contract IInstanceService"
                              }
                            },
                            "id": 2557,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "unburntBundles",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4239,
                            "src": "8380:31:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256) view external returns (uint256)"
                            }
                          },
                          "id": 2559,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8380:43:13",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 2560,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8427:1:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "8380:48:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a52504c2d3031303a5249534b504f4f4c5f4841535f554e4255524e545f42554e444c4553",
                        "id": 2562,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8443:44:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a2626045118232e735558df751611285d72ec20b7c63057376deea8c67275d7a",
                          "typeString": "literal_string \"ERROR:RPL-010:RISKPOOL_HAS_UNBURNT_BUNDLES\""
                        },
                        "value": "ERROR:RPL-010:RISKPOOL_HAS_UNBURNT_BUNDLES"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a2626045118232e735558df751611285d72ec20b7c63057376deea8c67275d7a",
                          "typeString": "literal_string \"ERROR:RPL-010:RISKPOOL_HAS_UNBURNT_BUNDLES\""
                        }
                      ],
                      "id": 2555,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "8359:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 2563,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8359:142:13",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2564,
                  "nodeType": "ExpressionStatement",
                  "src": "8359:142:13"
                }
              ]
            },
            "id": 2566,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_afterArchive",
            "nameLocation": "8271:13:13",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 2548,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "8301:8:13"
            },
            "parameters": {
              "id": 2547,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8284:2:13"
            },
            "returnParameters": {
              "id": 2549,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8310:0:13"
            },
            "scope": 2597,
            "src": "8262:246:13",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 2575,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "_lockCollateral",
            "nameLocation": "8523:15:13",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2571,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2568,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "8547:9:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2575,
                  "src": "8539:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2567,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8539:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2570,
                  "mutability": "mutable",
                  "name": "collateralAmount",
                  "nameLocation": "8566:16:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2575,
                  "src": "8558:24:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2569,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8558:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8538:45:13"
            },
            "returnParameters": {
              "id": 2574,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2573,
                  "mutability": "mutable",
                  "name": "success",
                  "nameLocation": "8614:7:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2575,
                  "src": "8609:12:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2572,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8609:4:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8608:14:13"
            },
            "scope": 2597,
            "src": "8514:109:13",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "id": 2582,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "_processPremium",
            "nameLocation": "8637:15:13",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2580,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2577,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "8661:9:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2582,
                  "src": "8653:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2576,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8653:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2579,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "8680:6:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2582,
                  "src": "8672:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2578,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8672:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8652:35:13"
            },
            "returnParameters": {
              "id": 2581,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8704:0:13"
            },
            "scope": 2597,
            "src": "8628:77:13",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "id": 2589,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "_processPayout",
            "nameLocation": "8719:14:13",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2587,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2584,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "8742:9:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2589,
                  "src": "8734:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2583,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8734:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2586,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "8761:6:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2589,
                  "src": "8753:14:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2585,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8753:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8733:35:13"
            },
            "returnParameters": {
              "id": 2588,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8785:0:13"
            },
            "scope": 2597,
            "src": "8710:76:13",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "id": 2596,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "_releaseCollateral",
            "nameLocation": "8800:18:13",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2592,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2591,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "8827:9:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2596,
                  "src": "8819:17:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2590,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8819:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8818:19:13"
            },
            "returnParameters": {
              "id": 2595,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2594,
                  "mutability": "mutable",
                  "name": "collateralAmount",
                  "nameLocation": "8871:16:13",
                  "nodeType": "VariableDeclaration",
                  "scope": 2596,
                  "src": "8863:24:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2593,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8863:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8862:26:13"
            },
            "scope": 2597,
            "src": "8791:98:13",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          }
        ],
        "scope": 2598,
        "src": "329:8563:13"
      }
    ],
    "src": "39:8853:13"
  },
  "bytecode": "",
  "bytecodeSha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.2+commit.661d1103"
  },
  "contractName": "Riskpool",
  "coverageMap": {
    "branches": {},
    "statements": {}
  },
  "dependencies": [
    "Component",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/Context",
    "IAccess",
    "IBundleToken",
    "IComponent",
    "IComponentEvents",
    "IComponentOwnerService",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/IERC165",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/IERC20",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/IERC721",
    "IInstanceOperatorService",
    "IInstanceService",
    "IOracleService",
    "IProductService",
    "IRegistry",
    "IRiskpool",
    "IRiskpoolService",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/Ownable"
  ],
  "deployedBytecode": "",
  "deployedSourceMap": "",
  "language": "Solidity",
  "natspec": {
    "kind": "dev",
    "methods": {
      "owner()": {
        "details": "Returns the address of the current owner."
      },
      "renounceOwnership()": {
        "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
      },
      "transferOwnership(address)": {
        "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
      }
    },
    "version": 1
  },
  "offset": [
    329,
    8892
  ],
  "opcodes": "",
  "pcMap": {},
  "sha1": "d33d7012d7c79d2a21de53ed457691326611c9a6",
  "source": "// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"./IRiskpool.sol\";\nimport \"./Component.sol\";\n\nimport \"../modules/IBundle.sol\";\nimport \"../modules/IPolicy.sol\";\nimport \"../services/IInstanceService.sol\";\nimport \"../services/IRiskpoolService.sol\";\n\nimport \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\n\nabstract contract Riskpool is \n    IRiskpool, \n    Component \n{    \n    // used for representation of collateralization\n    // collateralization between 0 and 1 (1=100%) \n    // value might be larger when overcollateralization\n    uint256 public constant FULL_COLLATERALIZATION_LEVEL = 10**18;\n    string public constant DEFAULT_FILTER_DATA_STRUCTURE = \"\";\n\n    IInstanceService internal _instanceService; \n    IRiskpoolService internal _riskpoolService;\n    IERC721 internal _bundleToken;\n    \n    // keep track of bundles associated with this riskpool\n    uint256 [] internal _bundleIds;\n\n    address private _wallet;\n    address private _erc20Token;\n    uint256 private _collateralization;\n    uint256 private _sumOfSumInsuredCap;\n    uint256 private _maxNumberOfActiveBundles;\n\n    modifier onlyPool {\n        require(\n            _msgSender() == _getContractAddress(\"Pool\"),\n            \"ERROR:RPL-001:ACCESS_DENIED\"\n        );\n        _;\n    }\n\n    modifier onlyBundleOwner(uint256 bundleId) {\n        IBundle.Bundle memory bundle = _instanceService.getBundle(bundleId);\n        address bundleOwner = _bundleToken.ownerOf(bundle.tokenId);\n\n        require(\n            _msgSender() == bundleOwner,\n            \"ERROR:BUC-001:NOT_BUNDLE_OWNER\"\n        );\n        _;\n    }\n\n    constructor(\n        bytes32 name,\n        uint256 collateralization,\n        uint256 sumOfSumInsuredCap,\n        address erc20Token,\n        address wallet,\n        address registry\n    )\n        Component(name, ComponentType.Riskpool, registry)\n    { \n        _collateralization = collateralization;\n\n        require(sumOfSumInsuredCap != 0, \"ERROR:RPL-002:SUM_OF_SUM_INSURED_CAP_ZERO\");\n        _sumOfSumInsuredCap = sumOfSumInsuredCap;\n\n        require(erc20Token != address(0), \"ERROR:RPL-003:ERC20_ADDRESS_ZERO\");\n        _erc20Token = erc20Token;\n\n        require(wallet != address(0), \"ERROR:RPL-004:WALLET_ADDRESS_ZERO\");\n        _wallet = wallet;\n\n        _instanceService = IInstanceService(_getContractAddress(\"InstanceService\")); \n        _riskpoolService = IRiskpoolService(_getContractAddress(\"RiskpoolService\"));\n        _bundleToken = _instanceService.getBundleToken();\n    }\n\n    function _afterPropose() internal override virtual {\n        _riskpoolService.registerRiskpool(\n            _wallet,\n            _erc20Token, \n            _collateralization,\n            _sumOfSumInsuredCap\n        );\n    }\n\n    function createBundle(bytes memory filter, uint256 initialAmount) \n        public virtual override\n        returns(uint256 bundleId)\n    {\n        address bundleOwner = _msgSender();\n        bundleId = _riskpoolService.createBundle(bundleOwner, filter, initialAmount);\n        _bundleIds.push(bundleId);\n\n        emit LogRiskpoolBundleCreated(bundleId, initialAmount);\n    }\n\n    function fundBundle(uint256 bundleId, uint256 amount) \n        external override\n        onlyBundleOwner(bundleId)\n        returns(uint256 netAmount)\n    {\n        netAmount = _riskpoolService.fundBundle(bundleId, amount);\n    }\n\n    function defundBundle(uint256 bundleId, uint256 amount)\n        external override\n        onlyBundleOwner(bundleId)\n        returns(uint256 netAmount)\n    {\n        netAmount = _riskpoolService.defundBundle(bundleId, amount);\n    }\n\n    function lockBundle(uint256 bundleId)\n        external override\n        onlyBundleOwner(bundleId)\n    {\n        _riskpoolService.lockBundle(bundleId);\n    }\n\n    function unlockBundle(uint256 bundleId)\n        external override\n        onlyBundleOwner(bundleId)\n    {\n        _riskpoolService.unlockBundle(bundleId);\n    }\n\n    function closeBundle(uint256 bundleId)\n        external override\n        onlyBundleOwner(bundleId)\n    {\n        _riskpoolService.closeBundle(bundleId);\n    }\n\n    function burnBundle(uint256 bundleId)\n        external override\n        onlyBundleOwner(bundleId)\n    {\n        _riskpoolService.burnBundle(bundleId);\n    }\n\n    function collateralizePolicy(bytes32 processId, uint256 collateralAmount) \n        external override\n        onlyPool\n        returns(bool success) \n    {\n        success = _lockCollateral(processId, collateralAmount);\n        emit LogRiskpoolCollateralLocked(processId, collateralAmount, success);\n    }\n\n    function processPolicyPayout(bytes32 processId, uint256 amount)\n        external override\n        onlyPool\n    {\n        _processPayout(processId, amount);\n        emit LogRiskpoolPayoutProcessed(processId, amount);\n    }\n\n    function processPolicyPremium(bytes32 processId, uint256 amount)\n        external override\n        onlyPool\n    {\n        _processPremium(processId, amount);\n        emit LogRiskpoolPremiumProcessed(processId, amount);\n    }\n\n    function releasePolicy(bytes32 processId) \n        external override\n        onlyPool\n    {\n        uint256 collateralAmount = _releaseCollateral(processId);\n        emit LogRiskpoolCollateralReleased(processId, collateralAmount);\n    }\n\n    function setMaximumNumberOfActiveBundles(uint256 maximumNumberOfActiveBundles)\n        external override\n        onlyOwner\n    {\n        uint256 riskpoolId = getId();\n        _riskpoolService.setMaximumNumberOfActiveBundles(riskpoolId, maximumNumberOfActiveBundles);\n    }\n\n    function getMaximumNumberOfActiveBundles()\n        public view override\n        returns(uint256 maximumNumberOfActiveBundles)\n    {\n        uint256 riskpoolId = getId();\n        return _instanceService.getMaximumNumberOfActiveBundles(riskpoolId);\n    }\n\n    function getWallet() public view override returns(address) {\n        return _wallet;\n    }\n\n    function getErc20Token() public view override returns(address) {\n        return _erc20Token;\n    }\n\n    function getSumOfSumInsuredCap() public view override returns (uint256) {\n        return _sumOfSumInsuredCap;\n    }\n\n    function getFullCollateralizationLevel() public pure override returns (uint256) {\n        return FULL_COLLATERALIZATION_LEVEL;\n    }\n\n    function getCollateralizationLevel() public view override returns (uint256) {\n        return _collateralization;\n    }\n\n    function bundles() public override view returns(uint256) {\n        return _bundleIds.length;\n    }\n\n    function getBundle(uint256 idx) public override view returns(IBundle.Bundle memory) {\n        require(idx < _bundleIds.length, \"ERROR:RPL-006:BUNDLE_INDEX_TOO_LARGE\");\n\n        uint256 bundleIdx = _bundleIds[idx];\n        return _instanceService.getBundle(bundleIdx);\n    }\n\n    function activeBundles() public override view returns(uint256) {\n        uint256 riskpoolId = getId();\n        return _instanceService.activeBundles(riskpoolId);\n    }\n\n    function getActiveBundleId(uint256 idx) public override view returns(uint256 bundleId) {\n        uint256 riskpoolId = getId();\n        require(idx < _instanceService.activeBundles(riskpoolId), \"ERROR:RPL-007:ACTIVE_BUNDLE_INDEX_TOO_LARGE\");\n\n        return _instanceService.getActiveBundleId(riskpoolId, idx);\n    }\n\n    function getFilterDataStructure() external override pure returns(string memory) {\n        return DEFAULT_FILTER_DATA_STRUCTURE;\n    }\n\n    function getCapital() public override view returns(uint256) {\n        uint256 riskpoolId = getId();\n        return _instanceService.getCapital(riskpoolId);\n    }\n\n    function getTotalValueLocked() public override view returns(uint256) {\n        uint256 riskpoolId = getId();\n        return _instanceService.getTotalValueLocked(riskpoolId);\n    }\n\n    function getCapacity() public override view returns(uint256) {\n        uint256 riskpoolId = getId();\n        return _instanceService.getCapacity(riskpoolId);\n    }\n\n    function getBalance() public override view returns(uint256) {\n        uint256 riskpoolId = getId();\n        return _instanceService.getBalance(riskpoolId);\n    }\n\n    function bundleMatchesApplication(\n        IBundle.Bundle memory bundle, \n        IPolicy.Application memory application\n    ) public override view virtual returns(bool isMatching);\n\n    function _afterArchive() internal view override { \n        uint256 riskpoolId = getId();\n        require(\n            _instanceService.unburntBundles(riskpoolId) == 0, \n            \"ERROR:RPL-010:RISKPOOL_HAS_UNBURNT_BUNDLES\"\n            );\n    }\n\n    function _lockCollateral(bytes32 processId, uint256 collateralAmount) internal virtual returns(bool success);\n    function _processPremium(bytes32 processId, uint256 amount) internal virtual;\n    function _processPayout(bytes32 processId, uint256 amount) internal virtual;\n    function _releaseCollateral(bytes32 processId) internal virtual returns(uint256 collateralAmount);\n\n}",
  "sourceMap": "",
  "sourcePath": "contracts/components/Riskpool.sol",
  "type": "contract"
}