private final void fixEntry(PatternEntry var1) throws ParseException {
if (this.lastEntry != null && var1.chars.equals(this.lastEntry.chars) && var1.extension.equals(this.lastEntry.extension)) {
if (var1.strength != 3 && var1.strength != -2) {
throw new ParseException("The entries " + this.lastEntry + " and " + var1 + " are adjacent in the rules, but have conflicting " + "strengths: A character can't be unequal to itself.", -1);
}
} else {
boolean var2 = true;
if (var1.strength != -2) {
int var3 = -1;
if (var1.chars.length() == 1) {
char var4 = var1.chars.charAt(0);
int var5 = var4 >> 3;
byte var6 = this.statusArray[var5];
byte var7 = (byte)(1 << (var4 & 7));
if (var6 != 0 && (var6 & var7) != 0) {
var3 = this.patterns.lastIndexOf(var1);
} else {
this.statusArray[var5] = (byte)(var6 | var7);
}
} else {
var3 = this.patterns.lastIndexOf(var1);
}
if (var3 != -1) {
this.patterns.remove(var3);
}
this.excess.setLength(0);
int var8 = this.findLastEntry(this.lastEntry, this.excess);
if (this.excess.length() != 0) {
var1.extension = this.excess + var1.extension;
if (var8 != this.patterns.size()) {
this.lastEntry = this.saveEntry;
var2 = false;
}
}
if (var8 == this.patterns.size()) {
this.patterns.add(var1);
this.saveEntry = var1;
} else {
this.patterns.add(var8, var1);
}
}
if (var2) {
this.lastEntry = var1;
}
}
}
private final int findLastEntry(PatternEntry var1, StringBuffer var2) throws ParseException {