CrackMe.apk
Download file
package com.google.common.primitives;
import com.facebook.react.uimanager.events.TouchesHelper;
import com.google.common.base.Preconditions;
import java.io.Serializable;
import java.util.AbstractList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.RandomAccess;
import javax.annotation.CheckForNull;
import kotlin.jvm.internal.CharCompanionObject;
import okhttp3.internal.ws.WebSocketProtocol;
@ElementTypesAreNonnullByDefault
public final class Chars {
public static final int BYTES = 2;
public static int compare(char c, char c2) {
return c - c2;
}
public static char fromBytes(byte b, byte b2) {
return (char) ((b << 8) | (b2 & 255));
}
public static int hashCode(char c) {
return c;
}
public static char saturatedCast(long j) {
if (j > WebSocketProtocol.PAYLOAD_SHORT_MAX) {
return CharCompanionObject.MAX_VALUE;
}
if (j < 0) {
return 0;
}
return (char) ((int) j);
}
public static byte[] toByteArray(char c) {
return new byte[]{(byte) (c >> 8), (byte) c};
}
private Chars() {
}
public static char checkedCast(long j) {
char c = (char) ((int) j);
Preconditions.checkArgument(((long) c) == j, "Out of range: %s", j);
return c;
}
public static boolean contains(char[] cArr, char c) {
for (char c2 : cArr) {
if (c2 == c) {
return true;
}
}
return false;
}
public static int indexOf(char[] cArr, char c) {
return indexOf(cArr, c, 0, cArr.length);
}
/* access modifiers changed from: private */
public static int indexOf(char[] cArr, char c, int i, int i2) {
while (i < i2) {
if (cArr[i] == c) {
return i;
}
i++;
}
return -1;
}
public static int indexOf(char[] cArr, char[] cArr2) {
Preconditions.checkNotNull(cArr, "array");
Preconditions.checkNotNull(cArr2, TouchesHelper.TARGET_KEY);
if (cArr2.length == 0) {
return 0;
}
int i = 0;
while (i < (cArr.length - cArr2.length) + 1) {
int i2 = 0;
while (i2 < cArr2.length) {
if (cArr[i + i2] != cArr2[i2]) {
i++;
} else {
i2++;
}
}
return i;
}
return -1;
}
public static int lastIndexOf(char[] cArr, char c) {
return lastIndexOf(cArr, c, 0, cArr.length);
}
/* access modifiers changed from: private */
public static int lastIndexOf(char[] cArr, char c, int i, int i2) {
for (int i3 = i2 - 1; i3 >= i; i3--) {
if (cArr[i3] == c) {
return i3;
}
}
return -1;
}
public static char min(char... cArr) {
Preconditions.checkArgument(cArr.length > 0);
char c = cArr[0];
for (int i = 1; i < cArr.length; i++) {
if (cArr[i] < c) {
c = cArr[i];
}
}
return c;
}
public static char max(char... cArr) {
Preconditions.checkArgument(cArr.length > 0);
char c = cArr[0];
for (int i = 1; i < cArr.length; i++) {
if (cArr[i] > c) {
c = cArr[i];
}
}
return c;
}
public static char constrainToRange(char c, char c2, char c3) {
Preconditions.checkArgument(c2 <= c3, "min (%s) must be less than or equal to max (%s)", c2, c3);
if (c < c2) {
return c2;
}
return c < c3 ? c : c3;
}
public static char[] concat(char[]... cArr) {
int i = 0;
for (char[] length : cArr) {
i += length.length;
}
char[] cArr2 = new char[i];
int i2 = 0;
for (char[] cArr3 : cArr) {
System.arraycopy(cArr3, 0, cArr2, i2, cArr3.length);
i2 += cArr3.length;
}
return cArr2;
}
public static char fromByteArray(byte[] bArr) {
Preconditions.checkArgument(bArr.length >= 2, "array too small: %s < %s", bArr.length, 2);
return fromBytes(bArr[0], bArr[1]);
}
public static char[] ensureCapacity(char[] cArr, int i, int i2) {
boolean z = true;
Preconditions.checkArgument(i >= 0, "Invalid minLength: %s", i);
if (i2 < 0) {
z = false;
}
Preconditions.checkArgument(z, "Invalid padding: %s", i2);
return cArr.length < i ? Arrays.copyOf(cArr, i + i2) : cArr;
}
public static String join(String str, char... cArr) {
Preconditions.checkNotNull(str);
int length = cArr.length;
if (length == 0) {
return "";
}
StringBuilder sb = new StringBuilder((str.length() * (length - 1)) + length);
sb.append(cArr[0]);
for (int i = 1; i < length; i++) {
sb.append(str);
sb.append(cArr[i]);
}
return sb.toString();
}
public static Comparator<char[]> lexicographicalComparator() {
return LexicographicalComparator.INSTANCE;
}
private enum LexicographicalComparator implements Comparator<char[]> {
INSTANCE;
public String toString() {
return "Chars.lexicographicalComparator()";
}
public int compare(char[] cArr, char[] cArr2) {
int min = Math.min(cArr.length, cArr2.length);
for (int i = 0; i < min; i++) {
int compare = Chars.compare(cArr[i], cArr2[i]);
if (compare != 0) {
return compare;
}
}
return cArr.length - cArr2.length;
}
}
public static char[] toArray(Collection<Character> collection) {
if (collection instanceof CharArrayAsList) {
return ((CharArrayAsList) collection).toCharArray();
}
Object[] array = collection.toArray();
int length = array.length;
char[] cArr = new char[length];
for (int i = 0; i < length; i++) {
cArr[i] = ((Character) Preconditions.checkNotNull(array[i])).charValue();
}
return cArr;
}
public static void sortDescending(char[] cArr) {
Preconditions.checkNotNull(cArr);
sortDescending(cArr, 0, cArr.length);
}
public static void sortDescending(char[] cArr, int i, int i2) {
Preconditions.checkNotNull(cArr);
Preconditions.checkPositionIndexes(i, i2, cArr.length);
Arrays.sort(cArr, i, i2);
reverse(cArr, i, i2);
}
public static void reverse(char[] cArr) {
Preconditions.checkNotNull(cArr);
reverse(cArr, 0, cArr.length);
}
public static void reverse(char[] cArr, int i, int i2) {
Preconditions.checkNotNull(cArr);
Preconditions.checkPositionIndexes(i, i2, cArr.length);
for (int i3 = i2 - 1; i < i3; i3--) {
char c = cArr[i];
cArr[i] = cArr[i3];
cArr[i3] = c;
i++;
}
}
public static List<Character> asList(char... cArr) {
if (cArr.length == 0) {
return Collections.emptyList();
}
return new CharArrayAsList(cArr);
}
private static class CharArrayAsList extends AbstractList<Character> implements RandomAccess, Serializable {
private static final long serialVersionUID = 0;
final char[] array;
final int end;
final int start;
public boolean isEmpty() {
return false;
}
CharArrayAsList(char[] cArr) {
this(cArr, 0, cArr.length);
}
CharArrayAsList(char[] cArr, int i, int i2) {
this.array = cArr;
this.start = i;
this.end = i2;
}
public int size() {
return this.end - this.start;
}
public Character get(int i) {
Preconditions.checkElementIndex(i, size());
return Character.valueOf(this.array[this.start + i]);
}
public boolean contains(@CheckForNull Object obj) {
return (obj instanceof Character) && Chars.indexOf(this.array, ((Character) obj).charValue(), this.start, this.end) != -1;
}
public int indexOf(@CheckForNull Object obj) {
int access$000;
if (!(obj instanceof Character) || (access$000 = Chars.indexOf(this.array, ((Character) obj).charValue(), this.start, this.end)) < 0) {
return -1;
}
return access$000 - this.start;
}
public int lastIndexOf(@CheckForNull Object obj) {
int access$100;
if (!(obj instanceof Character) || (access$100 = Chars.lastIndexOf(this.array, ((Character) obj).charValue(), this.start, this.end)) < 0) {
return -1;
}
return access$100 - this.start;
}
public Character set(int i, Character ch) {
Preconditions.checkElementIndex(i, size());
char[] cArr = this.array;
int i2 = this.start;
char c = cArr[i2 + i];
cArr[i2 + i] = ((Character) Preconditions.checkNotNull(ch)).charValue();
return Character.valueOf(c);
}
public List<Character> subList(int i, int i2) {
Preconditions.checkPositionIndexes(i, i2, size());
if (i == i2) {
return Collections.emptyList();
}
char[] cArr = this.array;
int i3 = this.start;
return new CharArrayAsList(cArr, i + i3, i3 + i2);
}
public boolean equals(@CheckForNull Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof CharArrayAsList)) {
return super.equals(obj);
}
CharArrayAsList charArrayAsList = (CharArrayAsList) obj;
int size = size();
if (charArrayAsList.size() != size) {
return false;
}
for (int i = 0; i < size; i++) {
if (this.array[this.start + i] != charArrayAsList.array[charArrayAsList.start + i]) {
return false;
}
}
return true;
}
public int hashCode() {
int i = 1;
for (int i2 = this.start; i2 < this.end; i2++) {
i = (i * 31) + Chars.hashCode(this.array[i2]);
}
return i;
}
public String toString() {
StringBuilder sb = new StringBuilder(size() * 3);
sb.append('[');
sb.append(this.array[this.start]);
int i = this.start;
while (true) {
i++;
if (i < this.end) {
sb.append(", ");
sb.append(this.array[i]);
} else {
sb.append(']');
return sb.toString();
}
}
}
/* access modifiers changed from: package-private */
public char[] toCharArray() {
return Arrays.copyOfRange(this.array, this.start, this.end);
}
}
}
Download file