> For the complete documentation index, see [llms.txt](https://resource.optiswap.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://resource.optiswap.pro/hoge/exclusions.md).

# Exclusions

An internal function at the very bottom of HOGE's contract is called every time a transfer is performed, to find the correct denominator:

```
    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);
        }
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
```

The iteration in the middle of the function is a glaring red flag.

The contract's author attempted to establish a parallel bookkeeping system exempt from receiving reflections. In doing so, they introduced linear complexity growth.
