157 lines
6.4 KiB
Java
157 lines
6.4 KiB
Java
package c.i.e.p;
|
|
|
|
import c.i.e.d;
|
|
import c.i.e.i;
|
|
import c.i.e.j;
|
|
import c.i.e.k;
|
|
import c.i.e.n.b;
|
|
import c.i.e.p.b.c;
|
|
import com.google.zxing.ChecksumException;
|
|
import com.google.zxing.FormatException;
|
|
import com.google.zxing.NotFoundException;
|
|
import com.google.zxing.Result;
|
|
import java.text.DecimalFormat;
|
|
import java.util.Map;
|
|
import java.util.Objects;
|
|
/* compiled from: MaxiCodeReader */
|
|
public final class a implements i {
|
|
public static final k[] a = new k[0];
|
|
public final c b = new c();
|
|
|
|
@Override // c.i.e.i
|
|
public Result a(c.i.e.c cVar, Map<d, ?> map) throws NotFoundException, ChecksumException, FormatException {
|
|
byte[] bArr;
|
|
String str;
|
|
if (map == null || !map.containsKey(d.PURE_BARCODE)) {
|
|
throw NotFoundException.k;
|
|
}
|
|
b a2 = cVar.a();
|
|
int i = a2.i;
|
|
int i2 = a2.j;
|
|
int i3 = -1;
|
|
int i4 = -1;
|
|
for (int i5 = 0; i5 < a2.j; i5++) {
|
|
int i6 = 0;
|
|
while (true) {
|
|
int i7 = a2.k;
|
|
if (i6 >= i7) {
|
|
break;
|
|
}
|
|
int i8 = a2.l[(i7 * i5) + i6];
|
|
if (i8 != 0) {
|
|
if (i5 < i2) {
|
|
i2 = i5;
|
|
}
|
|
if (i5 > i4) {
|
|
i4 = i5;
|
|
}
|
|
int i9 = i6 << 5;
|
|
if (i9 < i) {
|
|
int i10 = 0;
|
|
while ((i8 << (31 - i10)) == 0) {
|
|
i10++;
|
|
}
|
|
int i11 = i10 + i9;
|
|
if (i11 < i) {
|
|
i = i11;
|
|
}
|
|
}
|
|
if (i9 + 31 > i3) {
|
|
int i12 = 31;
|
|
while ((i8 >>> i12) == 0) {
|
|
i12--;
|
|
}
|
|
int i13 = i9 + i12;
|
|
if (i13 > i3) {
|
|
i3 = i13;
|
|
}
|
|
}
|
|
}
|
|
i6++;
|
|
}
|
|
}
|
|
int[] iArr = (i3 < i || i4 < i2) ? null : new int[]{i, i2, (i3 - i) + 1, (i4 - i2) + 1};
|
|
if (iArr != null) {
|
|
int i14 = iArr[0];
|
|
int i15 = iArr[1];
|
|
int i16 = iArr[2];
|
|
int i17 = iArr[3];
|
|
int i18 = (30 + 31) / 32;
|
|
int[] iArr2 = new int[(i18 * 33)];
|
|
for (int i19 = 0; i19 < 33; i19++) {
|
|
int i20 = (((i17 / 2) + (i19 * i17)) / 33) + i15;
|
|
for (int i21 = 0; i21 < 30; i21++) {
|
|
if (a2.f((((((i19 & 1) * i16) / 2) + ((i16 / 2) + (i21 * i16))) / 30) + i14, i20)) {
|
|
int i22 = (i21 / 32) + (i19 * i18);
|
|
iArr2[i22] = (1 << (i21 & 31)) | iArr2[i22];
|
|
}
|
|
}
|
|
}
|
|
c cVar2 = this.b;
|
|
Objects.requireNonNull(cVar2);
|
|
byte[] bArr2 = new byte[144];
|
|
for (int i23 = 0; i23 < 33; i23++) {
|
|
int[] iArr3 = c.i.e.p.b.a.a[i23];
|
|
for (int i24 = 0; i24 < 30; i24++) {
|
|
int i25 = iArr3[i24];
|
|
if (i25 >= 0) {
|
|
if (((iArr2[(i24 / 32) + (i23 * i18)] >>> (i24 & 31)) & 1) != 0) {
|
|
int i26 = i25 / 6;
|
|
bArr2[i26] = (byte) (((byte) (1 << (5 - (i25 % 6)))) | bArr2[i26]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
cVar2.a(bArr2, 0, 10, 10, 0);
|
|
int i27 = bArr2[0] & 15;
|
|
if (i27 == 2 || i27 == 3 || i27 == 4) {
|
|
cVar2.a(bArr2, 20, 84, 40, 1);
|
|
cVar2.a(bArr2, 20, 84, 40, 2);
|
|
bArr = new byte[94];
|
|
} else if (i27 == 5) {
|
|
cVar2.a(bArr2, 20, 68, 56, 1);
|
|
cVar2.a(bArr2, 20, 68, 56, 2);
|
|
bArr = new byte[78];
|
|
} else {
|
|
throw FormatException.a();
|
|
}
|
|
System.arraycopy(bArr2, 0, bArr, 0, 10);
|
|
System.arraycopy(bArr2, 20, bArr, 10, bArr.length - 10);
|
|
StringBuilder sb = new StringBuilder(144);
|
|
if (i27 == 2 || i27 == 3) {
|
|
if (i27 == 2) {
|
|
str = new DecimalFormat("0000000000".substring(0, c.i.e.p.b.b.a(bArr, new byte[]{39, 40, 41, 42, 31, 32}))).format((long) c.i.e.p.b.b.a(bArr, new byte[]{33, 34, 35, 36, 25, 26, 27, 28, 29, 30, 19, 20, 21, 22, 23, 24, 13, 14, 15, 16, 17, 18, 7, 8, 9, 10, 11, 12, 1, 2}));
|
|
} else {
|
|
String[] strArr = c.i.e.p.b.b.a;
|
|
str = String.valueOf(new char[]{strArr[0].charAt(c.i.e.p.b.b.a(bArr, new byte[]{39, 40, 41, 42, 31, 32})), strArr[0].charAt(c.i.e.p.b.b.a(bArr, new byte[]{33, 34, 35, 36, 25, 26})), strArr[0].charAt(c.i.e.p.b.b.a(bArr, new byte[]{27, 28, 29, 30, 19, 20})), strArr[0].charAt(c.i.e.p.b.b.a(bArr, new byte[]{21, 22, 23, 24, 13, 14})), strArr[0].charAt(c.i.e.p.b.b.a(bArr, new byte[]{15, 16, 17, 18, 7, 8})), strArr[0].charAt(c.i.e.p.b.b.a(bArr, new byte[]{9, 10, 11, 12, 1, 2}))});
|
|
}
|
|
DecimalFormat decimalFormat = new DecimalFormat("000");
|
|
String format = decimalFormat.format((long) c.i.e.p.b.b.a(bArr, new byte[]{53, 54, 43, 44, 45, 46, 47, 48, 37, 38}));
|
|
String format2 = decimalFormat.format((long) c.i.e.p.b.b.a(bArr, new byte[]{55, 56, 57, 58, 59, 60, 49, 50, 51, 52}));
|
|
sb.append(c.i.e.p.b.b.b(bArr, 10, 84));
|
|
if (sb.toString().startsWith("[)>\u001e01\u001d")) {
|
|
sb.insert(9, str + (char) 29 + format + (char) 29 + format2 + (char) 29);
|
|
} else {
|
|
sb.insert(0, str + (char) 29 + format + (char) 29 + format2 + (char) 29);
|
|
}
|
|
} else if (i27 == 4) {
|
|
sb.append(c.i.e.p.b.b.b(bArr, 1, 93));
|
|
} else if (i27 == 5) {
|
|
sb.append(c.i.e.p.b.b.b(bArr, 1, 77));
|
|
}
|
|
String sb2 = sb.toString();
|
|
String valueOf = String.valueOf(i27);
|
|
Result result = new Result(sb2, bArr, a, c.i.e.a.MAXICODE);
|
|
if (valueOf != null) {
|
|
result.b(j.ERROR_CORRECTION_LEVEL, valueOf);
|
|
}
|
|
return result;
|
|
}
|
|
throw NotFoundException.k;
|
|
}
|
|
|
|
@Override // c.i.e.i
|
|
public void reset() {
|
|
}
|
|
}
|