package com.google.zxing.maxicode.decoder; import com.google.common.base.Ascii; import com.google.zxing.ChecksumException; import com.google.zxing.DecodeHintType; import com.google.zxing.FormatException; import com.google.zxing.common.BitMatrix; import com.google.zxing.common.DecoderResult; import com.google.zxing.common.reedsolomon.GenericGF; import com.google.zxing.common.reedsolomon.ReedSolomonDecoder; import com.google.zxing.common.reedsolomon.ReedSolomonException; import java.util.Map; /* loaded from: classes3.dex */ public final class Decoder { private static final int ALL = 0; private static final int EVEN = 1; private static final int ODD = 2; private final ReedSolomonDecoder rsDecoder = new ReedSolomonDecoder(GenericGF.MAXICODE_FIELD_64); public DecoderResult decode(BitMatrix bitMatrix) throws ChecksumException, FormatException { return decode(bitMatrix, null); } public DecoderResult decode(BitMatrix bitMatrix, Map map) throws FormatException, ChecksumException { byte[] bArr; byte[] readCodewords = new BitMatrixParser(bitMatrix).readCodewords(); correctErrors(readCodewords, 0, 10, 10, 0); int i = readCodewords[0] & Ascii.SI; if (i == 2 || i == 3 || i == 4) { correctErrors(readCodewords, 20, 84, 40, 1); correctErrors(readCodewords, 20, 84, 40, 2); bArr = new byte[94]; } else if (i == 5) { correctErrors(readCodewords, 20, 68, 56, 1); correctErrors(readCodewords, 20, 68, 56, 2); bArr = new byte[78]; } else { throw FormatException.getFormatInstance(); } System.arraycopy(readCodewords, 0, bArr, 0, 10); System.arraycopy(readCodewords, 20, bArr, 10, bArr.length - 10); return DecodedBitStreamParser.decode(bArr, i); } private void correctErrors(byte[] bArr, int i, int i2, int i3, int i4) throws ChecksumException { int i5 = i2 + i3; int i6 = i4 == 0 ? 1 : 2; int[] iArr = new int[i5 / i6]; for (int i7 = 0; i7 < i5; i7++) { if (i4 == 0 || i7 % 2 == i4 - 1) { iArr[i7 / i6] = bArr[i7 + i] & 255; } } try { this.rsDecoder.decode(iArr, i3 / i6); for (int i8 = 0; i8 < i2; i8++) { if (i4 == 0 || i8 % 2 == i4 - 1) { bArr[i8 + i] = (byte) iArr[i8 / i6]; } } } catch (ReedSolomonException unused) { throw ChecksumException.getChecksumInstance(); } } }