static Set aggressivelyCollectPossibleMD5s(S s) { new HashSet ids; aggressivelyCollectPossibleMD5s(s, ids); ret ids; } static void aggressivelyCollectPossibleMD5s(S s, Set out) { if (s == null) ret; for i over s: { int j = i; while (j < l(s) && isLowerHexChar(s.charAt(j))) ++j; if (j-i == 32) addIfPossibleMD5(out, substring(s, i, j)); i = j; } }