📄 gzipinputstream.java
字号:
return 1;
case 1: // '\001'
for(; C > 0; C -= 8)
{
int j1 = _mthdo(8);
if(j1 < 0)
return 0;
_mthif(8);
o = o << 8 | j1;
}
return 0;
case 2: // '\002'
if(H)
if(A)
{
T = 12;
return 0;
} else
{
T = 11;
return 1;
}
int k1 = _mthdo(3);
if(k1 < 0)
return 0;
_mthif(3);
if((k1 & 1) != 0)
H = true;
switch(k1 >> 1)
{
case 0: // '\0'
_mthdo();
T = 3;
break;
case 1: // '\001'
_fldtry = q;
r = t;
T = 7;
break;
case 2: // '\002'
_mthelse();
T = 6;
break;
default:
return -3;
}
return 1;
case 3: // '\003'
if((aa = _mthdo(16)) < 0)
return 0;
_mthif(16);
T = 4;
// fall through
case 4: // '\004'
int l1 = _mthdo(16);
if(l1 < 0)
return 0;
_mthif(16);
if(l1 != (aa ^ 0xffff))
return -3;
T = 5;
// fall through
case 5: // '\005'
int l2 = Math.min(Math.min(aa, 32768 - _fldcase), _mthcase());
int i3 = 0;
boolean flag = false;
int i4 = 32768 - av;
if(l2 > i4)
{
int j3 = a(ap, av, i4);
if(j3 < 0)
return -3;
i3 = j3;
if(i3 == i4)
{
int k3 = a(ap, 0, l2 - i4);
if(k3 < 0)
return -3;
i3 += k3;
}
} else
{
int l3 = a(ap, av, l2);
if(l3 < 0)
return -3;
i3 = l3;
}
av = av + i3 & 0x7fff;
_fldcase += i3;
aa -= i3;
if(aa == 0)
{
T = 2;
return 1;
} else
{
return _fldgoto == _fldint ? 0 : 1;
}
case 6: // '\006'
int i2 = _mthint();
if(i2 == 0)
return 0;
if(i2 == -1)
return -3;
T = 7;
// fall through
case 7: // '\007'
case 8: // '\b'
case 9: // '\t'
case 10: // '\n'
int j2 = _mthgoto();
if(j2 == 0)
return 0;
return j2 != 1 ? -3 : 1;
case 11: // '\013'
_mthdo();
for(C = 32; C > 0; C -= 8)
{
int k2 = _mthdo(8);
if(k2 < 0)
return 0;
_mthif(8);
o = o << 8 | k2;
}
if(D != o)
{
return -3;
} else
{
T = 12;
return 0;
}
case 12: // '\f'
return 0;
default:
return -3;
}
}
private int _mthgoto()
{
int j2 = 32768 - _fldcase;
do
{
if(j2 < 258)
break;
switch(T)
{
case 7: // '\007'
int i1;
while(((i1 = a(_fldtry)) & 0xffffff00) == 0)
{
if(_fldcase++ == 32768)
return -1;
ap[av++] = (byte)i1;
av &= 0x7fff;
if(--j2 < 258)
return 1;
}
if(i1 < 0)
return 0;
if(i1 == 256)
{
r = null;
_fldtry = null;
T = 2;
return 1;
}
int k1 = i1 - 257;
if(k1 < 0 || k1 > 30)
return -1;
ab = M[k1];
C = as[k1];
// fall through
case 8: // '\b'
if(C > 0)
{
T = 8;
int l1 = _mthdo(C);
if(l1 < 0)
return 0;
_mthif(C);
ab += l1;
}
T = 9;
// fall through
case 9: // '\t'
int j1 = a(r);
if(j1 < 0)
return 0;
if(j1 < 0 || j1 > 29)
return -1;
I = u[j1];
C = ad[j1];
// fall through
case 10: // '\n'
if(C > 0)
{
T = 10;
int i2 = _mthdo(C);
if(i2 < 0)
return 0;
_mthif(C);
I += i2;
}
if((_fldcase += ab) > 32768)
return -1;
int k2 = av - I & 0x7fff;
int l2 = ab;
int i3 = 32768 - ab;
if(k2 <= i3 && av < i3)
{
if(l2 <= I)
{
System.arraycopy(ap, k2, ap, av, l2);
av += l2;
} else
{
while(l2-- > 0)
ap[av++] = ap[k2++];
}
} else
{
while(l2-- > 0)
{
ap[av++] = ap[k2++];
av &= 0x7fff;
k2 &= 0x7fff;
}
}
j2 -= ab;
T = 7;
break;
default:
return -1;
}
} while(true);
return 1;
}
private void _mthelse()
{
S = 0;
ac = z = V = aC = 0;
ao = 0;
aw = 0;
_fldchar = 0;
}
private int _mthint()
{
label0:
do
switch(S)
{
default:
break;
case 0: // '\0'
ac = _mthdo(5);
if(ac < 0)
return 0;
ac += 257;
_mthif(5);
S = 1;
// fall through
case 1: // '\001'
z = _mthdo(5);
if(z < 0)
return 0;
z++;
_mthif(5);
aC = ac + z;
au = new byte[aC];
S = 2;
// fall through
case 2: // '\002'
V = _mthdo(4);
if(V < 0)
return 0;
V += 4;
_mthif(4);
s = new byte[19];
_fldchar = 0;
S = 3;
// fall through
case 3: // '\003'
for(; _fldchar < V; _fldchar++)
{
int i1 = _mthdo(3);
if(i1 < 0)
return 0;
_mthif(3);
s[ax[_fldchar]] = (byte)i1;
}
Z = a(s, s.length);
s = null;
_fldchar = 0;
S = 4;
// fall through
case 4: // '\004'
int j1;
while(((j1 = a(Z)) & 0xfffffff0) == 0)
{
au[_fldchar++] = aw = (byte)j1;
if(_fldchar == aC)
break label0;
}
if(j1 < 0)
return 0;
if(j1 >= 17)
aw = 0;
else
if(_fldchar == 0)
return -1;
ao = j1 - 16;
S = 5;
// fall through
case 5: // '\005'
int k1 = c[ao];
int l1 = _mthdo(k1);
if(l1 < 0)
return 0;
_mthif(k1);
l1 += X[ao];
if(_fldchar + l1 > aC)
return -1;
while(l1-- > 0)
au[_fldchar++] = aw;
if(_fldchar == aC)
break label0;
S = 4;
break;
}
while(true);
byte abyte0[] = new byte[ac];
System.arraycopy(au, 0, abyte0, 0, ac);
_fldtry = a(abyte0, ac);
abyte0 = new byte[z];
System.arraycopy(au, ac, abyte0, 0, z);
r = a(abyte0, z);
return 1;
}
private void _mthif(byte abyte0[], int i1, int j1)
{
int k1 = D & 0xffff;
int l1 = D >> 16 & 0xffff;
for(int i2 = 0; i2 < j1; i2++)
{
k1 = (k1 + abyte0[i2]) % 65521;
l1 = (l1 + k1) % 65521;
}
D = (l1 << 16) + k1;
}
protected InputStream v;
protected byte x[];
protected int W;
protected boolean l;
private byte _fldvoid[];
private static final String L = "Not in GZIP format";
private static final String E = "Unsupported compression method";
private static final String am = "Corrupt GZIP header";
private static final String _fldnew = "Corrupt GZIP trailer";
private static final String _fldnull = "Internal State Error";
private static final int U[] = {
31, 139
};
private static final int Q = 1;
private static final int w = 2;
private static final int F = 4;
private static final int O = 8;
private static final int Y = 16;
private static final int ah = 224;
private boolean y;
private static final int f = 0;
private static final int m = 1;
private static final int d = 2;
private static final int h = -3;
private static final int B = -4;
private static final int _fldbyte = -5;
private static final int ag = -6;
private byte aA[];
private int _fldgoto;
private int _fldint;
private int al;
private int aa;
private int T;
private boolean H;
private boolean A;
private int o;
private int at;
private int C;
private final int J;
private final int af;
private byte ap[];
private int av;
private int _fldcase;
private int G;
private int K;
private static short q[];
private static short t[];
private short _fldtry[];
private short r[];
private int ab;
private int I;
private static final int M[] = {
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 as[] = {
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, 112,
112
};
private static final int u[] = {
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 ad[] = {
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 short j[] = {
0, 8, 4, 12, 2, 10, 6, 14, 1, 9,
5, 13, 3, 11, 7, 15
};
private static final int n = 15;
private static final int ay = 7;
private static final int ae = 0xfff80;
private static final int _fldlong = 9;
private static final int N = 512;
private static final int P = 8;
private static final int ai = 0;
private static final int g = 1;
private static final int _fldelse = 2;
private static final int _fldfor = 3;
private static final int aB = 4;
private static final int ak = 5;
private static final int b = 6;
private static final int _fldif = 7;
private static final int az = 8;
private static final int R = 9;
private static final int ar = 10;
private static final int aj = 11;
private static final int p = 12;
private static final int _flddo = 13;
private static final int k = 0;
private static final int a = 1;
private static final int i = 2;
private static final int aq = 3;
private static final int e = 4;
private static final int aD = 5;
private static final int X[] = {
3, 3, 11
};
private static final int c[] = {
2, 3, 7
};
private static final int ax[] = {
16, 17, 18, 0, 8, 7, 9, 6, 10, 5,
11, 4, 12, 3, 13, 2, 14, 1, 15
};
private int S;
private int ac;
private int z;
private int V;
private int aC;
private int ao;
private byte aw;
private int _fldchar;
private byte s[];
private byte au[];
private short Z[];
private static final int an = 65521;
private int D;
static
{
byte abyte0[] = new byte[288];
int i1;
for(i1 = 0; i1 < 144;)
abyte0[i1++] = 8;
while(i1 < 256)
abyte0[i1++] = 9;
while(i1 < 280)
abyte0[i1++] = 7;
while(i1 < 288)
abyte0[i1++] = 8;
q = a(abyte0, 288);
abyte0 = new byte[32];
for(int j1 = 0; j1 < 32;)
abyte0[j1++] = 5;
t = a(abyte0, 32);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -