822 lines
27 KiB
Java
Executable File
822 lines
27 KiB
Java
Executable File
package rs.config;
|
|
|
|
import rs.stream.Stream;
|
|
import rs.stream.StreamLoader;// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
|
// Jad home page: http://www.kpdus.com/jad.html
|
|
// Decompiler options: packimports(3)
|
|
|
|
public final class Censor {
|
|
|
|
public static void loadConfig(StreamLoader streamLoader) {
|
|
Stream stream = new Stream(streamLoader.getDataForName("fragmentsenc.txt"));
|
|
Stream stream_1 = new Stream(streamLoader.getDataForName("badenc.txt"));
|
|
Stream stream_2 = new Stream(streamLoader.getDataForName("domainenc.txt"));
|
|
Stream stream_3 = new Stream(streamLoader.getDataForName("tldlist.txt"));
|
|
readValues(stream, stream_1, stream_2, stream_3);
|
|
}
|
|
|
|
private static void readValues(Stream stream, Stream stream_1, Stream stream_2, Stream stream_3) {
|
|
readBadEnc(stream_1);
|
|
readDomainEnc(stream_2);
|
|
readFragmentsEnc(stream);
|
|
readTldList(stream_3);
|
|
}
|
|
|
|
private static void readTldList(Stream stream) {
|
|
int i = stream.readDWord();
|
|
aCharArrayArray624 = new char[i][];
|
|
anIntArray625 = new int[i];
|
|
for (int j = 0; j < i; j++) {
|
|
anIntArray625[j] = stream.readUnsignedByte();
|
|
char ac[] = new char[stream.readUnsignedByte()];
|
|
for (int k = 0; k < ac.length; k++)
|
|
ac[k] = (char) stream.readUnsignedByte();
|
|
|
|
aCharArrayArray624[j] = ac;
|
|
}
|
|
|
|
}
|
|
|
|
private static void readBadEnc(Stream stream) {
|
|
int j = stream.readDWord();
|
|
aCharArrayArray621 = new char[j][];
|
|
aByteArrayArrayArray622 = new byte[j][][];
|
|
method493(stream, aCharArrayArray621, aByteArrayArrayArray622);
|
|
}
|
|
|
|
private static void readDomainEnc(Stream stream) {
|
|
int i = stream.readDWord();
|
|
aCharArrayArray623 = new char[i][];
|
|
method494(aCharArrayArray623, stream);
|
|
}
|
|
|
|
private static void readFragmentsEnc(Stream stream) {
|
|
anIntArray620 = new int[stream.readDWord()];
|
|
for (int i = 0; i < anIntArray620.length; i++)
|
|
anIntArray620[i] = stream.readUnsignedWord();
|
|
}
|
|
|
|
private static void method493(Stream stream, char ac[][], byte abyte0[][][]) {
|
|
for (int j = 0; j < ac.length; j++) {
|
|
char ac1[] = new char[stream.readUnsignedByte()];
|
|
for (int k = 0; k < ac1.length; k++)
|
|
ac1[k] = (char) stream.readUnsignedByte();
|
|
|
|
ac[j] = ac1;
|
|
byte abyte1[][] = new byte[stream.readUnsignedByte()][2];
|
|
for (int l = 0; l < abyte1.length; l++) {
|
|
abyte1[l][0] = (byte) stream.readUnsignedByte();
|
|
abyte1[l][1] = (byte) stream.readUnsignedByte();
|
|
}
|
|
|
|
if (abyte1.length > 0)
|
|
abyte0[j] = abyte1;
|
|
}
|
|
|
|
}
|
|
|
|
private static void method494(char ac[][], Stream stream) {
|
|
for (int j = 0; j < ac.length; j++) {
|
|
char ac1[] = new char[stream.readUnsignedByte()];
|
|
for (int k = 0; k < ac1.length; k++)
|
|
ac1[k] = (char) stream.readUnsignedByte();
|
|
|
|
ac[j] = ac1;
|
|
}
|
|
|
|
}
|
|
|
|
private static void method495(char ac[]) {
|
|
int i = 0;
|
|
for (int j = 0; j < ac.length; j++) {
|
|
if (method496(ac[j]))
|
|
ac[i] = ac[j];
|
|
else
|
|
ac[i] = ' ';
|
|
if (i == 0 || ac[i] != ' ' || ac[i - 1] != ' ')
|
|
i++;
|
|
}
|
|
for (int k = i; k < ac.length; k++)
|
|
ac[k] = ' ';
|
|
|
|
}
|
|
|
|
private static boolean method496(char c) {
|
|
return c >= ' ' && c <= '\177' || c == ' ' || c == '\n' || c == '\t' || c == '\243' || c == '\u20AC';
|
|
}
|
|
|
|
public static String doCensor(String s) {
|
|
char ac[] = s.toCharArray();
|
|
method495(ac);
|
|
String s1 = (new String(ac)).trim();
|
|
ac = s1.toLowerCase().toCharArray();
|
|
String s2 = s1.toLowerCase();
|
|
method505(ac);
|
|
method500(ac);
|
|
method501(ac);
|
|
method514(ac);
|
|
for (int j = 0; j < exceptions.length; j++) {
|
|
for (int k = -1; (k = s2.indexOf(exceptions[j], k + 1)) != -1;) {
|
|
char ac1[] = exceptions[j].toCharArray();
|
|
System.arraycopy(ac1, 0, ac, k, ac1.length);
|
|
|
|
}
|
|
|
|
}
|
|
method498(s1.toCharArray(), ac);
|
|
method499(ac);
|
|
//return (new String(ac)).trim(); //xxx chat filter, return s to avoid
|
|
return s;
|
|
}
|
|
|
|
private static void method498(char ac[], char ac1[]) {
|
|
for (int j = 0; j < ac.length; j++)
|
|
if (ac1[j] != '*' && isUpperCaseLetter(ac[j]))
|
|
ac1[j] = ac[j];
|
|
}
|
|
|
|
private static void method499(char ac[]) {
|
|
boolean flag = true;
|
|
for (int j = 0; j < ac.length; j++) {
|
|
char c = ac[j];
|
|
if (isLetter(c)) {
|
|
if (flag) {
|
|
if (isLowerCaseLetter(c))
|
|
flag = false;
|
|
} else if (isUpperCaseLetter(c))
|
|
ac[j] = (char) ((c + 97) - 65);
|
|
} else {
|
|
flag = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
private static void method500(char ac[]) {
|
|
for (int i = 0; i < 2; i++) {
|
|
for (int j = aCharArrayArray621.length - 1; j >= 0; j--)
|
|
method509(aByteArrayArrayArray622[j], ac, aCharArrayArray621[j]);
|
|
|
|
}
|
|
}
|
|
|
|
private static void method501(char ac[]) {
|
|
char ac1[] = ac.clone();
|
|
char ac2[] = {
|
|
'(', 'a', ')'
|
|
};
|
|
method509(null, ac1, ac2);
|
|
char ac3[] = ac.clone();
|
|
char ac4[] = {
|
|
'd', 'o', 't'
|
|
};
|
|
method509(null, ac3, ac4);
|
|
for (int i = aCharArrayArray623.length - 1; i >= 0; i--)
|
|
method502(ac, aCharArrayArray623[i], ac3, ac1);
|
|
}
|
|
|
|
private static void method502(char ac[], char ac1[], char ac2[], char ac3[]) {
|
|
if (ac1.length > ac.length)
|
|
return;
|
|
int j;
|
|
for (int k = 0; k <= ac.length - ac1.length; k += j) {
|
|
int l = k;
|
|
int i1 = 0;
|
|
j = 1;
|
|
while (l < ac.length) {
|
|
int j1;
|
|
char c = ac[l];
|
|
char c1 = '\0';
|
|
if (l + 1 < ac.length)
|
|
c1 = ac[l + 1];
|
|
if (i1 < ac1.length && (j1 = method511(c, ac1[i1], c1)) > 0) {
|
|
l += j1;
|
|
i1++;
|
|
continue;
|
|
}
|
|
if (i1 == 0)
|
|
break;
|
|
if ((j1 = method511(c, ac1[i1 - 1], c1)) > 0) {
|
|
l += j1;
|
|
if (i1 == 1)
|
|
j++;
|
|
continue;
|
|
}
|
|
if (i1 >= ac1.length || !method517(c))
|
|
break;
|
|
l++;
|
|
}
|
|
if (i1 >= ac1.length) {
|
|
boolean flag1 = false;
|
|
int k1 = method503(ac, ac3, k);
|
|
int l1 = method504(ac2, l - 1, ac);
|
|
if (k1 > 2 || l1 > 2)
|
|
flag1 = true;
|
|
if (flag1) {
|
|
for (int i2 = k; i2 < l; i2++)
|
|
ac[i2] = '*';
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
private static int method503(char ac[], char ac1[], int j) {
|
|
if (j == 0)
|
|
return 2;
|
|
for (int k = j - 1; k >= 0; k--) {
|
|
if (!method517(ac[k]))
|
|
break;
|
|
if (ac[k] == '@')
|
|
return 3;
|
|
}
|
|
|
|
int l = 0;
|
|
for (int i1 = j - 1; i1 >= 0; i1--) {
|
|
if (!method517(ac1[i1]))
|
|
break;
|
|
if (ac1[i1] == '*')
|
|
l++;
|
|
}
|
|
|
|
if (l >= 3)
|
|
return 4;
|
|
return !method517(ac[j - 1]) ? 0 : 1;
|
|
}
|
|
|
|
private static int method504(char ac[], int i, char ac1[]) {
|
|
if (i + 1 == ac1.length)
|
|
return 2;
|
|
for (int j = i + 1; j < ac1.length; j++) {
|
|
if (!method517(ac1[j]))
|
|
break;
|
|
if (ac1[j] == '.' || ac1[j] == ',')
|
|
return 3;
|
|
}
|
|
int k = 0;
|
|
for (int l = i + 1; l < ac1.length; l++) {
|
|
if (!method517(ac[l]))
|
|
break;
|
|
if (ac[l] == '*')
|
|
k++;
|
|
}
|
|
|
|
if (k >= 3)
|
|
return 4;
|
|
return !method517(ac1[i + 1]) ? 0 : 1;
|
|
}
|
|
|
|
private static void method505(char ac[]) {
|
|
char ac1[] = ac.clone();
|
|
char ac2[] = {
|
|
'd', 'o', 't'
|
|
};
|
|
method509(null, ac1, ac2);
|
|
char ac3[] = ac.clone();
|
|
char ac4[] = {
|
|
's', 'l', 'a', 's', 'h'
|
|
};
|
|
method509(null, ac3, ac4);
|
|
for (int i = 0; i < aCharArrayArray624.length; i++)
|
|
method506(ac3, aCharArrayArray624[i], anIntArray625[i], ac1, ac);
|
|
|
|
}
|
|
|
|
private static void method506(char ac[], char ac1[], int i, char ac2[], char ac3[]) {
|
|
if (ac1.length > ac3.length)
|
|
return;
|
|
int j;
|
|
for (int k = 0; k <= ac3.length - ac1.length; k += j) {
|
|
int l = k;
|
|
int i1 = 0;
|
|
j = 1;
|
|
while (l < ac3.length) {
|
|
int j1;
|
|
char c = ac3[l];
|
|
char c1 = '\0';
|
|
if (l + 1 < ac3.length)
|
|
c1 = ac3[l + 1];
|
|
if (i1 < ac1.length && (j1 = method511(c, ac1[i1], c1)) > 0) {
|
|
l += j1;
|
|
i1++;
|
|
continue;
|
|
}
|
|
if (i1 == 0)
|
|
break;
|
|
if ((j1 = method511(c, ac1[i1 - 1], c1)) > 0) {
|
|
l += j1;
|
|
if (i1 == 1)
|
|
j++;
|
|
continue;
|
|
}
|
|
if (i1 >= ac1.length || !method517(c))
|
|
break;
|
|
l++;
|
|
}
|
|
if (i1 >= ac1.length) {
|
|
boolean flag1 = false;
|
|
int k1 = method507(ac3, k, ac2);
|
|
int l1 = method508(ac3, ac, l - 1);
|
|
if (i == 1 && k1 > 0 && l1 > 0)
|
|
flag1 = true;
|
|
if (i == 2 && (k1 > 2 && l1 > 0 || k1 > 0 && l1 > 2))
|
|
flag1 = true;
|
|
if (i == 3 && k1 > 0 && l1 > 2)
|
|
flag1 = true;
|
|
if (flag1) {
|
|
int i2 = k;
|
|
int j2 = l - 1;
|
|
if (k1 > 2) {
|
|
if (k1 == 4) {
|
|
boolean flag2 = false;
|
|
for (int l2 = i2 - 1; l2 >= 0; l2--)
|
|
if (flag2) {
|
|
if (ac2[l2] != '*')
|
|
break;
|
|
i2 = l2;
|
|
} else if (ac2[l2] == '*') {
|
|
i2 = l2;
|
|
flag2 = true;
|
|
}
|
|
|
|
}
|
|
boolean flag3 = false;
|
|
for (int i3 = i2 - 1; i3 >= 0; i3--)
|
|
if (flag3) {
|
|
if (method517(ac3[i3]))
|
|
break;
|
|
i2 = i3;
|
|
} else if (!method517(ac3[i3])) {
|
|
flag3 = true;
|
|
i2 = i3;
|
|
}
|
|
|
|
}
|
|
if (l1 > 2) {
|
|
if (l1 == 4) {
|
|
boolean flag4 = false;
|
|
for (int j3 = j2 + 1; j3 < ac3.length; j3++)
|
|
if (flag4) {
|
|
if (ac[j3] != '*')
|
|
break;
|
|
j2 = j3;
|
|
} else if (ac[j3] == '*') {
|
|
j2 = j3;
|
|
flag4 = true;
|
|
}
|
|
|
|
}
|
|
boolean flag5 = false;
|
|
for (int k3 = j2 + 1; k3 < ac3.length; k3++)
|
|
if (flag5) {
|
|
if (method517(ac3[k3]))
|
|
break;
|
|
j2 = k3;
|
|
} else if (!method517(ac3[k3])) {
|
|
flag5 = true;
|
|
j2 = k3;
|
|
}
|
|
|
|
}
|
|
for (int k2 = i2; k2 <= j2; k2++)
|
|
ac3[k2] = '*';
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private static int method507(char ac[], int j, char ac1[]) {
|
|
if (j == 0)
|
|
return 2;
|
|
for (int k = j - 1; k >= 0; k--) {
|
|
if (!method517(ac[k]))
|
|
break;
|
|
if (ac[k] == ',' || ac[k] == '.')
|
|
return 3;
|
|
}
|
|
|
|
int l = 0;
|
|
for (int i1 = j - 1; i1 >= 0; i1--) {
|
|
if (!method517(ac1[i1]))
|
|
break;
|
|
if (ac1[i1] == '*')
|
|
l++;
|
|
}
|
|
if (l >= 3)
|
|
return 4;
|
|
return !method517(ac[j - 1]) ? 0 : 1;
|
|
}
|
|
|
|
private static int method508(char ac[], char ac1[], int i) {
|
|
if (i + 1 == ac.length)
|
|
return 2;
|
|
for (int j = i + 1; j < ac.length; j++) {
|
|
if (!method517(ac[j]))
|
|
break;
|
|
if (ac[j] == '\\' || ac[j] == '/')
|
|
return 3;
|
|
}
|
|
|
|
int k = 0;
|
|
for (int l = i + 1; l < ac.length; l++) {
|
|
if (!method517(ac1[l]))
|
|
break;
|
|
if (ac1[l] == '*')
|
|
k++;
|
|
}
|
|
|
|
if (k >= 5)
|
|
return 4;
|
|
return !method517(ac[i + 1]) ? 0 : 1;
|
|
}
|
|
|
|
private static void method509(byte abyte0[][], char ac[], char ac1[]) {
|
|
if (ac1.length > ac.length)
|
|
return;
|
|
int j;
|
|
for (int k = 0; k <= ac.length - ac1.length; k += j) {
|
|
int l = k;
|
|
int i1 = 0;
|
|
int j1 = 0;
|
|
j = 1;
|
|
boolean flag1 = false;
|
|
boolean flag2 = false;
|
|
boolean flag3 = false;
|
|
while (l < ac.length && (!flag2 || !flag3)) {
|
|
int k1;
|
|
char c = ac[l];
|
|
char c2 = '\0';
|
|
if (l + 1 < ac.length)
|
|
c2 = ac[l + 1];
|
|
if (i1 < ac1.length && (k1 = method512(c2, c, ac1[i1])) > 0) {
|
|
if (k1 == 1 && isDigit(c))
|
|
flag2 = true;
|
|
if (k1 == 2 && (isDigit(c) || isDigit(c2)))
|
|
flag2 = true;
|
|
l += k1;
|
|
i1++;
|
|
continue;
|
|
}
|
|
if (i1 == 0)
|
|
break;
|
|
if ((k1 = method512(c2, c, ac1[i1 - 1])) > 0) {
|
|
l += k1;
|
|
if (i1 == 1)
|
|
j++;
|
|
continue;
|
|
}
|
|
if (i1 >= ac1.length || !method518(c))
|
|
break;
|
|
if (method517(c) && c != '\'')
|
|
flag1 = true;
|
|
if (isDigit(c))
|
|
flag3 = true;
|
|
l++;
|
|
if ((++j1 * 100) / (l - k) > 90)
|
|
break;
|
|
}
|
|
if (i1 >= ac1.length && (!flag2 || !flag3)) {
|
|
boolean flag4 = true;
|
|
if (!flag1) {
|
|
char c1 = ' ';
|
|
if (k - 1 >= 0)
|
|
c1 = ac[k - 1];
|
|
char c3 = ' ';
|
|
if (l < ac.length)
|
|
c3 = ac[l];
|
|
byte byte0 = method513(c1);
|
|
byte byte1 = method513(c3);
|
|
if (abyte0 != null && method510(byte0, abyte0, byte1))
|
|
flag4 = false;
|
|
} else {
|
|
boolean flag5 = false;
|
|
boolean flag6 = false;
|
|
if (k - 1 < 0 || method517(ac[k - 1]) && ac[k - 1] != '\'')
|
|
flag5 = true;
|
|
if (l >= ac.length || method517(ac[l]) && ac[l] != '\'')
|
|
flag6 = true;
|
|
if (!flag5 || !flag6) {
|
|
boolean flag7 = false;
|
|
int k2 = k - 2;
|
|
if (flag5)
|
|
k2 = k;
|
|
for (; !flag7 && k2 < l; k2++)
|
|
if (k2 >= 0 && (!method517(ac[k2]) || ac[k2] == '\'')) {
|
|
char ac2[] = new char[3];
|
|
int j3;
|
|
for (j3 = 0; j3 < 3; j3++) {
|
|
if (k2 + j3 >= ac.length || method517(ac[k2 + j3]) && ac[k2 + j3] != '\'')
|
|
break;
|
|
ac2[j3] = ac[k2 + j3];
|
|
}
|
|
|
|
boolean flag8 = true;
|
|
if (j3 == 0)
|
|
flag8 = false;
|
|
if (j3 < 3 && k2 - 1 >= 0 && (!method517(ac[k2 - 1]) || ac[k2 - 1] == '\''))
|
|
flag8 = false;
|
|
if (flag8 && !method523(ac2))
|
|
flag7 = true;
|
|
}
|
|
|
|
if (!flag7)
|
|
flag4 = false;
|
|
}
|
|
}
|
|
if (flag4) {
|
|
int l1 = 0;
|
|
int i2 = 0;
|
|
int j2 = -1;
|
|
for (int l2 = k; l2 < l; l2++)
|
|
if (isDigit(ac[l2]))
|
|
l1++;
|
|
else if (isLetter(ac[l2])) {
|
|
i2++;
|
|
j2 = l2;
|
|
}
|
|
|
|
if (j2 > -1)
|
|
l1 -= l - 1 - j2;
|
|
if (l1 <= i2) {
|
|
for (int i3 = k; i3 < l; i3++)
|
|
ac[i3] = '*';
|
|
|
|
} else {
|
|
j = 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
private static boolean method510(byte byte0, byte abyte0[][], byte byte2) {
|
|
int i = 0;
|
|
if (abyte0[i][0] == byte0 && abyte0[i][1] == byte2)
|
|
return true;
|
|
int j = abyte0.length - 1;
|
|
if (abyte0[j][0] == byte0 && abyte0[j][1] == byte2)
|
|
return true;
|
|
do {
|
|
int k = (i + j) / 2;
|
|
if (abyte0[k][0] == byte0 && abyte0[k][1] == byte2)
|
|
return true;
|
|
if (byte0 < abyte0[k][0] || byte0 == abyte0[k][0] && byte2 < abyte0[k][1])
|
|
j = k;
|
|
else
|
|
i = k;
|
|
} while (i != j && i + 1 != j);
|
|
return false;
|
|
}
|
|
|
|
private static int method511(char c, char c1, char c2) {
|
|
if (c1 == c)
|
|
return 1;
|
|
if (c1 == 'o' && c == '0')
|
|
return 1;
|
|
if (c1 == 'o' && c == '(' && c2 == ')')
|
|
return 2;
|
|
if (c1 == 'c' && (c == '(' || c == '<' || c == '['))
|
|
return 1;
|
|
if (c1 == 'e' && c == '\u20AC')
|
|
return 1;
|
|
if (c1 == 's' && c == '$')
|
|
return 1;
|
|
return c1 != 'l' || c != 'i' ? 0 : 1;
|
|
}
|
|
|
|
private static int method512(char c, char c1, char c2) {
|
|
if (c2 == c1)
|
|
return 1;
|
|
if (c2 >= 'a' && c2 <= 'm') {
|
|
if (c2 == 'a') {
|
|
if (c1 == '4' || c1 == '@' || c1 == '^')
|
|
return 1;
|
|
return c1 != '/' || c != '\\' ? 0 : 2;
|
|
}
|
|
if (c2 == 'b') {
|
|
if (c1 == '6' || c1 == '8')
|
|
return 1;
|
|
return (c1 != '1' || c != '3') && (c1 != 'i' || c != '3') ? 0 : 2;
|
|
}
|
|
if (c2 == 'c')
|
|
return c1 != '(' && c1 != '<' && c1 != '{' && c1 != '[' ? 0 : 1;
|
|
if (c2 == 'd')
|
|
return (c1 != '[' || c != ')') && (c1 != 'i' || c != ')') ? 0 : 2;
|
|
if (c2 == 'e')
|
|
return c1 != '3' && c1 != '\u20AC' ? 0 : 1;
|
|
if (c2 == 'f') {
|
|
if (c1 == 'p' && c == 'h')
|
|
return 2;
|
|
return c1 != '\243' ? 0 : 1;
|
|
}
|
|
if (c2 == 'g')
|
|
return c1 != '9' && c1 != '6' && c1 != 'q' ? 0 : 1;
|
|
if (c2 == 'h')
|
|
return c1 != '#' ? 0 : 1;
|
|
if (c2 == 'i')
|
|
return c1 != 'y' && c1 != 'l' && c1 != 'j' && c1 != '1' && c1 != '!' && c1 != ':' && c1 != ';' && c1 != '|' ? 0 : 1;
|
|
if (c2 == 'j')
|
|
return 0;
|
|
if (c2 == 'k')
|
|
return 0;
|
|
if (c2 == 'l')
|
|
return c1 != '1' && c1 != '|' && c1 != 'i' ? 0 : 1;
|
|
if (c2 == 'm')
|
|
return 0;
|
|
}
|
|
if (c2 >= 'n' && c2 <= 'z') {
|
|
if (c2 == 'n')
|
|
return 0;
|
|
if (c2 == 'o') {
|
|
if (c1 == '0' || c1 == '*')
|
|
return 1;
|
|
return (c1 != '(' || c != ')') && (c1 != '[' || c != ']') && (c1 != '{' || c != '}') && (c1 != '<' || c != '>') ? 0 : 2;
|
|
}
|
|
if (c2 == 'p')
|
|
return 0;
|
|
if (c2 == 'q')
|
|
return 0;
|
|
if (c2 == 'r')
|
|
return 0;
|
|
if (c2 == 's')
|
|
return c1 != '5' && c1 != 'z' && c1 != '$' && c1 != '2' ? 0 : 1;
|
|
if (c2 == 't')
|
|
return c1 != '7' && c1 != '+' ? 0 : 1;
|
|
if (c2 == 'u') {
|
|
if (c1 == 'v')
|
|
return 1;
|
|
return (c1 != '\\' || c != '/') && (c1 != '\\' || c != '|') && (c1 != '|' || c != '/') ? 0 : 2;
|
|
}
|
|
if (c2 == 'v')
|
|
return (c1 != '\\' || c != '/') && (c1 != '\\' || c != '|') && (c1 != '|' || c != '/') ? 0 : 2;
|
|
if (c2 == 'w')
|
|
return c1 != 'v' || c != 'v' ? 0 : 2;
|
|
if (c2 == 'x')
|
|
return (c1 != ')' || c != '(') && (c1 != '}' || c != '{') && (c1 != ']' || c != '[') && (c1 != '>' || c != '<') ? 0 : 2;
|
|
if (c2 == 'y')
|
|
return 0;
|
|
if (c2 == 'z')
|
|
return 0;
|
|
}
|
|
if (c2 >= '0' && c2 <= '9') {
|
|
if (c2 == '0') {
|
|
if (c1 == 'o' || c1 == 'O')
|
|
return 1;
|
|
return (c1 != '(' || c != ')') && (c1 != '{' || c != '}') && (c1 != '[' || c != ']') ? 0 : 2;
|
|
}
|
|
if (c2 == '1')
|
|
return c1 != 'l' ? 0 : 1;
|
|
else
|
|
return 0;
|
|
}
|
|
if (c2 == ',')
|
|
return c1 != '.' ? 0 : 1;
|
|
if (c2 == '.')
|
|
return c1 != ',' ? 0 : 1;
|
|
if (c2 == '!')
|
|
return c1 != 'i' ? 0 : 1;
|
|
else
|
|
return 0;
|
|
}
|
|
|
|
private static byte method513(char c) {
|
|
if (c >= 'a' && c <= 'z')
|
|
return (byte) ((c - 97) + 1);
|
|
if (c == '\'')
|
|
return 28;
|
|
if (c >= '0' && c <= '9')
|
|
return (byte) ((c - 48) + 29);
|
|
else
|
|
return 27;
|
|
}
|
|
|
|
private static void method514(char ac[]) {
|
|
int j;
|
|
int k = 0;
|
|
int l = 0;
|
|
int i1 = 0;
|
|
while ((j = method515(ac, k)) != -1) {
|
|
boolean flag = false;
|
|
for (int j1 = k; j1 >= 0 && j1 < j && !flag; j1++)
|
|
if (!method517(ac[j1]) && !method518(ac[j1]))
|
|
flag = true;
|
|
|
|
if (flag)
|
|
l = 0;
|
|
if (l == 0)
|
|
i1 = j;
|
|
k = method516(ac, j);
|
|
int k1 = 0;
|
|
for (int l1 = j; l1 < k; l1++)
|
|
k1 = (k1 * 10 + ac[l1]) - 48;
|
|
|
|
if (k1 > 255 || k - j > 8)
|
|
l = 0;
|
|
else
|
|
l++;
|
|
if (l == 4) {
|
|
for (int i2 = i1; i2 < k; i2++)
|
|
ac[i2] = '*';
|
|
|
|
l = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
private static int method515(char ac[], int i) {
|
|
for (int k = i; k < ac.length && k >= 0; k++)
|
|
if (ac[k] >= '0' && ac[k] <= '9')
|
|
return k;
|
|
|
|
return -1;
|
|
}
|
|
|
|
private static int method516(char ac[], int j) {
|
|
for (int k = j; k < ac.length && k >= 0; k++)
|
|
if (ac[k] < '0' || ac[k] > '9')
|
|
return k;
|
|
return ac.length;
|
|
}
|
|
|
|
private static boolean method517(char c) {
|
|
return !isLetter(c) && !isDigit(c);
|
|
}
|
|
|
|
private static boolean method518(char c) {
|
|
return c < 'a' || c > 'z' || c == 'v' || c == 'x' || c == 'j' || c == 'q' || c == 'z';
|
|
}
|
|
|
|
private static boolean isLetter(char c) {
|
|
return c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z';
|
|
}
|
|
|
|
private static boolean isDigit(char c) {
|
|
return c >= '0' && c <= '9';
|
|
}
|
|
|
|
private static boolean isLowerCaseLetter(char c) {
|
|
return c >= 'a' && c <= 'z';
|
|
}
|
|
|
|
private static boolean isUpperCaseLetter(char c) {
|
|
return c >= 'A' && c <= 'Z';
|
|
}
|
|
|
|
private static boolean method523(char ac[]) {
|
|
boolean flag = true;
|
|
for (int i = 0; i < ac.length; i++)
|
|
if (!isDigit(ac[i]) && ac[i] != 0)
|
|
flag = false;
|
|
|
|
if (flag)
|
|
return true;
|
|
int j = method524(ac);
|
|
int k = 0;
|
|
int l = anIntArray620.length - 1;
|
|
if (j == anIntArray620[k] || j == anIntArray620[l])
|
|
return true;
|
|
do {
|
|
int i1 = (k + l) / 2;
|
|
if (j == anIntArray620[i1])
|
|
return true;
|
|
if (j < anIntArray620[i1])
|
|
l = i1;
|
|
else
|
|
k = i1;
|
|
} while (k != l && k + 1 != l);
|
|
return false;
|
|
}
|
|
|
|
private static int method524(char ac[]) {
|
|
if (ac.length > 6)
|
|
return 0;
|
|
int k = 0;
|
|
for (int l = 0; l < ac.length; l++) {
|
|
char c = ac[ac.length - l - 1];
|
|
if (c >= 'a' && c <= 'z')
|
|
k = k * 38 + ((c - 97) + 1);
|
|
else if (c == '\'')
|
|
k = k * 38 + 27;
|
|
else if (c >= '0' && c <= '9')
|
|
k = k * 38 + ((c - 48) + 28);
|
|
else if (c != 0)
|
|
return 0;
|
|
}
|
|
|
|
return k;
|
|
}
|
|
|
|
private static int[] anIntArray620;
|
|
private static char[][] aCharArrayArray621;
|
|
private static byte[][][] aByteArrayArrayArray622;
|
|
private static char[][] aCharArrayArray623;
|
|
private static char[][] aCharArrayArray624;
|
|
private static int[] anIntArray625;
|
|
private static final String[] exceptions = {
|
|
"cook", "cook's", "cooks", "seeks", "sheet", "woop", "woops", "faq", "noob", "noobs"
|
|
};
|
|
|
|
}
|