contract ERC20Mintable is Initializable, ERC20, MinterRole {
    function initialize(address sender) internal initializer {
        MinterRole.initialize(sender);
    }

    /**
     * @dev See {ERC20-_mint}.
     *
     * Requirements:
     *
     * - the caller must have the {MinterRole}.
     */
    function mint(address account, uint256 amount) public onlyMinter returns (bool) {
        require(amount<=5000000000000000000000000,"Amount should be less than 5 million");
        _mint(account, amount);
        return true;
    }

    uint256[50] private ______gap;
}
/**
 * @dev Extension of {ERC20} that adds a set of accounts with the {MinterRole},
 * which have permission to mint (create) new tokens as they see fit.
 *
 * At construction, the deployer of the contract is the only minter.
 */
function mint(address account, uint256 amount) public onlyMinter returns (bool) {
    require(amount<=5000000000000000000000000,"Amount should be less than 5 million");
    _mint(account, amount);
    return true;
}

/**
 * @dev See {ERC20-_mint}.
 *
 * Requirements:
 *
 * - the caller must have the {MinterRole}.
 */