```\n/// @notice returns the Protocol-Controlled Value, User-circulating FEI, and\n/// Protocol Equity.\n/// @return protocolControlledValue : the total USD value of all assets held\n/// by the protocol.\n/// @return userCirculatingFei : the number of FEI not owned by the protocol.\n/// @return protocolEquity : the difference between PCV and user circulating FEI.\n/// If there are more circulating FEI than $ in the PCV, equity is 0.\n/// @return validityStatus : the current oracle validity status (false if any\n/// of the oracles for tokens held in the PCV are invalid, or if\n/// this contract is paused).\nfunction pcvStats() public override view returns (\n  uint256 protocolControlledValue,\n  uint256 userCirculatingFei,\n  int256 protocolEquity,\n  bool validityStatus\n) {\n    uint256 \_protocolControlledFei = 0;\n    validityStatus = !paused();\n\n    // For each token// rest of code\n    for (uint256 i = 0; i < tokensInPcv.length(); i++) {\n        address \_token = tokensInPcv.at(i);\n        uint256 \_totalTokenBalance  = 0;\n\n        // For each deposit// rest of code\n        for (uint256 j = 0; j < tokenToDeposits[\_token].length(); j++) {\n            address \_deposit = tokenToDeposits[\_token].at(j);\n\n            // ignore deposits that are excluded by the Guardian\n            if (!excludedDeposits[\_deposit]) {\n                // read the deposit, and increment token balance/protocol fei\n                (uint256 \_depositBalance, uint256 \_depositFei) = IPCVDepositBalances(\_deposit).resistantBalanceAndFei();\n                \_totalTokenBalance += \_depositBalance;\n                \_protocolControlledFei += \_depositFei;\n            }\n        }\n\n        // If the protocol holds non-zero balance of tokens, fetch the oracle price to\n        // increment PCV by \_totalTokenBalance \* oracle price USD.\n        if (\_totalTokenBalance != 0) {\n            (Decimal.D256 memory \_oraclePrice, bool \_oracleValid) = IOracle(tokenToOracle[\_token]).read();\n            if (!\_oracleValid) {\n                validityStatus = false;\n            }\n            protocolControlledValue += \_oraclePrice.mul(\_totalTokenBalance).asUint256();\n        }\n    }\n\n    userCirculatingFei = fei().totalSupply() - \_protocolControlledFei;\n    protocolEquity = int256(protocolControlledValue) - int256(userCirculatingFei);\n}\n```\n