Add Discord community version (64-bit only)

- Added realracing3-community.apk (71.57 MB)
- Removed 32-bit support (armeabi-v7a)
- Only includes arm64-v8a libraries
- Decompiled source code included
- Added README-community.md with analysis
This commit is contained in:
2026-02-18 15:48:36 -08:00
parent c19eb3d7ff
commit c080f0d97f
26930 changed files with 2529574 additions and 0 deletions

View File

@@ -0,0 +1,189 @@
package com.google.zxing.qrcode.encoder;
/* loaded from: classes3.dex */
public abstract class MaskUtil {
public static int applyMaskPenaltyRule1(ByteMatrix byteMatrix) {
return applyMaskPenaltyRule1Internal(byteMatrix, true) + applyMaskPenaltyRule1Internal(byteMatrix, false);
}
public static int applyMaskPenaltyRule2(ByteMatrix byteMatrix) {
byte[][] array = byteMatrix.getArray();
int width = byteMatrix.getWidth();
int height = byteMatrix.getHeight();
int i = 0;
for (int i2 = 0; i2 < height - 1; i2++) {
byte[] bArr = array[i2];
int i3 = 0;
while (i3 < width - 1) {
byte b = bArr[i3];
int i4 = i3 + 1;
if (b == bArr[i4]) {
byte[] bArr2 = array[i2 + 1];
if (b == bArr2[i3] && b == bArr2[i4]) {
i++;
}
}
i3 = i4;
}
}
return i * 3;
}
public static int applyMaskPenaltyRule3(ByteMatrix byteMatrix) {
byte[][] array = byteMatrix.getArray();
int width = byteMatrix.getWidth();
int height = byteMatrix.getHeight();
int i = 0;
for (int i2 = 0; i2 < height; i2++) {
for (int i3 = 0; i3 < width; i3++) {
byte[] bArr = array[i2];
int i4 = i3 + 6;
if (i4 < width && bArr[i3] == 1 && bArr[i3 + 1] == 0 && bArr[i3 + 2] == 1 && bArr[i3 + 3] == 1 && bArr[i3 + 4] == 1 && bArr[i3 + 5] == 0 && bArr[i4] == 1 && (isWhiteHorizontal(bArr, i3 - 4, i3) || isWhiteHorizontal(bArr, i3 + 7, i3 + 11))) {
i++;
}
int i5 = i2 + 6;
if (i5 < height && array[i2][i3] == 1 && array[i2 + 1][i3] == 0 && array[i2 + 2][i3] == 1 && array[i2 + 3][i3] == 1 && array[i2 + 4][i3] == 1 && array[i2 + 5][i3] == 0 && array[i5][i3] == 1 && (isWhiteVertical(array, i3, i2 - 4, i2) || isWhiteVertical(array, i3, i2 + 7, i2 + 11))) {
i++;
}
}
}
return i * 40;
}
public static boolean isWhiteHorizontal(byte[] bArr, int i, int i2) {
int min = Math.min(i2, bArr.length);
for (int max = Math.max(i, 0); max < min; max++) {
if (bArr[max] == 1) {
return false;
}
}
return true;
}
public static boolean isWhiteVertical(byte[][] bArr, int i, int i2, int i3) {
int min = Math.min(i3, bArr.length);
for (int max = Math.max(i2, 0); max < min; max++) {
if (bArr[max][i] == 1) {
return false;
}
}
return true;
}
public static int applyMaskPenaltyRule4(ByteMatrix byteMatrix) {
byte[][] array = byteMatrix.getArray();
int width = byteMatrix.getWidth();
int height = byteMatrix.getHeight();
int i = 0;
for (int i2 = 0; i2 < height; i2++) {
byte[] bArr = array[i2];
for (int i3 = 0; i3 < width; i3++) {
if (bArr[i3] == 1) {
i++;
}
}
}
int height2 = byteMatrix.getHeight() * byteMatrix.getWidth();
return ((Math.abs((i << 1) - height2) * 10) / height2) * 10;
}
/* JADX WARN: Can't fix incorrect switch cases order, some code will duplicate */
/* JADX WARN: Removed duplicated region for block: B:10:0x003d A[RETURN] */
/* JADX WARN: Removed duplicated region for block: B:9:0x003c A[RETURN] */
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public static boolean getDataMaskBit(int r1, int r2, int r3) {
/*
r0 = 1
switch(r1) {
case 0: goto L30;
case 1: goto L31;
case 2: goto L38;
case 3: goto L34;
case 4: goto L2c;
case 5: goto L25;
case 6: goto L1e;
case 7: goto L14;
default: goto L4;
}
L4:
java.lang.IllegalArgumentException r2 = new java.lang.IllegalArgumentException
java.lang.String r3 = "Invalid mask pattern: "
java.lang.String r1 = java.lang.String.valueOf(r1)
java.lang.String r1 = r3.concat(r1)
r2.<init>(r1)
throw r2
L14:
int r1 = r3 * r2
int r1 = r1 % 3
int r3 = r3 + r2
r2 = r3 & 1
int r1 = r1 + r2
L1c:
r1 = r1 & r0
goto L3a
L1e:
int r3 = r3 * r2
r1 = r3 & 1
int r3 = r3 % 3
int r1 = r1 + r3
goto L1c
L25:
int r3 = r3 * r2
r1 = r3 & 1
int r3 = r3 % 3
int r1 = r1 + r3
goto L3a
L2c:
int r3 = r3 / 2
int r2 = r2 / 3
L30:
int r3 = r3 + r2
L31:
r1 = r3 & 1
goto L3a
L34:
int r3 = r3 + r2
int r1 = r3 % 3
goto L3a
L38:
int r1 = r2 % 3
L3a:
if (r1 != 0) goto L3d
return r0
L3d:
r1 = 0
return r1
*/
throw new UnsupportedOperationException("Method not decompiled: com.google.zxing.qrcode.encoder.MaskUtil.getDataMaskBit(int, int, int):boolean");
}
public static int applyMaskPenaltyRule1Internal(ByteMatrix byteMatrix, boolean z) {
int height = z ? byteMatrix.getHeight() : byteMatrix.getWidth();
int width = z ? byteMatrix.getWidth() : byteMatrix.getHeight();
byte[][] array = byteMatrix.getArray();
int i = 0;
for (int i2 = 0; i2 < height; i2++) {
byte b = -1;
int i3 = 0;
for (int i4 = 0; i4 < width; i4++) {
byte b2 = z ? array[i2][i4] : array[i4][i2];
if (b2 == b) {
i3++;
} else {
if (i3 >= 5) {
i += i3 - 2;
}
i3 = 1;
b = b2;
}
}
if (i3 >= 5) {
i += i3 - 2;
}
}
return i;
}
}