```\nFile: TreasuryAction.sol\n    function _executeRebalance(uint16 currencyId) private {\n        IPrimeCashHoldingsOracle oracle = PrimeCashExchangeRate.getPrimeCashHoldingsOracle(currencyId);\n        uint8[] memory rebalancingTargets = _getRebalancingTargets(currencyId, oracle.holdings());\n        (RebalancingData memory data) = REBALANCING_STRATEGY.calculateRebalance(oracle, rebalancingTargets);\n\n        (/* */, uint256 totalUnderlyingValueBefore) = oracle.getTotalUnderlyingValueStateful();\n\n        // Process redemptions first\n        Token memory underlyingToken = TokenHandler.getUnderlyingToken(currencyId);\n        TokenHandler.executeMoneyMarketRedemptions(underlyingToken, data.redeemData);\n\n        // Process deposits\n        _executeDeposits(underlyingToken, data.depositData);\n\n        (/* */, uint256 totalUnderlyingValueAfter) = oracle.getTotalUnderlyingValueStateful();\n\n        int256 underlyingDelta = totalUnderlyingValueBefore.toInt().sub(totalUnderlyingValueAfter.toInt());\n        require(underlyingDelta.abs() < Constants.REBALANCING_UNDERLYING_DELTA);\n    }\n```\n