in lucene/analysis/common/src/java/org/apache/lucene/analysis/el/GreekStemmer.java [782:878]
private int rule21(char[] s, int len) {
if (len > 9 && endsWith(s, len, "ιοντουσαν")) return len - 9;
if (len > 8
&& (endsWith(s, len, "ιομασταν")
|| endsWith(s, len, "ιοσασταν")
|| endsWith(s, len, "ιουμαστε")
|| endsWith(s, len, "οντουσαν"))) return len - 8;
if (len > 7
&& (endsWith(s, len, "ιεμαστε")
|| endsWith(s, len, "ιεσαστε")
|| endsWith(s, len, "ιομουνα")
|| endsWith(s, len, "ιοσαστε")
|| endsWith(s, len, "ιοσουνα")
|| endsWith(s, len, "ιουνται")
|| endsWith(s, len, "ιουνταν")
|| endsWith(s, len, "ηθηκατε")
|| endsWith(s, len, "ομασταν")
|| endsWith(s, len, "οσασταν")
|| endsWith(s, len, "ουμαστε"))) return len - 7;
if (len > 6
&& (endsWith(s, len, "ιομουν")
|| endsWith(s, len, "ιονταν")
|| endsWith(s, len, "ιοσουν")
|| endsWith(s, len, "ηθειτε")
|| endsWith(s, len, "ηθηκαν")
|| endsWith(s, len, "ομουνα")
|| endsWith(s, len, "οσαστε")
|| endsWith(s, len, "οσουνα")
|| endsWith(s, len, "ουνται")
|| endsWith(s, len, "ουνταν")
|| endsWith(s, len, "ουσατε"))) return len - 6;
if (len > 5
&& (endsWith(s, len, "αγατε")
|| endsWith(s, len, "ιεμαι")
|| endsWith(s, len, "ιεται")
|| endsWith(s, len, "ιεσαι")
|| endsWith(s, len, "ιοταν")
|| endsWith(s, len, "ιουμα")
|| endsWith(s, len, "ηθεισ")
|| endsWith(s, len, "ηθουν")
|| endsWith(s, len, "ηκατε")
|| endsWith(s, len, "ησατε")
|| endsWith(s, len, "ησουν")
|| endsWith(s, len, "ομουν")
|| endsWith(s, len, "ονται")
|| endsWith(s, len, "ονταν")
|| endsWith(s, len, "οσουν")
|| endsWith(s, len, "ουμαι")
|| endsWith(s, len, "ουσαν"))) return len - 5;
if (len > 4
&& (endsWith(s, len, "αγαν")
|| endsWith(s, len, "αμαι")
|| endsWith(s, len, "ασαι")
|| endsWith(s, len, "αται")
|| endsWith(s, len, "ειτε")
|| endsWith(s, len, "εσαι")
|| endsWith(s, len, "εται")
|| endsWith(s, len, "ηδεσ")
|| endsWith(s, len, "ηδων")
|| endsWith(s, len, "ηθει")
|| endsWith(s, len, "ηκαν")
|| endsWith(s, len, "ησαν")
|| endsWith(s, len, "ησει")
|| endsWith(s, len, "ησεσ")
|| endsWith(s, len, "ομαι")
|| endsWith(s, len, "οταν"))) return len - 4;
if (len > 3
&& (endsWith(s, len, "αει")
|| endsWith(s, len, "εισ")
|| endsWith(s, len, "ηθω")
|| endsWith(s, len, "ησω")
|| endsWith(s, len, "ουν")
|| endsWith(s, len, "ουσ"))) return len - 3;
if (len > 2
&& (endsWith(s, len, "αν")
|| endsWith(s, len, "ασ")
|| endsWith(s, len, "αω")
|| endsWith(s, len, "ει")
|| endsWith(s, len, "εσ")
|| endsWith(s, len, "ησ")
|| endsWith(s, len, "οι")
|| endsWith(s, len, "οσ")
|| endsWith(s, len, "ου")
|| endsWith(s, len, "υσ")
|| endsWith(s, len, "ων"))) return len - 2;
if (len > 1 && endsWithVowel(s, len)) return len - 1;
return len;
}