public class Base64Coder
{
private static final String Mp;
private static char[] Mq;
private static byte[] Mr;
static
{
char[] arrayOfChar1 = 64;
char[] arrayOfChar2 = 0;
Mp = System.getProperty("line.separator");
Mq = new char[arrayOfChar1];
int i = 65;
int k;
for (int j = arrayOfChar2; i <= 90; j = k)
{
char[] arrayOfChar4 = Mq;
k = j + 1;
arrayOfChar4[j] = i;
i++;
i = (char)i;
}
i = 97;
while (i <= 122)
{
char[] arrayOfChar5 = Mq;
int m = j + 1;
arrayOfChar5[j] = i;
i++;
i = (char)i;
j = m;
}
i = 48;
while (i <= 57)
{
char[] arrayOfChar6 = Mq;
int n = j + 1;
arrayOfChar6[j] = i;
i++;
i = (char)i;
j = n;
}
char[] arrayOfChar3 = Mq;
int i1 = j + 1;
arrayOfChar3[j] = '+';
arrayOfChar3 = Mq;
int i2 = i1 + 1;
arrayOfChar3[i1] = '/';
Mr = new byte[''];
for (arrayOfChar3 = arrayOfChar2; ; arrayOfChar3++)
{
char[] arrayOfChar7 = Mr.length;
if (arrayOfChar3 >= arrayOfChar7)
break;
Mr[arrayOfChar3] = -1;
}
for (arrayOfChar3 = arrayOfChar2; arrayOfChar3 < arrayOfChar1; arrayOfChar3++)
{
byte[] arrayOfByte = Mr;
int i3 = Mq[arrayOfChar3];
int i4 = (byte)arrayOfChar3;
arrayOfByte[i3] = i4;
}
}
public static byte[] aT(String paramString)
{
return d(paramString.toCharArray());
}
public static byte[] c(char[] paramArrayOfChar, int paramInt1, int paramInt2)
{
int i = 65;
int j = 127;
String str = "Illegal character in Base64 encoded data.";
int k = paramInt2 % 4;
if (k != 0)
throw new IllegalArgumentException("Length of Base64 encoded input string is not a multiple of 4.");
while (true)
{
if (k > 0)
{
m = paramInt1 + k - 1;
m = paramArrayOfChar[m];
int n = 61;
if (m == n)
{
k--;
continue;
}
}
int m = k * 3 / 4;
byte[] arrayOfByte = new byte[m];
k += paramInt1;
int i1 = 0;
int i2 = paramInt1;
int i3;
int i4;
int i5;
int i6;
if (i2 < k)
{
i3 = i2 + 1;
i2 = paramArrayOfChar[i2];
i4 = i3 + 1;
i3 = paramArrayOfChar[i3];
if (i4 < k)
{
i5 = i4 + 1;
i4 = paramArrayOfChar[i4];
if (i5 >= k)
break label210;
i6 = i5 + 1;
}
for (i5 = paramArrayOfChar[i5]; ; i5 = i)
{
if ((i2 <= j) && (i3 <= j) && (i4 <= j) && (i5 <= j))
break label220;
throw new IllegalArgumentException(str);
i5 = i4;
i4 = i;
break;
label210: i6 = i5;
}
label220: i2 = Mr[i2];
i3 = Mr[i3];
i4 = Mr[i4];
i5 = Mr[i5];
if ((i2 < 0) || (i3 < 0) || (i4 < 0) || (i5 < 0))
throw new IllegalArgumentException(str);
i2 <<= 2;
int i7 = i3 >>> 4;
i2 |= i7;
i3 = (i3 & 0xF) << 4;
int i8 = i4 >>> 2;
i3 |= i8;
i4 = (i4 & 0x3) << 6 | i5;
i5 = i1 + 1;
i2 = (byte)i2;
arrayOfByte[i1] = i2;
if (i5 >= m)
break label417;
i1 = i5 + 1;
i2 = (byte)i3;
arrayOfByte[i5] = i2;
}
while (true)
{
if (i1 < m)
{
i2 = i1 + 1;