```\n        function _mintInternal(address _receiver, uint _balanceIncreased, uint _totalAsset\n             ) internal returns (uint mintShares) {\n                unfreezeTime[_receiver] = block.timestamp + mintFreezeInterval;\n        if (freezeBuckets.interval > 0) {\n             FreezeBuckets.addToFreezeBuckets(freezeBuckets, _balanceIncreased.toUint96());\n        }\n                 uint _totalSupply = totalSupply();\n                    if (_totalAsset == 0 || _totalSupply == 0) {\n                     mintShares = _balanceIncreased + _totalAsset;\n                 } else {\n             mintShares = (_balanceIncreased * _totalSupply) / _totalAsset;\n             }\n            if (mintShares == 0) {\n        revert ZeroAmount();\n        }\n        _mint(_receiver, mintShares);\n        }\n```\n