`_distribute()` function in RFPSimpleStrategy contract has wrong requirement causing DOS
The function _distribute():\\n```\\n    function _distribute(address[] memory, bytes memory, address _sender)\\n        internal\\n        virtual\\n        override\\n        onlyInactivePool\\n        onlyPoolManager(_sender)\\n    {\\n        // rest of code\\n\\n        IAllo.Pool memory pool = allo.getPool(poolId);\\n        Milestone storage milestone = milestones[upcomingMilestone];\\n        Recipient memory recipient = _recipients[acceptedRecipientId];\\n\\n        if (recipient.proposalBid > poolAmount) revert NOT_ENOUGH_FUNDS();\\n\\n        uint256 amount = (recipient.proposalBid * milestone.amountPercentage) / 1e18;\\n\\n        poolAmount -= amount;//<@@ NOTICE the poolAmount get decrease over time\\n\\n        _transferAmount(pool.token, recipient.recipientAddress, amount);\\n\\n        // rest of code\\n    }\\n```\\n\\nLet's suppose this scenario:\\nPool manager funding the contract with 100 token, making `poolAmount` variable equal to 100\\nPool manager set 5 equal milestones with 20% each\\nSelected recipient's proposal bid is 100, making `recipients[acceptedRecipientId].proposalBid` variable equal to 100\\nAfter milestone 1 done, pool manager pays recipient using `distribute()`. Value of variables after: `poolAmount = 80 ,recipients[acceptedRecipientId].proposalBid = 100`\\nAfter milestone 2 done, pool manager will get DOS trying to pay recipient using `distribute()` because of this line:\\n```\\nif (recipient.proposalBid > poolAmount) revert NOT_ENOUGH_FUNDS();\\n```\\n
```\\n-        if (recipient.proposalBid > poolAmount) revert NOT_ENOUGH_FUNDS();\\n+        if ((recipient.proposalBid * milestone.amountPercentage) / 1e18 > poolAmount) revert NOT_ENOUGH_FUNDS();\\n```\\n
This behaviour will cause DOS when distributing the 2nd milestone or higher
```\\n    function _distribute(address[] memory, bytes memory, address _sender)\\n        internal\\n        virtual\\n        override\\n        onlyInactivePool\\n        onlyPoolManager(_sender)\\n    {\\n        // rest of code\\n\\n        IAllo.Pool memory pool = allo.getPool(poolId);\\n        Milestone storage milestone = milestones[upcomingMilestone];\\n        Recipient memory recipient = _recipients[acceptedRecipientId];\\n\\n        if (recipient.proposalBid > poolAmount) revert NOT_ENOUGH_FUNDS();\\n\\n        uint256 amount = (recipient.proposalBid * milestone.amountPercentage) / 1e18;\\n\\n        poolAmount -= amount;//<@@ NOTICE the poolAmount get decrease over time\\n\\n        _transferAmount(pool.token, recipient.recipientAddress, amount);\\n\\n        // rest of code\\n    }\\n```\\n