homoDn:= function(G) local a,b,aims,bims,maps,homos,abims; a:=G.1; b:=G.2; aims:=Filtered(Elements(G), i -> IsInt(Order(a) / Order(i))); bims:=Filtered(Elements(G), i -> IsInt(Order(b) / Order(i))); abims:= Cartesian(aims,bims); maps:= List(abims, i -> GroupHomomorphismByImages(G,G,[a,b],i)); homos:= Filtered(maps, i -> i <> fail); return homos; end;