[
 {
  "type": "constructor",
  "inputs": [
   {
    "name": "loanAsset_",
    "type": "address",
    "internalType": "contract IERC20"
   },
   {
    "name": "loanDecimals_",
    "type": "uint8",
    "internalType": "uint8"
   },
   {
    "name": "terms_",
    "type": "address",
    "internalType": "contract IKerbTerms"
   },
   {
    "name": "clock_",
    "type": "address",
    "internalType": "contract IKerbClock"
   },
   {
    "name": "admin_",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "guardian_",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "reserveRecipient_",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "rateModel",
    "type": "uint256[5]",
    "internalType": "uint256[5]"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "accrue",
  "inputs": [],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "admin",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "assetDebtShares",
  "inputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "baseRate",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "borrow",
  "inputs": [
   {
    "name": "assetId",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "amount",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "mode",
    "type": "uint8",
    "internalType": "uint8"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "borrowPaused",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "bool",
    "internalType": "bool"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "borrowRate",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "clock",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "contract IKerbClock"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "collateral",
  "inputs": [
   {
    "name": "assetId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "tuple",
    "internalType": "struct KerbCredit.CollateralConfig",
    "components": [
     {
      "name": "token",
      "type": "address",
      "internalType": "contract IERC20"
     },
     {
      "name": "wrapper",
      "type": "address",
      "internalType": "contract IWrapper"
     },
     {
      "name": "tokenDecimals",
      "type": "uint8",
      "internalType": "uint8"
     },
     {
      "name": "liquidationThreshold",
      "type": "uint64",
      "internalType": "uint64"
     },
     {
      "name": "closeFactor",
      "type": "uint64",
      "internalType": "uint64"
     },
     {
      "name": "cureBonus",
      "type": "uint64",
      "internalType": "uint64"
     },
     {
      "name": "defaultBonus",
      "type": "uint64",
      "internalType": "uint64"
     },
     {
      "name": "listed",
      "type": "bool",
      "internalType": "bool"
     }
    ]
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "cure",
  "inputs": [
   {
    "name": "user",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "assetId",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "repayAmount",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "outputs": [
   {
    "name": "repaid",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "seized",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "cureStatus",
  "inputs": [
   {
    "name": "user",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "assetId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "outputs": [
   {
    "name": "eligible",
    "type": "bool",
    "internalType": "bool"
   },
   {
    "name": "deadline",
    "type": "uint64",
    "internalType": "uint64"
   },
   {
    "name": "requiredRepay",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "debtOf",
  "inputs": [
   {
    "name": "user",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "assetId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "deposit",
  "inputs": [
   {
    "name": "assetId",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "amount",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "depositPaused",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "bool",
    "internalType": "bool"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "guardian",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "healthFactor",
  "inputs": [
   {
    "name": "user",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "assetId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "kink",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "lastAccrualAt",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint64",
    "internalType": "uint64"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "liquidate",
  "inputs": [
   {
    "name": "user",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "assetId",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "repayAmount",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "outputs": [
   {
    "name": "repaid",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "seized",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "listCollateral",
  "inputs": [
   {
    "name": "assetId",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "c",
    "type": "tuple",
    "internalType": "struct KerbCredit.CollateralConfig",
    "components": [
     {
      "name": "token",
      "type": "address",
      "internalType": "contract IERC20"
     },
     {
      "name": "wrapper",
      "type": "address",
      "internalType": "contract IWrapper"
     },
     {
      "name": "tokenDecimals",
      "type": "uint8",
      "internalType": "uint8"
     },
     {
      "name": "liquidationThreshold",
      "type": "uint64",
      "internalType": "uint64"
     },
     {
      "name": "closeFactor",
      "type": "uint64",
      "internalType": "uint64"
     },
     {
      "name": "cureBonus",
      "type": "uint64",
      "internalType": "uint64"
     },
     {
      "name": "defaultBonus",
      "type": "uint64",
      "internalType": "uint64"
     },
     {
      "name": "listed",
      "type": "bool",
      "internalType": "bool"
     }
    ]
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "loanAsset",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "contract IERC20"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "loanDecimals",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint8",
    "internalType": "uint8"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "position",
  "inputs": [
   {
    "name": "user",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "assetId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "tuple",
    "internalType": "struct KerbCredit.Position",
    "components": [
     {
      "name": "collateralShares",
      "type": "uint128",
      "internalType": "uint128"
     },
     {
      "name": "debtShares",
      "type": "uint128",
      "internalType": "uint128"
     },
     {
      "name": "carryTarget",
      "type": "uint64",
      "internalType": "uint64"
     },
     {
      "name": "mode",
      "type": "uint8",
      "internalType": "uint8"
     },
     {
      "name": "lastCureAt",
      "type": "uint64",
      "internalType": "uint64"
     }
    ]
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "positionLTV",
  "inputs": [
   {
    "name": "user",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "assetId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "repay",
  "inputs": [
   {
    "name": "assetId",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "amount",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "outputs": [
   {
    "name": "repaid",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "repayFor",
  "inputs": [
   {
    "name": "user",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "assetId",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "amount",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "outputs": [
   {
    "name": "repaid",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "reserveFactor",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "reserveRecipient",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "reserves",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "setAdmin",
  "inputs": [
   {
    "name": "a",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "setGuardian",
  "inputs": [
   {
    "name": "g",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "setPaused",
  "inputs": [
   {
    "name": "borrowPaused_",
    "type": "bool",
    "internalType": "bool"
   },
   {
    "name": "depositPaused_",
    "type": "bool",
    "internalType": "bool"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "setReserveRecipient",
  "inputs": [
   {
    "name": "r",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "slope1",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "slope2",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "suppliedOf",
  "inputs": [
   {
    "name": "user",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "supply",
  "inputs": [
   {
    "name": "assets",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "outputs": [
   {
    "name": "shares",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "supplyShares",
  "inputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "terms",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "contract IKerbTerms"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "totalDebtAssets",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "totalDebtShares",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "totalSuppliedAssets",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "totalSupplyShares",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "utilisation",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "withdraw",
  "inputs": [
   {
    "name": "shares",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "outputs": [
   {
    "name": "assets",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "withdrawCollateral",
  "inputs": [
   {
    "name": "assetId",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "amount",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "withdrawReserves",
  "inputs": [
   {
    "name": "to",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "amount",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "event",
  "name": "Accrued",
  "inputs": [
   {
    "name": "interest",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   },
   {
    "name": "toReserves",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   },
   {
    "name": "totalDebtAssets",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "AdminSet",
  "inputs": [
   {
    "name": "admin",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "Borrowed",
  "inputs": [
   {
    "name": "user",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "assetId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "bytes32"
   },
   {
    "name": "amount",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   },
   {
    "name": "mode",
    "type": "uint8",
    "indexed": false,
    "internalType": "uint8"
   },
   {
    "name": "carryTarget",
    "type": "uint64",
    "indexed": false,
    "internalType": "uint64"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "CollateralDeposited",
  "inputs": [
   {
    "name": "user",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "assetId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "bytes32"
   },
   {
    "name": "amount",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "CollateralListed",
  "inputs": [
   {
    "name": "assetId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "bytes32"
   },
   {
    "name": "config",
    "type": "tuple",
    "indexed": false,
    "internalType": "struct KerbCredit.CollateralConfig",
    "components": [
     {
      "name": "token",
      "type": "address",
      "internalType": "contract IERC20"
     },
     {
      "name": "wrapper",
      "type": "address",
      "internalType": "contract IWrapper"
     },
     {
      "name": "tokenDecimals",
      "type": "uint8",
      "internalType": "uint8"
     },
     {
      "name": "liquidationThreshold",
      "type": "uint64",
      "internalType": "uint64"
     },
     {
      "name": "closeFactor",
      "type": "uint64",
      "internalType": "uint64"
     },
     {
      "name": "cureBonus",
      "type": "uint64",
      "internalType": "uint64"
     },
     {
      "name": "defaultBonus",
      "type": "uint64",
      "internalType": "uint64"
     },
     {
      "name": "listed",
      "type": "bool",
      "internalType": "bool"
     }
    ]
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "CollateralWithdrawn",
  "inputs": [
   {
    "name": "user",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "assetId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "bytes32"
   },
   {
    "name": "amount",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "Cured",
  "inputs": [
   {
    "name": "curer",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "user",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "assetId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "bytes32"
   },
   {
    "name": "repaid",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   },
   {
    "name": "seized",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   },
   {
    "name": "target",
    "type": "uint64",
    "indexed": false,
    "internalType": "uint64"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "GuardianSet",
  "inputs": [
   {
    "name": "guardian",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "Liquidated",
  "inputs": [
   {
    "name": "liquidator",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "user",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "assetId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "bytes32"
   },
   {
    "name": "repaid",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   },
   {
    "name": "seized",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "PausedSet",
  "inputs": [
   {
    "name": "borrowPaused",
    "type": "bool",
    "indexed": false,
    "internalType": "bool"
   },
   {
    "name": "depositPaused",
    "type": "bool",
    "indexed": false,
    "internalType": "bool"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "Repaid",
  "inputs": [
   {
    "name": "payer",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "user",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "assetId",
    "type": "bytes32",
    "indexed": true,
    "internalType": "bytes32"
   },
   {
    "name": "amount",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   },
   {
    "name": "shares",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "ReserveRecipientSet",
  "inputs": [
   {
    "name": "recipient",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "ReservesWithdrawn",
  "inputs": [
   {
    "name": "to",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "amount",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "Supplied",
  "inputs": [
   {
    "name": "user",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "assets",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   },
   {
    "name": "shares",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "Withdrawn",
  "inputs": [
   {
    "name": "user",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "assets",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   },
   {
    "name": "shares",
    "type": "uint256",
    "indexed": false,
    "internalType": "uint256"
   }
  ],
  "anonymous": false
 },
 {
  "type": "error",
  "name": "AlreadyListed",
  "inputs": [
   {
    "name": "assetId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "BadMode",
  "inputs": [
   {
    "name": "mode",
    "type": "uint8",
    "internalType": "uint8"
   }
  ]
 },
 {
  "type": "error",
  "name": "BorrowPaused",
  "inputs": []
 },
 {
  "type": "error",
  "name": "CloseFactorExceeded",
  "inputs": [
   {
    "name": "requested",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "allowed",
    "type": "uint256",
    "internalType": "uint256"
   }
  ]
 },
 {
  "type": "error",
  "name": "CureTooLarge",
  "inputs": [
   {
    "name": "requested",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "allowed",
    "type": "uint256",
    "internalType": "uint256"
   }
  ]
 },
 {
  "type": "error",
  "name": "CureWindowClosed",
  "inputs": [
   {
    "name": "assetId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "DepositPaused",
  "inputs": []
 },
 {
  "type": "error",
  "name": "ExceedsDebtCeiling",
  "inputs": [
   {
    "name": "assetDebt",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "ceiling",
    "type": "uint256",
    "internalType": "uint256"
   }
  ]
 },
 {
  "type": "error",
  "name": "ExceedsModeLTV",
  "inputs": [
   {
    "name": "ltv",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "ceiling",
    "type": "uint256",
    "internalType": "uint256"
   }
  ]
 },
 {
  "type": "error",
  "name": "ExceedsPositionCap",
  "inputs": [
   {
    "name": "positionDebt",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "cap",
    "type": "uint256",
    "internalType": "uint256"
   }
  ]
 },
 {
  "type": "error",
  "name": "InsufficientCollateral",
  "inputs": [
   {
    "name": "needed",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "held",
    "type": "uint256",
    "internalType": "uint256"
   }
  ]
 },
 {
  "type": "error",
  "name": "InsufficientLiquidity",
  "inputs": [
   {
    "name": "requested",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "available",
    "type": "uint256",
    "internalType": "uint256"
   }
  ]
 },
 {
  "type": "error",
  "name": "MarkUnavailable",
  "inputs": [
   {
    "name": "assetId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "MathOverflow",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NoDebt",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotAdmin",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotCurable",
  "inputs": [
   {
    "name": "ltv",
    "type": "uint256",
    "internalType": "uint256"
   },
   {
    "name": "target",
    "type": "uint256",
    "internalType": "uint256"
   }
  ]
 },
 {
  "type": "error",
  "name": "NotGuardian",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotLiquidatable",
  "inputs": [
   {
    "name": "healthFactor",
    "type": "uint256",
    "internalType": "uint256"
   }
  ]
 },
 {
  "type": "error",
  "name": "PositionUnsafe",
  "inputs": [
   {
    "name": "healthFactor",
    "type": "uint256",
    "internalType": "uint256"
   }
  ]
 },
 {
  "type": "error",
  "name": "ReentrancyGuardReentrantCall",
  "inputs": []
 },
 {
  "type": "error",
  "name": "SafeERC20FailedOperation",
  "inputs": [
   {
    "name": "token",
    "type": "address",
    "internalType": "address"
   }
  ]
 },
 {
  "type": "error",
  "name": "TermsUnusable",
  "inputs": [
   {
    "name": "assetId",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "regime",
    "type": "uint16",
    "internalType": "uint16"
   }
  ]
 },
 {
  "type": "error",
  "name": "UnknownCollateral",
  "inputs": [
   {
    "name": "assetId",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ]
 },
 {
  "type": "error",
  "name": "ZeroAddress",
  "inputs": []
 },
 {
  "type": "error",
  "name": "ZeroAmount",
  "inputs": []
 }
]
