[
    {
       "anonymous":false,
       "inputs":[
          {
             "indexed":false,
             "internalType":"uint256",
             "name":"cashPrior",
             "type":"uint256"
          },
          {
             "indexed":false,
             "internalType":"uint256",
             "name":"interestAccumulated",
             "type":"uint256"
          },
          {
             "indexed":false,
             "internalType":"uint256",
             "name":"borrowIndex",
             "type":"uint256"
          },
          {
             "indexed":false,
             "internalType":"uint256",
             "name":"totalBorrows",
             "type":"uint256"
          }
       ],
       "name":"AccrueInterest",
       "type":"event"
    },
    {
       "anonymous":false,
       "inputs":[
          {
             "indexed":true,
             "internalType":"address",
             "name":"owner",
             "type":"address"
          },
          {
             "indexed":true,
             "internalType":"address",
             "name":"spender",
             "type":"address"
          },
          {
             "indexed":false,
             "internalType":"uint256",
             "name":"amount",
             "type":"uint256"
          }
       ],
       "name":"Approval",
       "type":"event"
    },
    {
       "anonymous":false,
       "inputs":[
          {
             "indexed":false,
             "internalType":"address",
             "name":"borrower",
             "type":"address"
          },
          {
             "indexed":false,
             "internalType":"uint256",
             "name":"borrowAmount",
             "type":"uint256"
          },
          {
             "indexed":false,
             "internalType":"uint256",
             "name":"accountBorrows",
             "type":"uint256"
          },
          {
             "indexed":false,
             "internalType":"uint256",
             "name":"totalBorrows",
             "type":"uint256"
          }
       ],
       "name":"Borrow",
       "type":"event"
    },
    {
       "anonymous":false,
       "inputs":[
          {
             "indexed":false,
             "internalType":"uint256",
             "name":"error",
             "type":"uint256"
          },
          {
             "indexed":false,
             "internalType":"uint256",
             "name":"info",
             "type":"uint256"
          },
          {
             "indexed":false,
             "internalType":"uint256",
             "name":"detail",
             "type":"uint256"
          }
       ],
       "name":"Failure",
       "type":"event"
    },
    {
       "anonymous":false,
       "inputs":[
          {
             "indexed":false,
             "internalType":"address",
             "name":"liquidator",
             "type":"address"
          },
          {
             "indexed":false,
             "internalType":"address",
             "name":"borrower",
             "type":"address"
          },
          {
             "indexed":false,
             "internalType":"uint256",
             "name":"repayAmount",
             "type":"uint256"
          },
          {
             "indexed":false,
             "internalType":"address",
             "name":"cTokenCollateral",
             "type":"address"
          },
          {
             "indexed":false,
             "internalType":"uint256",
             "name":"seizeTokens",
             "type":"uint256"
          }
       ],
       "name":"LiquidateBorrow",
       "type":"event"
    },
    {
       "anonymous":false,
       "inputs":[
          {
             "indexed":false,
             "internalType":"address",
             "name":"minter",
             "type":"address"
          },
          {
             "indexed":false,
             "internalType":"uint256",
             "name":"mintAmount",
             "type":"uint256"
          },
          {
             "indexed":false,
             "internalType":"uint256",
             "name":"mintTokens",
             "type":"uint256"
          }
       ],
       "name":"Mint",
       "type":"event"
    },
    {
       "anonymous":false,
       "inputs":[
          {
             "indexed":false,
             "internalType":"address",
             "name":"oldAdmin",
             "type":"address"
          },
          {
             "indexed":false,
             "internalType":"address",
             "name":"newAdmin",
             "type":"address"
          }
       ],
       "name":"NewAdmin",
       "type":"event"
    },
    {
       "anonymous":false,
       "inputs":[
          {
             "indexed":false,
             "internalType":"contract Bondtroller",
             "name":"oldBondtroller",
             "type":"address"
          },
          {
             "indexed":false,
             "internalType":"contract Bondtroller",
             "name":"newBondtroller",
             "type":"address"
          }
       ],
       "name":"NewBondtroller",
       "type":"event"
    },
    {
       "anonymous":false,
       "inputs":[
          {
             "indexed":false,
             "internalType":"contract InterestRateModel",
             "name":"oldInterestRateModel",
             "type":"address"
          },
          {
             "indexed":false,
             "internalType":"contract InterestRateModel",
             "name":"newInterestRateModel",
             "type":"address"
          }
       ],
       "name":"NewMarketInterestRateModel",
       "type":"event"
    },
    {
       "anonymous":false,
       "inputs":[
          {
             "indexed":false,
             "internalType":"address",
             "name":"oldPendingAdmin",
             "type":"address"
          },
          {
             "indexed":false,
             "internalType":"address",
             "name":"newPendingAdmin",
             "type":"address"
          }
       ],
       "name":"NewPendingAdmin",
       "type":"event"
    },
    {
       "anonymous":false,
       "inputs":[
          {
             "indexed":false,
             "internalType":"uint256",
             "name":"oldReserveFactorMantissa",
             "type":"uint256"
          },
          {
             "indexed":false,
             "internalType":"uint256",
             "name":"newReserveFactorMantissa",
             "type":"uint256"
          }
       ],
       "name":"NewReserveFactor",
       "type":"event"
    },
    {
       "anonymous":false,
       "inputs":[
          {
             "indexed":false,
             "internalType":"address",
             "name":"redeemer",
             "type":"address"
          },
          {
             "indexed":false,
             "internalType":"uint256",
             "name":"redeemAmount",
             "type":"uint256"
          },
          {
             "indexed":false,
             "internalType":"uint256",
             "name":"redeemTokens",
             "type":"uint256"
          }
       ],
       "name":"Redeem",
       "type":"event"
    },
    {
       "anonymous":false,
       "inputs":[
          {
             "indexed":false,
             "internalType":"address",
             "name":"payer",
             "type":"address"
          },
          {
             "indexed":false,
             "internalType":"address",
             "name":"borrower",
             "type":"address"
          },
          {
             "indexed":false,
             "internalType":"uint256",
             "name":"repayAmount",
             "type":"uint256"
          },
          {
             "indexed":false,
             "internalType":"uint256",
             "name":"accountBorrows",
             "type":"uint256"
          },
          {
             "indexed":false,
             "internalType":"uint256",
             "name":"totalBorrows",
             "type":"uint256"
          }
       ],
       "name":"RepayBorrow",
       "type":"event"
    },
    {
       "anonymous":false,
       "inputs":[
          {
             "indexed":false,
             "internalType":"address",
             "name":"benefactor",
             "type":"address"
          },
          {
             "indexed":false,
             "internalType":"uint256",
             "name":"addAmount",
             "type":"uint256"
          },
          {
             "indexed":false,
             "internalType":"uint256",
             "name":"newTotalReserves",
             "type":"uint256"
          }
       ],
       "name":"ReservesAdded",
       "type":"event"
    },
    {
       "anonymous":false,
       "inputs":[
          {
             "indexed":false,
             "internalType":"address",
             "name":"admin",
             "type":"address"
          },
          {
             "indexed":false,
             "internalType":"uint256",
             "name":"reduceAmount",
             "type":"uint256"
          },
          {
             "indexed":false,
             "internalType":"uint256",
             "name":"newTotalReserves",
             "type":"uint256"
          }
       ],
       "name":"ReservesReduced",
       "type":"event"
    },
    {
       "anonymous":false,
       "inputs":[
          {
             "indexed":true,
             "internalType":"bytes32",
             "name":"role",
             "type":"bytes32"
          },
          {
             "indexed":true,
             "internalType":"bytes32",
             "name":"previousAdminRole",
             "type":"bytes32"
          },
          {
             "indexed":true,
             "internalType":"bytes32",
             "name":"newAdminRole",
             "type":"bytes32"
          }
       ],
       "name":"RoleAdminChanged",
       "type":"event"
    },
    {
       "anonymous":false,
       "inputs":[
          {
             "indexed":true,
             "internalType":"bytes32",
             "name":"role",
             "type":"bytes32"
          },
          {
             "indexed":true,
             "internalType":"address",
             "name":"account",
             "type":"address"
          },
          {
             "indexed":true,
             "internalType":"address",
             "name":"sender",
             "type":"address"
          }
       ],
       "name":"RoleGranted",
       "type":"event"
    },
    {
       "anonymous":false,
       "inputs":[
          {
             "indexed":true,
             "internalType":"bytes32",
             "name":"role",
             "type":"bytes32"
          },
          {
             "indexed":true,
             "internalType":"address",
             "name":"account",
             "type":"address"
          },
          {
             "indexed":true,
             "internalType":"address",
             "name":"sender",
             "type":"address"
          }
       ],
       "name":"RoleRevoked",
       "type":"event"
    },
    {
       "anonymous":false,
       "inputs":[
          {
             "indexed":true,
             "internalType":"address",
             "name":"oldPrimaryIndexToken",
             "type":"address"
          },
          {
             "indexed":true,
             "internalType":"address",
             "name":"newPrimaryIndexToken",
             "type":"address"
          }
       ],
       "name":"SetPrimaryIndexToken",
       "type":"event"
    },
    {
       "anonymous":false,
       "inputs":[
          {
             "indexed":true,
             "internalType":"address",
             "name":"from",
             "type":"address"
          },
          {
             "indexed":true,
             "internalType":"address",
             "name":"to",
             "type":"address"
          },
          {
             "indexed":false,
             "internalType":"uint256",
             "name":"amount",
             "type":"uint256"
          }
       ],
       "name":"Transfer",
       "type":"event"
    },
    {
       "inputs":[
          
       ],
       "name":"DEFAULT_ADMIN_ROLE",
       "outputs":[
          {
             "internalType":"bytes32",
             "name":"",
             "type":"bytes32"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          
       ],
       "name":"MODERATOR_ROLE",
       "outputs":[
          {
             "internalType":"bytes32",
             "name":"",
             "type":"bytes32"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"uint256",
             "name":"addAmount",
             "type":"uint256"
          }
       ],
       "name":"_addReserves",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"uint256",
             "name":"reduceAmount",
             "type":"uint256"
          }
       ],
       "name":"_reduceReserves",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"contract Bondtroller",
             "name":"newBondtroller",
             "type":"address"
          }
       ],
       "name":"_setBondtroller",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"contract InterestRateModel",
             "name":"newInterestRateModel",
             "type":"address"
          }
       ],
       "name":"_setInterestRateModel",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"uint256",
             "name":"newReserveFactorMantissa",
             "type":"uint256"
          }
       ],
       "name":"_setReserveFactor",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"address",
             "name":"",
             "type":"address"
          }
       ],
       "name":"accountTokens",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          
       ],
       "name":"accrualBlockNumber",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          
       ],
       "name":"accrueInterest",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          
       ],
       "name":"admin",
       "outputs":[
          {
             "internalType":"address payable",
             "name":"",
             "type":"address"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"address",
             "name":"owner",
             "type":"address"
          },
          {
             "internalType":"address",
             "name":"spender",
             "type":"address"
          }
       ],
       "name":"allowance",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"address",
             "name":"spender",
             "type":"address"
          },
          {
             "internalType":"uint256",
             "name":"amount",
             "type":"uint256"
          }
       ],
       "name":"approve",
       "outputs":[
          {
             "internalType":"bool",
             "name":"",
             "type":"bool"
          }
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"address",
             "name":"owner",
             "type":"address"
          }
       ],
       "name":"balanceOf",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"address",
             "name":"owner",
             "type":"address"
          }
       ],
       "name":"balanceOfUnderlying",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"address",
             "name":"owner",
             "type":"address"
          }
       ],
       "name":"balanceOfUnderlyingView",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          
       ],
       "name":"bondtroller",
       "outputs":[
          {
             "internalType":"contract Bondtroller",
             "name":"",
             "type":"address"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"address",
             "name":"account",
             "type":"address"
          }
       ],
       "name":"borrowBalanceCurrent",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"address",
             "name":"account",
             "type":"address"
          }
       ],
       "name":"borrowBalanceStored",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          
       ],
       "name":"borrowIndex",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          
       ],
       "name":"borrowRatePerBlock",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"address",
             "name":"borrower",
             "type":"address"
          },
          {
             "internalType":"uint256",
             "name":"borrowAmount",
             "type":"uint256"
          }
       ],
       "name":"borrowTo",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"borrowError",
             "type":"uint256"
          }
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          
       ],
       "name":"decimals",
       "outputs":[
          {
             "internalType":"uint8",
             "name":"",
             "type":"uint8"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          
       ],
       "name":"exchangeRateCurrent",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          
       ],
       "name":"exchangeRateStored",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"address",
             "name":"account",
             "type":"address"
          }
       ],
       "name":"getAccountSnapshot",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          },
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          },
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          },
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          
       ],
       "name":"getCash",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"address",
             "name":"account",
             "type":"address"
          }
       ],
       "name":"getEstimatedBorrowBalanceStored",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"accrual",
             "type":"uint256"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          
       ],
       "name":"getEstimatedBorrowIndex",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"bytes32",
             "name":"role",
             "type":"bytes32"
          }
       ],
       "name":"getRoleAdmin",
       "outputs":[
          {
             "internalType":"bytes32",
             "name":"",
             "type":"bytes32"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"address",
             "name":"newModerator",
             "type":"address"
          }
       ],
       "name":"grandModerator",
       "outputs":[
          
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"bytes32",
             "name":"role",
             "type":"bytes32"
          },
          {
             "internalType":"address",
             "name":"account",
             "type":"address"
          }
       ],
       "name":"grantRole",
       "outputs":[
          
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"bytes32",
             "name":"role",
             "type":"bytes32"
          },
          {
             "internalType":"address",
             "name":"account",
             "type":"address"
          }
       ],
       "name":"hasRole",
       "outputs":[
          {
             "internalType":"bool",
             "name":"",
             "type":"bool"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"address",
             "name":"underlying_",
             "type":"address"
          },
          {
             "internalType":"contract Bondtroller",
             "name":"bondtroller_",
             "type":"address"
          },
          {
             "internalType":"contract InterestRateModel",
             "name":"interestRateModel_",
             "type":"address"
          },
          {
             "internalType":"uint256",
             "name":"initialExchangeRateMantissa_",
             "type":"uint256"
          },
          {
             "internalType":"string",
             "name":"name_",
             "type":"string"
          },
          {
             "internalType":"string",
             "name":"symbol_",
             "type":"string"
          },
          {
             "internalType":"uint8",
             "name":"decimals_",
             "type":"uint8"
          },
          {
             "internalType":"address",
             "name":"admin_",
             "type":"address"
          }
       ],
       "name":"init",
       "outputs":[
          
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"address",
             "name":"underlying_",
             "type":"address"
          },
          {
             "internalType":"contract Bondtroller",
             "name":"comptroller_",
             "type":"address"
          },
          {
             "internalType":"contract InterestRateModel",
             "name":"interestRateModel_",
             "type":"address"
          },
          {
             "internalType":"uint256",
             "name":"initialExchangeRateMantissa_",
             "type":"uint256"
          },
          {
             "internalType":"string",
             "name":"name_",
             "type":"string"
          },
          {
             "internalType":"string",
             "name":"symbol_",
             "type":"string"
          },
          {
             "internalType":"uint8",
             "name":"decimals_",
             "type":"uint8"
          }
       ],
       "name":"initialize",
       "outputs":[
          
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"contract Bondtroller",
             "name":"bondtroller_",
             "type":"address"
          },
          {
             "internalType":"contract InterestRateModel",
             "name":"interestRateModel_",
             "type":"address"
          },
          {
             "internalType":"uint256",
             "name":"initialExchangeRateMantissa_",
             "type":"uint256"
          },
          {
             "internalType":"string",
             "name":"name_",
             "type":"string"
          },
          {
             "internalType":"string",
             "name":"symbol_",
             "type":"string"
          },
          {
             "internalType":"uint8",
             "name":"decimals_",
             "type":"uint8"
          }
       ],
       "name":"initialize",
       "outputs":[
          
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          
       ],
       "name":"interestRateModel",
       "outputs":[
          {
             "internalType":"contract InterestRateModel",
             "name":"",
             "type":"address"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          
       ],
       "name":"isCToken",
       "outputs":[
          {
             "internalType":"bool",
             "name":"",
             "type":"bool"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"address",
             "name":"minter",
             "type":"address"
          },
          {
             "internalType":"uint256",
             "name":"mintAmount",
             "type":"uint256"
          }
       ],
       "name":"mintTo",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"err",
             "type":"uint256"
          },
          {
             "internalType":"uint256",
             "name":"mintedAmount",
             "type":"uint256"
          }
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          
       ],
       "name":"name",
       "outputs":[
          {
             "internalType":"string",
             "name":"",
             "type":"string"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          
       ],
       "name":"pendingAdmin",
       "outputs":[
          {
             "internalType":"address payable",
             "name":"",
             "type":"address"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          
       ],
       "name":"primaryIndexToken",
       "outputs":[
          {
             "internalType":"address",
             "name":"",
             "type":"address"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          
       ],
       "name":"protocolSeizeShareMantissa",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"address",
             "name":"redeemer",
             "type":"address"
          },
          {
             "internalType":"uint256",
             "name":"redeemTokens",
             "type":"uint256"
          }
       ],
       "name":"redeemTo",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"redeemErr",
             "type":"uint256"
          }
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"address",
             "name":"redeemer",
             "type":"address"
          },
          {
             "internalType":"uint256",
             "name":"redeemAmount",
             "type":"uint256"
          }
       ],
       "name":"redeemUnderlyingTo",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"redeemUnderlyingError",
             "type":"uint256"
          }
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"bytes32",
             "name":"role",
             "type":"bytes32"
          },
          {
             "internalType":"address",
             "name":"account",
             "type":"address"
          }
       ],
       "name":"renounceRole",
       "outputs":[
          
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"address",
             "name":"payer",
             "type":"address"
          },
          {
             "internalType":"address",
             "name":"borrower",
             "type":"address"
          },
          {
             "internalType":"uint256",
             "name":"repayAmount",
             "type":"uint256"
          }
       ],
       "name":"repayTo",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"repayBorrowError",
             "type":"uint256"
          },
          {
             "internalType":"uint256",
             "name":"amountRepayed",
             "type":"uint256"
          }
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          
       ],
       "name":"reserveFactorMantissa",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"address",
             "name":"moderator",
             "type":"address"
          }
       ],
       "name":"revokeModerator",
       "outputs":[
          
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"bytes32",
             "name":"role",
             "type":"bytes32"
          },
          {
             "internalType":"address",
             "name":"account",
             "type":"address"
          }
       ],
       "name":"revokeRole",
       "outputs":[
          
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"address",
             "name":"_primaryIndexToken",
             "type":"address"
          }
       ],
       "name":"setPrimaryIndexToken",
       "outputs":[
          
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"uint256",
             "name":"reserveFactorMantissa",
             "type":"uint256"
          }
       ],
       "name":"setReserveFactor",
       "outputs":[
          
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          
       ],
       "name":"supplyRatePerBlock",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"bytes4",
             "name":"interfaceId",
             "type":"bytes4"
          }
       ],
       "name":"supportsInterface",
       "outputs":[
          {
             "internalType":"bool",
             "name":"",
             "type":"bool"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"contract EIP20NonStandardInterface",
             "name":"token",
             "type":"address"
          }
       ],
       "name":"sweepToken",
       "outputs":[
          
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          
       ],
       "name":"symbol",
       "outputs":[
          {
             "internalType":"string",
             "name":"",
             "type":"string"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          
       ],
       "name":"totalBorrows",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          
       ],
       "name":"totalBorrowsCurrent",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          
       ],
       "name":"totalReserves",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          
       ],
       "name":"totalSupply",
       "outputs":[
          {
             "internalType":"uint256",
             "name":"",
             "type":"uint256"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"address",
             "name":"dst",
             "type":"address"
          },
          {
             "internalType":"uint256",
             "name":"amount",
             "type":"uint256"
          }
       ],
       "name":"transfer",
       "outputs":[
          {
             "internalType":"bool",
             "name":"",
             "type":"bool"
          }
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"address payable",
             "name":"newAdmin",
             "type":"address"
          }
       ],
       "name":"transferAdminship",
       "outputs":[
          
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          {
             "internalType":"address",
             "name":"src",
             "type":"address"
          },
          {
             "internalType":"address",
             "name":"dst",
             "type":"address"
          },
          {
             "internalType":"uint256",
             "name":"amount",
             "type":"uint256"
          }
       ],
       "name":"transferFrom",
       "outputs":[
          {
             "internalType":"bool",
             "name":"",
             "type":"bool"
          }
       ],
       "stateMutability":"nonpayable",
       "type":"function"
    },
    {
       "inputs":[
          
       ],
       "name":"underlying",
       "outputs":[
          {
             "internalType":"address",
             "name":"",
             "type":"address"
          }
       ],
       "stateMutability":"view",
       "type":"function"
    }
 ]