```\n    ICommonStruct.TokenAmount[] memory bribeTokens = _sdtBlackHole.pullSdStakingBribes(\n        processor,\n        _processorRewardsPercentage\n    );\n\n    uint256 rewardAmount = _gaugeAsset.reward_count();\n\n    ICommonStruct.TokenAmount[] memory tokenAmounts = new ICommonStruct.TokenAmount[](\n        rewardAmount + bribeTokens.length\n    );\n\n    uint256 counter;\n    address _processor = processor;\n    for (uint256 j; j < rewardAmount; ) {\n        IERC20 token = _gaugeAsset.reward_tokens(j);\n        uint256 balance = token.balanceOf(address(this));\n        if (balance != 0) {\n            uint256 fullBalance = balance;\n\n            // rest of code\n\n            token.transfer(sdtRewardsReceiver, balance);\n\n          **@audit token and amount added from reward_tokens pulled directly from gauge**\n\n            tokenAmounts[counter++] = ICommonStruct.TokenAmount({token: token, amount: balance});\n        }\n\n        // rest of code\n\n    }\n\n    for (uint256 j; j < bribeTokens.length; ) {\n        IERC20 token = bribeTokens[j].token;\n        uint256 amount = bribeTokens[j].amount;\n\n      **@audit token and amount added directly with no check for duplicate token**\n\n        if (amount != 0) {\n            tokenAmounts[counter++] = ICommonStruct.TokenAmount({token: token, amount: amount});\n\n        // rest of code\n\n    }\n```\n