📄 aa.java
字号:
import java.io.IOException;
public final class aa
{
private static final int[] jdField_a_of_type_ArrayOfInt = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 99, 99 };
private static final int[] jdField_b_of_type_ArrayOfInt = { 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 };
private static final int[] jdField_c_of_type_ArrayOfInt = { 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13 };
private static final int[] d = { 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 };
private static final int[] e = { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 };
private static int jdField_a_of_type_Int;
private static int jdField_b_of_type_Int;
private static int jdField_c_of_type_Int;
public static byte[] a(byte[] paramArrayOfByte)
throws IOException
{
jdField_a_of_type_Int = aa.jdField_b_of_type_Int = aa.jdField_c_of_type_Int = 0;
if ((a(paramArrayOfByte, 16) != 35615) || (a(paramArrayOfByte, 8) != 8))
throw new IOException("Invalid GZIP format");
int i = a(paramArrayOfByte, 8);
jdField_a_of_type_Int += 6;
if ((i & 0x4) != 0)
jdField_a_of_type_Int += a(paramArrayOfByte, 16);
while (((i & 0x8) != 0) && (paramArrayOfByte[(jdField_a_of_type_Int++)] != 0));
while (((i & 0x10) != 0) && (paramArrayOfByte[(jdField_a_of_type_Int++)] != 0));
if ((i & 0x2) != 0)
jdField_a_of_type_Int += 2;
int j = jdField_a_of_type_Int;
jdField_a_of_type_Int = paramArrayOfByte.length - 4;
byte[] arrayOfByte1 = new byte[a(paramArrayOfByte, 16) | a(paramArrayOfByte, 16) << 16];
int k = 0;
jdField_a_of_type_Int = j;
int l = 0;
int i1 = 0;
do
{
l = a(paramArrayOfByte, 1);
if ((i1 = a(paramArrayOfByte, 2)) == 0)
{
jdField_c_of_type_Int = 0;
int i2 = a(paramArrayOfByte, 16);
a(paramArrayOfByte, 16);
int i3 = 0;
System.arraycopy(paramArrayOfByte, jdField_a_of_type_Int, arrayOfByte1, k, i2);
jdField_a_of_type_Int += i2;
label713: k += i2;
}
else
{
int[] arrayOfInt1;
int[] arrayOfInt2;
int i6;
int i8;
if (i1 == 2)
{
int i4 = a(paramArrayOfByte, 5) + 257;
i6 = a(paramArrayOfByte, 5) + 1;
i8 = a(paramArrayOfByte, 4) + 4;
byte[] arrayOfByte4 = new byte[19];
for (int i10 = 0; i10 < i8; ++i10)
arrayOfByte4[e[i10]] = (byte)a(paramArrayOfByte, 3);
int[] arrayOfInt3 = a(arrayOfByte4, 18);
arrayOfInt1 = a(a(paramArrayOfByte, arrayOfInt3, i4), i4 - 1);
arrayOfInt2 = a(a(paramArrayOfByte, arrayOfInt3, i6), i6 - 1);
}
else
{
byte[] arrayOfByte2 = new byte[288];
for (i6 = 0; i6 < 144; ++i6)
arrayOfByte2[i6] = 8;
for (i6 = 144; i6 < 256; ++i6)
arrayOfByte2[i6] = 9;
for (i6 = 256; i6 < 280; ++i6)
arrayOfByte2[i6] = 7;
for (i6 = 280; i6 < 288; ++i6)
arrayOfByte2[i6] = 8;
arrayOfInt1 = a(arrayOfByte2, 287);
byte[] arrayOfByte3 = new byte[32];
for (i8 = 0; i8 < arrayOfByte3.length; ++i8)
arrayOfByte3[i8] = 5;
arrayOfInt2 = a(arrayOfByte3, 31);
}
while (true)
{
int i5;
while (true)
{
int i7;
if ((i5 = a(paramArrayOfByte, arrayOfInt1)) == 256)
break label713;
if (i5 <= 256)
break;
i5 -= 257;
int i9 = jdField_b_of_type_ArrayOfInt[i5];
if ((i7 = jdField_a_of_type_ArrayOfInt[i5]) > 0)
i9 += a(paramArrayOfByte, i7);
i5 = a(paramArrayOfByte, arrayOfInt2);
int i11 = d[i5];
if ((i8 = jdField_c_of_type_ArrayOfInt[i5]) > 0)
i11 += a(paramArrayOfByte, i8);
int i12 = k - i11;
while (i11 < i9)
{
System.arraycopy(arrayOfByte1, i12, arrayOfByte1, k, i11);
k += i11;
i9 -= i11;
i11 <<= 1;
}
System.arraycopy(arrayOfByte1, i12, arrayOfByte1, k, i9);
k += i9;
}
arrayOfByte1[(k++)] = (byte)i5;
}
}
}
while (l == 0);
return arrayOfByte1;
}
private static int a(byte[] paramArrayOfByte, int paramInt)
{
int i = (jdField_c_of_type_Int == 0) ? (aa.jdField_b_of_type_Int = paramArrayOfByte[(jdField_a_of_type_Int++)] & 0xFF) : jdField_b_of_type_Int >> jdField_c_of_type_Int;
for (int j = 8 - jdField_c_of_type_Int; j < paramInt; j += 8)
{
jdField_b_of_type_Int = paramArrayOfByte[(jdField_a_of_type_Int++)] & 0xFF;
i |= jdField_b_of_type_Int << j;
}
jdField_c_of_type_Int = jdField_c_of_type_Int + paramInt & 0x7;
return (i & (1 << paramInt) - 1);
}
private static int a(byte[] paramArrayOfByte, int[] paramArrayOfInt)
{
int i = paramArrayOfInt[0];
while (i >= 0)
{
if (jdField_c_of_type_Int == 0)
jdField_b_of_type_Int = paramArrayOfByte[(jdField_a_of_type_Int++)] & 0xFF;
i = ((jdField_b_of_type_Int & 1 << jdField_c_of_type_Int) == 0) ? paramArrayOfInt[(i >> 16)] : paramArrayOfInt[(i & 0xFFFF)];
jdField_c_of_type_Int = jdField_c_of_type_Int + 1 & 0x7;
}
return (i & 0xFFFF);
}
private static byte[] a(byte[] paramArrayOfByte, int[] paramArrayOfInt, int paramInt)
{
byte[] arrayOfByte = new byte[paramInt];
int i = 0;
int j = 0;
for (int k = 0; i < paramInt; k = j)
if ((j = a(paramArrayOfByte, paramArrayOfInt)) >= 16)
{
int l;
if (j == 16)
{
l = 3 + a(paramArrayOfByte, 2);
j = k;
}
else
{
if (j == 17)
l = 3 + a(paramArrayOfByte, 3);
else
l = 11 + a(paramArrayOfByte, 7);
j = 0;
}
while (l-- > 0)
arrayOfByte[(i++)] = (byte)j;
}
else
{
arrayOfByte[(i++)] = (byte)j;
}
return arrayOfByte;
}
private static int[] a(byte[] paramArrayOfByte, int paramInt)
{
int[] arrayOfInt1 = new int[17];
for (int i = 0; i < paramArrayOfByte.length; ++i)
arrayOfInt1[paramArrayOfByte[i]] += 1;
i = 0;
arrayOfInt1[0] = 0;
int[] arrayOfInt2 = new int[17];
for (int j = 1; j <= 16; ++j)
arrayOfInt2[j] = (i = i + arrayOfInt1[(j - 1)] << 1);
int[] arrayOfInt3 = new int[(paramInt << 1) + 16];
int k = 1;
for (int l = 0; l <= paramInt; ++l)
{
int i1;
if ((i1 = paramArrayOfByte[l]) != 0)
{
int tmp109_107 = i1;
int[] tmp109_105 = arrayOfInt2;
int tmp111_110 = tmp109_105[tmp109_107];
tmp109_105[tmp109_107] = (tmp111_110 + 1);
i = tmp111_110;
int i2 = 0;
for (int i3 = i1 - 1; i3 >= 0; --i3)
{
int i4;
int i5;
if ((i4 = i & 1 << i3) == 0)
{
if ((i5 = arrayOfInt3[i2] >> 16) == 0)
{
arrayOfInt3[i2] |= k << 16;
i2 = k++;
}
else
{
i2 = i5;
}
}
else if ((i5 = arrayOfInt3[i2] & 0xFFFF) == 0)
{
arrayOfInt3[i2] |= k;
i2 = k++;
}
else
{
i2 = i5;
}
}
arrayOfInt3[i2] = (0x80000000 | l);
}
}
return arrayOfInt3;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -