contract ProfitToken is ERC20, ERC20Burnable, ERC20Permit, ERC20Votes {
    constructor(address developmentFund) ERC20('Stability', 'PROFIT') ERC20Permit('Stability') {
        // Mint entire supply to Stability Development Fund for liquidity bootstrapping.
        _mint(developmentFund, 1000000 * 10 ** decimals());
    }

    // Overriding internal functions for ERC20Votes support
    function _afterTokenTransfer(address from, address to, uint256 amount) internal override(ERC20, ERC20Votes) {
        super._afterTokenTransfer(from, to, amount);
    }

    function _mint(address to, uint256 amount) internal override(ERC20, ERC20Votes) {
        super._mint(to, amount);
    }

    function _burn(address account, uint256 amount) internal override(ERC20, ERC20Votes) {
        super._burn(account, amount);
    }
}
// Stability protocol native token that represents ownership shares of Stability DAO.
// Token holders are entitled to a share of profits generated by the protocol and to participation in DAO governance.
function _afterTokenTransfer(address from, address to, uint256 amount) internal override(ERC20, ERC20Votes) {
    super._afterTokenTransfer(from, to, amount);
}

// Overriding internal functions for ERC20Votes support