/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.io.ByteArrayOutputStream;
import java.security.Key;
import java.security.KeyFactory;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
import javax.crypto.Cipher;
class Ideone
{
{
// your code goes here
System.
out.
println("start..");
}
public static byte[] decode
(byte[] bArr,
String str
) { Cipher instance = Cipher.getInstance("RSA/ECB/PKCS1Padding");
instance.init(2, generatePrivate);
return m6587a(bArr, instance, 128);
}
private static byte[] m6587a(byte[] bArr, Cipher cipher, int i) {
int length = bArr.length;
int i2 = 0;
while (i2 < length) {
int min
= Math.
min(i, length
- i2
); byte[] doFinal = cipher.doFinal(bArr, i2, min);
byteArrayOutputStream.write(doFinal, 0, doFinal.length);
i2 += min;
}
byte[] toByteArray = byteArrayOutputStream.toByteArray();
byteArrayOutputStream.close();
return toByteArray;
}
public static byte[] m6588b
(byte[] bArr,
String str
) { Cipher instance = Cipher.getInstance("RSA/ECB/PKCS1Padding");
instance.init(1, generatePublic);
return m6587a(bArr, instance, 117);
}
}
class C1442b {
private static final byte[] f8981a = new byte[128];
private static final char[] f8982b = new char[64];
static {
int i;
int i2 = 0;
for (i = 0; i <128; i++) {
f8981a[i] = (byte) -1;
}
for (i = 90; i >= 65; i--) {
f8981a[i] = (byte) (i - 65);
}
for (i = 122; i >= 97; i--) {
f8981a[i] = (byte) ((i - 97) + 26);
}
for (i = 57; i >= 48; i--) {
f8981a[i] = (byte) ((i - 48) + 52);
}
f8981a[43] = (byte) 62;
f8981a[47] = (byte) 63;
for (i = 0; i <= 25; i++) {
f8982b[i] = (char) (i + 65);
}
int i3 = 26;
i = 0;
while (i3 <= 51) {
f8982b[i3] = (char) (i + 97);
i3++;
i++;
}
i = 52;
while (i <= 61) {
f8982b[i] = (char) (i2 + 48);
i++;
i2++;
}
f8982b[62] = '+';
f8982b[63] = '/';
}
public static String m7297a
(byte[] bArr
) { int i = 0;
if (bArr == null) {
return null;
}
int length = bArr.length * 8;
if (length == 0) {
return "";
}
int i2 = length % 24;
int i3 = length / 24;
char[] cArr = new char[((i2 != 0 ? i3 + 1 : i3) * 4)];
int i4 = 0;
int i5 = 0;
while (i4 < i3) {
length = i + 1;
byte b = bArr[i];
int i6 = length + 1;
byte b2 = bArr[length];
int i7 = i6 + 1;
byte b3 = bArr[i6];
byte b4 = (byte) (b2 & 15);
byte b5 = (byte) (b & 3);
if ((b & -128) == 0) {
i6 = (byte) (b >> 2);
} else {
byte b6 = (byte) ((b >> 2) ^ 192);
}
if ((b2 & -128) == 0) {
i = (byte) (b2 >> 4);
} else {
b = (byte) ((b2 >> 4) ^ 240);
}
length = (b3 & -128) == 0 ? (byte) (b3 >> 6) : (byte) ((b3 >> 6) ^ 252);
int i8 = i5 + 1;
cArr[i5] = f8982b[i6];
i6 = i8 + 1;
cArr[i8] = f8982b[i | (b5 << 4)];
i5 = i6 + 1;
cArr[i6] = f8982b[length | (b4 << 2)];
i = i5 + 1;
cArr[i5] = f8982b[b3 & 63];
i4++;
i5 = i;
i = i7;
}
byte b7;
byte b8;
byte b19;
if (i2 == 8) {
b7 = bArr[i];
b8 = (byte) (b7 & 3);
i = i5 + 1;
cArr[i5] = f8982b[(b7 & -128) == 0 ? (byte) (b7 >> 2) : (byte) ((b7 >> 2) ^ 192)];
length = i + 1;
cArr[i] = f8982b[b8 << 4];
i3 = length + 1;
cArr[length] = '=';
cArr[i3] = '=';
} else if (i2 == 16) {
b7 = bArr[i];
b19 = bArr[i + 1];
byte b6 = (byte) (b19 & 15);
byte b9 = (byte) (b7 & 3);
if ((b7 & -128) == 0) {
i3 = (byte) (b7 >> 2);
} else {
b8 = (byte) ((b7 >> 2) ^ 192);
}
length = (b19 & -128) == 0 ? (byte) (b19 >> 4) : (byte) ((b19 >> 4) ^ 240);
i = i5 + 1;
cArr[i5] = f8982b[i3];
i3 = i + 1;
cArr[i] = f8982b[length | (b9 << 4)];
length = i3 + 1;
cArr[i3] = f8982b[b6 << 2];
cArr[length] = '=';
}
}
private static boolean m7298a(char c) {
return c == '=';
}
public static byte[] m7299a
(String str
) { if (str == null) {
return null;
}
int i;
int length;
int i2;
int i3;
char[] toCharArray = str.toCharArray();
if (toCharArray == null) {
i = 0;
} else {
length = toCharArray.length;
i2 = 0;
i = 0;
while (i2 < length) {
char c = toCharArray[i2];
i3 = (c == ' ' || c == '\r' || c == '\n' || c == '\t') ? 1 : 0;
if (i3 == 0) {
i3 = i + 1;
toCharArray[i] = toCharArray[i2];
} else {
i3 = i;
}
i2++;
i = i3;
}
}
if (i % 4 != 0) {
return null;
}
int i4 = i / 4;
if (i4 == 0) {
return new byte[0];
}
char c2;
byte[] aaa = new byte[(i4 * 3)];
i = 0;
i2 = 0;
length = 0;
while (length < i4 - 1) {
int i5 = i + 1;
char c3 = toCharArray[i];
if (C1442b.m7300b(c3)) {
i = i5 + 1;
c2 = toCharArray[i5];
if (C1442b.m7300b(c2)) {
int i6 = i + 1;
char c4 = toCharArray[i];
if (C1442b.m7300b(c4)) {
i = i6 + 1;
char c5 = toCharArray[i6];
if (C1442b.m7300b(c5)) {
byte b = f8981a[c3];
byte b2 = f8981a[c2];
byte b3 = f8981a[c4];
byte b4 = f8981a[c5];
int i7 = i2 + 1;
aaa[i2] = (byte) ((b << 2) | (b2 >> 4));
int i8 = i7 + 1;
aaa[i7] = (byte) (((b2 & 15) << 4) | ((b3 >> 2) & 15));
i2 = i8 + 1;
aaa[i8] = (byte) ((b3 << 6) | b4);
length++;
}
}
}
}
return null;
}
i4 = i + 1;
char c6 = toCharArray[i];
if (C1442b.m7300b(c6)) {
int i5 = i4 + 1;
char c7 = toCharArray[i4];
if (C1442b.m7300b(c7)) {
byte b = f8981a[c6];
byte b5 = f8981a[c7];
i = i5 + 1;
c2 = toCharArray[i5];
c6 = toCharArray[i];
if (C1442b.m7300b(c2) && C1442b.m7300b(c6)) {
byte b6 = f8981a[c2];
byte b7 = f8981a[c6];
int i9 = i2 + 1;
aaa[i2] = (byte) ((b << 2) | (b5 >> 4));
i2 = i9 + 1;
aaa[i9] = (byte) (((b5 & 15) << 4) | ((b6 >> 2) & 15));
aaa[i2] = (byte) (b7 | (b6 << 6));
return aaa;
} else if (C1442b.m7298a(c2) && C1442b.m7298a(c6)) {
if ((b5 & 15) != 0) {
return null;
}
byte[] r1 = new byte[((length * 3) + 1)];
System.
arraycopy(aaa,
0, r1,
0, length
* 3); r1[i2] = (byte) ((b << 2) | (b5 >> 4));
return r1;
} else if (C1442b.m7298a(c2) || !C1442b.m7298a(c6)) {
return null;
} else {
byte b8 = f8981a[c2];
if ((b8 & 3) != 0) {
return null;
}
byte[] r1 = new byte[((length * 3) + 2)];
System.
arraycopy(aaa,
0, r1,
0, length
* 3); i3 = i2 + 1;
r1[i2] = (byte) ((b << 2) | (b5 >> 4));
r1[i3] = (byte) (((b5 & 15) << 4) | ((b8 >> 2) & 15));
return r1;
}
}
}
return null;
}
private static boolean m7300b(char c) {
return c < '' && f8981a[c] != (byte) -1;
}
}