package com.google.zxing.qrcode.detector; import com.google.zxing.DecodeHintType; import com.google.zxing.NotFoundException; import com.google.zxing.ResultPoint; import com.google.zxing.ResultPointCallback; import com.google.zxing.common.BitMatrix; import java.io.Serializable; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; import java.util.Map; /* loaded from: classes.dex */ public class FinderPatternFinder { private final BitMatrix a; private boolean c; private final ResultPointCallback e; private final List b = new ArrayList(); private final int[] d = new int[5]; private static final class CenterComparator implements Serializable, Comparator { private final float a; @Override // java.util.Comparator /* renamed from: a, reason: merged with bridge method [inline-methods] */ public int compare(FinderPattern finderPattern, FinderPattern finderPattern2) { int compare = Integer.compare(finderPattern2.c(), finderPattern.c()); return compare == 0 ? Float.compare(Math.abs(finderPattern.d() - this.a), Math.abs(finderPattern2.d() - this.a)) : compare; } private CenterComparator(float f) { this.a = f; } } private static final class FurthestFromAverageComparator implements Serializable, Comparator { private final float a; @Override // java.util.Comparator /* renamed from: a, reason: merged with bridge method [inline-methods] */ public int compare(FinderPattern finderPattern, FinderPattern finderPattern2) { return Float.compare(Math.abs(finderPattern2.d() - this.a), Math.abs(finderPattern.d() - this.a)); } private FurthestFromAverageComparator(float f) { this.a = f; } } public FinderPatternFinder(BitMatrix bitMatrix, ResultPointCallback resultPointCallback) { this.a = bitMatrix; this.e = resultPointCallback; } private int[] b() { a(this.d); return this.d; } protected static boolean c(int[] iArr) { int i = 0; for (int i2 = 0; i2 < 5; i2++) { int i3 = iArr[i2]; if (i3 == 0) { return false; } i += i3; } if (i < 7) { return false; } float f = i / 7.0f; float f2 = f / 2.0f; return Math.abs(f - ((float) iArr[0])) < f2 && Math.abs(f - ((float) iArr[1])) < f2 && Math.abs((f * 3.0f) - ((float) iArr[2])) < 3.0f * f2 && Math.abs(f - ((float) iArr[3])) < f2 && Math.abs(f - ((float) iArr[4])) < f2; } protected static boolean d(int[] iArr) { int i = 0; for (int i2 = 0; i2 < 5; i2++) { int i3 = iArr[i2]; if (i3 == 0) { return false; } i += i3; } if (i < 7) { return false; } float f = i / 7.0f; float f2 = f / 1.333f; return Math.abs(f - ((float) iArr[0])) < f2 && Math.abs(f - ((float) iArr[1])) < f2 && Math.abs((f * 3.0f) - ((float) iArr[2])) < 3.0f * f2 && Math.abs(f - ((float) iArr[3])) < f2 && Math.abs(f - ((float) iArr[4])) < f2; } final FinderPatternInfo a(Map map) throws NotFoundException { boolean z = map != null && map.containsKey(DecodeHintType.TRY_HARDER); int i = this.a.i(); int k = this.a.k(); int i2 = (i * 3) / 388; if (i2 < 3 || z) { i2 = 3; } int[] iArr = new int[5]; int i3 = i2 - 1; int i4 = i2; boolean z2 = false; while (i3 < i && !z2) { a(iArr); boolean z3 = z2; int i5 = i4; int i6 = 0; int i7 = 0; while (i6 < k) { if (this.a.b(i6, i3)) { if ((i7 & 1) == 1) { i7++; } iArr[i7] = iArr[i7] + 1; } else if ((i7 & 1) != 0) { iArr[i7] = iArr[i7] + 1; } else if (i7 == 4) { if (!c(iArr)) { b(iArr); } else if (a(iArr, i3, i6)) { if (this.c) { z3 = c(); } else { int a = a(); if (a > iArr[2]) { i3 += (a - iArr[2]) - 2; i6 = k - 1; } } a(iArr); i7 = 0; i5 = 2; } else { b(iArr); } i7 = 3; } else { i7++; iArr[i7] = iArr[i7] + 1; } i6++; } if (c(iArr) && a(iArr, i3, k)) { int i8 = iArr[0]; if (this.c) { i4 = i8; z2 = c(); i3 += i4; } else { i4 = i8; } } else { i4 = i5; } z2 = z3; i3 += i4; } FinderPattern[] d = d(); ResultPoint.a(d); return new FinderPatternInfo(d); } protected final void b(int[] iArr) { iArr[0] = iArr[2]; iArr[1] = iArr[3]; iArr[2] = iArr[4]; iArr[3] = 1; iArr[4] = 0; } /* JADX WARN: Code restructure failed: missing block: B:21:0x003a, code lost: if (r2[1] <= r13) goto L21; */ /* JADX WARN: Code restructure failed: missing block: B:23:0x003f, code lost: if (r3 < 0) goto L74; */ /* JADX WARN: Code restructure failed: missing block: B:25:0x0045, code lost: if (r0.b(r12, r3) == false) goto L72; */ /* JADX WARN: Code restructure failed: missing block: B:27:0x0049, code lost: if (r2[0] > r13) goto L73; */ /* JADX WARN: Code restructure failed: missing block: B:28:0x004b, code lost: r2[0] = r2[0] + 1; r3 = r3 - 1; */ /* JADX WARN: Code restructure failed: missing block: B:31:0x0055, code lost: if (r2[0] <= r13) goto L31; */ /* JADX WARN: Code restructure failed: missing block: B:32:0x0057, code lost: return Float.NaN; */ /* JADX WARN: Code restructure failed: missing block: B:33:0x0058, code lost: r11 = r11 + 1; */ /* JADX WARN: Code restructure failed: missing block: B:34:0x0059, code lost: if (r11 >= r1) goto L75; */ /* JADX WARN: Code restructure failed: missing block: B:36:0x005f, code lost: if (r0.b(r12, r11) == false) goto L76; */ /* JADX WARN: Code restructure failed: missing block: B:37:0x0061, code lost: r2[2] = r2[2] + 1; r11 = r11 + 1; */ /* JADX WARN: Code restructure failed: missing block: B:39:0x0069, code lost: if (r11 != r1) goto L38; */ /* JADX WARN: Code restructure failed: missing block: B:40:0x006b, code lost: return Float.NaN; */ /* JADX WARN: Code restructure failed: missing block: B:42:0x006d, code lost: if (r11 >= r1) goto L79; */ /* JADX WARN: Code restructure failed: missing block: B:44:0x0073, code lost: if (r0.b(r12, r11) != false) goto L77; */ /* JADX WARN: Code restructure failed: missing block: B:46:0x0077, code lost: if (r2[3] >= r13) goto L78; */ /* JADX WARN: Code restructure failed: missing block: B:47:0x0079, code lost: r2[3] = r2[3] + 1; r11 = r11 + 1; */ /* JADX WARN: Code restructure failed: missing block: B:49:0x0081, code lost: if (r11 == r1) goto L66; */ /* JADX WARN: Code restructure failed: missing block: B:51:0x0085, code lost: if (r2[3] < r13) goto L49; */ /* JADX WARN: Code restructure failed: missing block: B:53:0x0089, code lost: if (r11 >= r1) goto L81; */ /* JADX WARN: Code restructure failed: missing block: B:55:0x008f, code lost: if (r0.b(r12, r11) == false) goto L82; */ /* JADX WARN: Code restructure failed: missing block: B:57:0x0093, code lost: if (r2[4] >= r13) goto L80; */ /* JADX WARN: Code restructure failed: missing block: B:58:0x0095, code lost: r2[4] = r2[4] + 1; r11 = r11 + 1; */ /* JADX WARN: Code restructure failed: missing block: B:61:0x009f, code lost: if (r2[4] < r13) goto L59; */ /* JADX WARN: Code restructure failed: missing block: B:62:0x00a1, code lost: return Float.NaN; */ /* JADX WARN: Code restructure failed: missing block: B:64:0x00b9, code lost: if ((java.lang.Math.abs(((((r2[0] + r2[1]) + r2[2]) + r2[3]) + r2[4]) - r14) * 5) < (r14 * 2)) goto L62; */ /* JADX WARN: Code restructure failed: missing block: B:65:0x00bb, code lost: return Float.NaN; */ /* JADX WARN: Code restructure failed: missing block: B:67:0x00c0, code lost: if (c(r2) == false) goto L66; */ /* JADX WARN: Code restructure failed: missing block: B:69:0x00c6, code lost: return a(r2, r11); */ /* Code decompiled incorrectly, please refer to instructions dump. To view partially-correct code enable 'Show inconsistent code' option in preferences */ private float b(int r11, int r12, int r13, int r14) { /* Method dump skipped, instructions count: 200 To view this dump change 'Code comments level' option to 'DEBUG' */ throw new UnsupportedOperationException("Method not decompiled: com.google.zxing.qrcode.detector.FinderPatternFinder.b(int, int, int, int):float"); } private boolean c() { int size = this.b.size(); float f = 0.0f; int i = 0; float f2 = 0.0f; for (FinderPattern finderPattern : this.b) { if (finderPattern.c() >= 2) { i++; f2 += finderPattern.d(); } } if (i < 3) { return false; } float f3 = f2 / size; Iterator it = this.b.iterator(); while (it.hasNext()) { f += Math.abs(it.next().d() - f3); } return f <= f2 * 0.05f; } private FinderPattern[] d() throws NotFoundException { int size = this.b.size(); if (size >= 3) { float f = 0.0f; if (size > 3) { Iterator it = this.b.iterator(); float f2 = 0.0f; float f3 = 0.0f; while (it.hasNext()) { float d = it.next().d(); f2 += d; f3 += d * d; } float f4 = f2 / size; float sqrt = (float) Math.sqrt((f3 / r0) - (f4 * f4)); Collections.sort(this.b, new FurthestFromAverageComparator(f4)); float max = Math.max(0.2f * f4, sqrt); int i = 0; while (i < this.b.size() && this.b.size() > 3) { if (Math.abs(this.b.get(i).d() - f4) > max) { this.b.remove(i); i--; } i++; } } if (this.b.size() > 3) { Iterator it2 = this.b.iterator(); while (it2.hasNext()) { f += it2.next().d(); } Collections.sort(this.b, new CenterComparator(f / this.b.size())); List list = this.b; list.subList(3, list.size()).clear(); } return new FinderPattern[]{this.b.get(0), this.b.get(1), this.b.get(2)}; } throw NotFoundException.getNotFoundInstance(); } private static float a(int[] iArr, int i) { return ((i - iArr[4]) - iArr[3]) - (iArr[2] / 2.0f); } protected final void a(int[] iArr) { for (int i = 0; i < iArr.length; i++) { iArr[i] = 0; } } private boolean a(int i, int i2) { int i3; int i4; int i5; int[] b = b(); int i6 = 0; while (i >= i6 && i2 >= i6 && this.a.b(i2 - i6, i - i6)) { b[2] = b[2] + 1; i6++; } if (b[2] == 0) { return false; } while (i >= i6 && i2 >= i6 && !this.a.b(i2 - i6, i - i6)) { b[1] = b[1] + 1; i6++; } if (b[1] == 0) { return false; } while (i >= i6 && i2 >= i6 && this.a.b(i2 - i6, i - i6)) { b[0] = b[0] + 1; i6++; } if (b[0] == 0) { return false; } int i7 = this.a.i(); int k = this.a.k(); int i8 = 1; while (true) { int i9 = i + i8; if (i9 >= i7 || (i5 = i2 + i8) >= k || !this.a.b(i5, i9)) { break; } b[2] = b[2] + 1; i8++; } while (true) { int i10 = i + i8; if (i10 >= i7 || (i4 = i2 + i8) >= k || this.a.b(i4, i10)) { break; } b[3] = b[3] + 1; i8++; } if (b[3] == 0) { return false; } while (true) { int i11 = i + i8; if (i11 >= i7 || (i3 = i2 + i8) >= k || !this.a.b(i3, i11)) { break; } b[4] = b[4] + 1; i8++; } if (b[4] == 0) { return false; } return d(b); } /* JADX WARN: Code restructure failed: missing block: B:21:0x003a, code lost: if (r2[1] <= r13) goto L21; */ /* JADX WARN: Code restructure failed: missing block: B:23:0x003f, code lost: if (r3 < 0) goto L74; */ /* JADX WARN: Code restructure failed: missing block: B:25:0x0045, code lost: if (r0.b(r3, r12) == false) goto L72; */ /* JADX WARN: Code restructure failed: missing block: B:27:0x0049, code lost: if (r2[0] > r13) goto L73; */ /* JADX WARN: Code restructure failed: missing block: B:28:0x004b, code lost: r2[0] = r2[0] + 1; r3 = r3 - 1; */ /* JADX WARN: Code restructure failed: missing block: B:31:0x0055, code lost: if (r2[0] <= r13) goto L31; */ /* JADX WARN: Code restructure failed: missing block: B:32:0x0057, code lost: return Float.NaN; */ /* JADX WARN: Code restructure failed: missing block: B:33:0x0058, code lost: r11 = r11 + 1; */ /* JADX WARN: Code restructure failed: missing block: B:34:0x0059, code lost: if (r11 >= r1) goto L75; */ /* JADX WARN: Code restructure failed: missing block: B:36:0x005f, code lost: if (r0.b(r11, r12) == false) goto L76; */ /* JADX WARN: Code restructure failed: missing block: B:37:0x0061, code lost: r2[2] = r2[2] + 1; r11 = r11 + 1; */ /* JADX WARN: Code restructure failed: missing block: B:39:0x0069, code lost: if (r11 != r1) goto L38; */ /* JADX WARN: Code restructure failed: missing block: B:40:0x006b, code lost: return Float.NaN; */ /* JADX WARN: Code restructure failed: missing block: B:42:0x006d, code lost: if (r11 >= r1) goto L79; */ /* JADX WARN: Code restructure failed: missing block: B:44:0x0073, code lost: if (r0.b(r11, r12) != false) goto L77; */ /* JADX WARN: Code restructure failed: missing block: B:46:0x0077, code lost: if (r2[3] >= r13) goto L78; */ /* JADX WARN: Code restructure failed: missing block: B:47:0x0079, code lost: r2[3] = r2[3] + 1; r11 = r11 + 1; */ /* JADX WARN: Code restructure failed: missing block: B:49:0x0081, code lost: if (r11 == r1) goto L66; */ /* JADX WARN: Code restructure failed: missing block: B:51:0x0085, code lost: if (r2[3] < r13) goto L49; */ /* JADX WARN: Code restructure failed: missing block: B:53:0x0089, code lost: if (r11 >= r1) goto L81; */ /* JADX WARN: Code restructure failed: missing block: B:55:0x008f, code lost: if (r0.b(r11, r12) == false) goto L82; */ /* JADX WARN: Code restructure failed: missing block: B:57:0x0093, code lost: if (r2[4] >= r13) goto L80; */ /* JADX WARN: Code restructure failed: missing block: B:58:0x0095, code lost: r2[4] = r2[4] + 1; r11 = r11 + 1; */ /* JADX WARN: Code restructure failed: missing block: B:61:0x009f, code lost: if (r2[4] < r13) goto L59; */ /* JADX WARN: Code restructure failed: missing block: B:62:0x00a1, code lost: return Float.NaN; */ /* JADX WARN: Code restructure failed: missing block: B:64:0x00b7, code lost: if ((java.lang.Math.abs(((((r2[0] + r2[1]) + r2[2]) + r2[3]) + r2[4]) - r14) * 5) < r14) goto L62; */ /* JADX WARN: Code restructure failed: missing block: B:65:0x00b9, code lost: return Float.NaN; */ /* JADX WARN: Code restructure failed: missing block: B:67:0x00be, code lost: if (c(r2) == false) goto L66; */ /* JADX WARN: Code restructure failed: missing block: B:69:0x00c4, code lost: return a(r2, r11); */ /* Code decompiled incorrectly, please refer to instructions dump. To view partially-correct code enable 'Show inconsistent code' option in preferences */ private float a(int r11, int r12, int r13, int r14) { /* Method dump skipped, instructions count: 198 To view this dump change 'Code comments level' option to 'DEBUG' */ throw new UnsupportedOperationException("Method not decompiled: com.google.zxing.qrcode.detector.FinderPatternFinder.a(int, int, int, int):float"); } protected final boolean a(int[] iArr, int i, int i2) { boolean z = false; int i3 = iArr[0] + iArr[1] + iArr[2] + iArr[3] + iArr[4]; int a = (int) a(iArr, i2); float b = b(i, a, iArr[2], i3); if (!Float.isNaN(b)) { int i4 = (int) b; float a2 = a(a, i4, iArr[2], i3); if (!Float.isNaN(a2) && a(i4, (int) a2)) { float f = i3 / 7.0f; int i5 = 0; while (true) { if (i5 >= this.b.size()) { break; } FinderPattern finderPattern = this.b.get(i5); if (finderPattern.a(f, b, a2)) { this.b.set(i5, finderPattern.b(b, a2, f)); z = true; break; } i5++; } if (!z) { FinderPattern finderPattern2 = new FinderPattern(a2, b, f); this.b.add(finderPattern2); ResultPointCallback resultPointCallback = this.e; if (resultPointCallback != null) { resultPointCallback.a(finderPattern2); } } return true; } } return false; } private int a() { if (this.b.size() <= 1) { return 0; } FinderPattern finderPattern = null; for (FinderPattern finderPattern2 : this.b) { if (finderPattern2.c() >= 2) { if (finderPattern != null) { this.c = true; return ((int) (Math.abs(finderPattern.a() - finderPattern2.a()) - Math.abs(finderPattern.b() - finderPattern2.b()))) / 2; } finderPattern = finderPattern2; } } return 0; } }