--- /home/fdroid/fdroiddata/tmp/com.github.xloem.qrstream_9.apk +++ /home/fdroid/fdroiddata/tmp/sigcp_com.github.xloem.qrstream_9.apk ├── zipinfo /dev/stdin │ @@ -1,37 +1,35 @@ │ -Zip file size: 294305 bytes, number of entries: 35 │ +Zip file size: 293046 bytes, number of entries: 33 │ -rw---- 2.0 fat 2758 bl defN 15-Nov-02 09:10 META-INF/MANIFEST.MF │ -rw---- 2.0 fat 2879 bl defN 15-Nov-02 09:10 META-INF/3AB63F5D.SF │ -rw---- 2.0 fat 1326 bl defN 15-Nov-02 09:10 META-INF/3AB63F5D.RSA │ --rw---- 2.0 fat 41 bl defN 15-Nov-01 08:08 META-INF/buildserverid │ --rw---- 2.0 fat 41 bl defN 15-Nov-01 08:08 META-INF/fdroidserverid │ --rw---- 2.0 fat 3572 bX defN 15-Nov-01 08:08 AndroidManifest.xml │ --rw---- 1.0 fat 450 b- stor 15-Nov-01 08:07 res/drawable-hdpi-v4/ic_clipboard.png │ --rw---- 1.0 fat 717 b- stor 15-Nov-01 08:07 res/drawable-hdpi-v4/ic_file.png │ --rw---- 1.0 fat 2870 b- stor 15-Nov-01 08:07 res/drawable-hdpi-v4/ic_launcher.png │ --rw---- 1.0 fat 1430 b- stor 15-Nov-01 08:07 res/drawable-hdpi-v4/ic_receive.png │ --rw---- 1.0 fat 389 b- stor 15-Nov-01 08:07 res/drawable-hdpi-v4/ic_settings.png │ --rw---- 1.0 fat 530 b- stor 15-Nov-01 08:07 res/drawable-mdpi-v4/ic_clipboard.png │ --rw---- 1.0 fat 506 b- stor 15-Nov-01 08:07 res/drawable-mdpi-v4/ic_file.png │ --rw---- 1.0 fat 2027 b- stor 15-Nov-01 08:07 res/drawable-mdpi-v4/ic_launcher.png │ --rw---- 1.0 fat 1075 b- stor 15-Nov-01 08:07 res/drawable-mdpi-v4/ic_receive.png │ --rw---- 1.0 fat 383 b- stor 15-Nov-01 08:07 res/drawable-mdpi-v4/ic_settings.png │ --rw---- 1.0 fat 757 b- stor 15-Nov-01 08:07 res/drawable-xhdpi-v4/ic_clipboard.png │ --rw---- 1.0 fat 852 b- stor 15-Nov-01 08:07 res/drawable-xhdpi-v4/ic_file.png │ --rw---- 1.0 fat 3635 b- stor 15-Nov-01 08:07 res/drawable-xhdpi-v4/ic_launcher.png │ --rw---- 1.0 fat 1771 b- stor 15-Nov-01 08:07 res/drawable-xhdpi-v4/ic_receive.png │ --rw---- 1.0 fat 534 b- stor 15-Nov-01 08:07 res/drawable-xhdpi-v4/ic_settings.png │ --rw---- 1.0 fat 1041 b- stor 15-Nov-01 08:07 res/drawable-xxhdpi-v4/ic_clipboard.png │ --rw---- 1.0 fat 1195 b- stor 15-Nov-01 08:07 res/drawable-xxhdpi-v4/ic_file.png │ --rw---- 1.0 fat 2815 b- stor 15-Nov-01 08:07 res/drawable-xxhdpi-v4/ic_launcher.png │ --rw---- 1.0 fat 2436 b- stor 15-Nov-01 08:07 res/drawable-xxhdpi-v4/ic_receive.png │ --rw---- 1.0 fat 943 b- stor 15-Nov-01 08:07 res/drawable-xxhdpi-v4/ic_settings.png │ --rw---- 2.0 fat 1076 bl defN 15-Nov-01 08:08 res/layout/activity_launcher.xml │ --rw---- 2.0 fat 1240 bl defN 15-Nov-01 08:08 res/layout/activity_send.xml │ --rw---- 2.0 fat 632 bl defN 15-Nov-01 08:08 res/xml-v11/pref_headers.xml │ --rw---- 2.0 fat 240 bl defN 15-Nov-01 08:08 res/xml/pref_general.xml │ --rw---- 2.0 fat 436 bl defN 15-Nov-01 08:08 res/xml/pref_headers.xml │ --rw---- 2.0 fat 708 bl defN 15-Nov-01 08:08 res/xml/pref_receiving.xml │ --rw---- 2.0 fat 852 bl defN 15-Nov-01 08:08 res/xml/pref_sending.xml │ --rw---- 1.0 fat 7412 b- stor 15-Nov-01 08:07 resources.arsc │ --rw---- 2.0 fat 677488 bl defN 15-Nov-01 08:08 classes.dex │ -35 files, 727057 bytes uncompressed, 289258 bytes compressed: 60.2% │ +-rw---- 2.0 fat 3572 bX defN 17-Oct-08 00:38 AndroidManifest.xml │ +-rw---- 1.0 fat 450 b- stor 17-Oct-08 00:38 res/drawable-hdpi-v4/ic_clipboard.png │ +-rw---- 1.0 fat 717 b- stor 17-Oct-08 00:38 res/drawable-hdpi-v4/ic_file.png │ +-rw---- 1.0 fat 2870 b- stor 17-Oct-08 00:38 res/drawable-hdpi-v4/ic_launcher.png │ +-rw---- 1.0 fat 1430 b- stor 17-Oct-08 00:38 res/drawable-hdpi-v4/ic_receive.png │ +-rw---- 1.0 fat 389 b- stor 17-Oct-08 00:38 res/drawable-hdpi-v4/ic_settings.png │ +-rw---- 1.0 fat 530 b- stor 17-Oct-08 00:38 res/drawable-mdpi-v4/ic_clipboard.png │ +-rw---- 1.0 fat 506 b- stor 17-Oct-08 00:38 res/drawable-mdpi-v4/ic_file.png │ +-rw---- 1.0 fat 2027 b- stor 17-Oct-08 00:38 res/drawable-mdpi-v4/ic_launcher.png │ +-rw---- 1.0 fat 1075 b- stor 17-Oct-08 00:38 res/drawable-mdpi-v4/ic_receive.png │ +-rw---- 1.0 fat 383 b- stor 17-Oct-08 00:38 res/drawable-mdpi-v4/ic_settings.png │ +-rw---- 1.0 fat 757 b- stor 17-Oct-08 00:38 res/drawable-xhdpi-v4/ic_clipboard.png │ +-rw---- 1.0 fat 852 b- stor 17-Oct-08 00:38 res/drawable-xhdpi-v4/ic_file.png │ +-rw---- 1.0 fat 3635 b- stor 17-Oct-08 00:38 res/drawable-xhdpi-v4/ic_launcher.png │ +-rw---- 1.0 fat 1771 b- stor 17-Oct-08 00:38 res/drawable-xhdpi-v4/ic_receive.png │ +-rw---- 1.0 fat 534 b- stor 17-Oct-08 00:38 res/drawable-xhdpi-v4/ic_settings.png │ +-rw---- 1.0 fat 1041 b- stor 17-Oct-08 00:38 res/drawable-xxhdpi-v4/ic_clipboard.png │ +-rw---- 1.0 fat 1195 b- stor 17-Oct-08 00:38 res/drawable-xxhdpi-v4/ic_file.png │ +-rw---- 1.0 fat 2815 b- stor 17-Oct-08 00:38 res/drawable-xxhdpi-v4/ic_launcher.png │ +-rw---- 1.0 fat 2436 b- stor 17-Oct-08 00:38 res/drawable-xxhdpi-v4/ic_receive.png │ +-rw---- 1.0 fat 943 b- stor 17-Oct-08 00:38 res/drawable-xxhdpi-v4/ic_settings.png │ +-rw---- 2.0 fat 1076 bl defN 17-Oct-08 00:38 res/layout/activity_launcher.xml │ +-rw---- 2.0 fat 1240 bl defN 17-Oct-08 00:38 res/layout/activity_send.xml │ +-rw---- 2.0 fat 632 bl defN 17-Oct-08 00:38 res/xml-v11/pref_headers.xml │ +-rw---- 2.0 fat 240 bl defN 17-Oct-08 00:38 res/xml/pref_general.xml │ +-rw---- 2.0 fat 436 bl defN 17-Oct-08 00:38 res/xml/pref_headers.xml │ +-rw---- 2.0 fat 708 bl defN 17-Oct-08 00:38 res/xml/pref_receiving.xml │ +-rw---- 2.0 fat 852 bl defN 17-Oct-08 00:38 res/xml/pref_sending.xml │ +-rw---- 1.0 fat 7356 b- stor 17-Oct-08 00:38 resources.arsc │ +-rw---- 2.0 fat 676048 bl defN 17-Oct-08 00:38 classes.dex │ +33 files, 725479 bytes uncompressed, 288344 bytes compressed: 60.3% ├── classes.dex │ ├── classes.jar │ │ ├── zipinfo /dev/stdin │ │ │ @@ -1,8 +1,8 @@ │ │ │ -Zip file size: 744749 bytes, number of entries: 292 │ │ │ +Zip file size: 749751 bytes, number of entries: 294 │ │ │ ?rwxrwxr-x 2.0 unx 441 b- stor 80-Jan-01 00:00 com/github/xloem/qrstream/BuildConfig.class │ │ │ ?rwxrwxr-x 2.0 unx 1402 b- stor 80-Jan-01 00:00 com/github/xloem/qrstream/CodeMetric.class │ │ │ ?rwxrwxr-x 2.0 unx 706 b- stor 80-Jan-01 00:00 com/github/xloem/qrstream/Launcher$1.class │ │ │ ?rwxrwxr-x 2.0 unx 752 b- stor 80-Jan-01 00:00 com/github/xloem/qrstream/Launcher$2.class │ │ │ ?rwxrwxr-x 2.0 unx 1525 b- stor 80-Jan-01 00:00 com/github/xloem/qrstream/Launcher$3.class │ │ │ ?rwxrwxr-x 2.0 unx 689 b- stor 80-Jan-01 00:00 com/github/xloem/qrstream/Launcher$4.class │ │ │ ?rwxrwxr-x 2.0 unx 3539 b- stor 80-Jan-01 00:00 com/github/xloem/qrstream/Launcher.class │ │ │ @@ -23,272 +23,274 @@ │ │ │ ?rwxrwxr-x 2.0 unx 573 b- stor 80-Jan-01 00:00 com/github/xloem/qrstream/Settings$SendingPreferenceFragment.class │ │ │ ?rwxrwxr-x 2.0 unx 2809 b- stor 80-Jan-01 00:00 com/github/xloem/qrstream/Settings.class │ │ │ ?rwxrwxr-x 2.0 unx 1760 b- stor 80-Jan-01 00:00 com/google/zxing/BarcodeFormat.class │ │ │ ?rwxrwxr-x 2.0 unx 750 b- stor 80-Jan-01 00:00 com/google/zxing/Binarizer.class │ │ │ ?rwxrwxr-x 2.0 unx 1772 b- stor 80-Jan-01 00:00 com/google/zxing/BinaryBitmap.class │ │ │ ?rwxrwxr-x 2.0 unx 1784 b- stor 80-Jan-01 00:00 com/google/zxing/DecodeHintType.class │ │ │ ?rwxrwxr-x 2.0 unx 806 b- stor 80-Jan-01 00:00 com/google/zxing/Dimension.class │ │ │ -?rwxrwxr-x 2.0 unx 1347 b- stor 80-Jan-01 00:00 com/google/zxing/EncodeHintType.class │ │ │ +?rwxrwxr-x 2.0 unx 1417 b- stor 80-Jan-01 00:00 com/google/zxing/EncodeHintType.class │ │ │ ?rwxrwxr-x 2.0 unx 1525 b- stor 80-Jan-01 00:00 com/google/zxing/LuminanceSource.class │ │ │ -?rwxrwxr-x 2.0 unx 1307 b- stor 80-Jan-01 00:00 com/google/zxing/MultiFormatWriter$1.class │ │ │ +?rwxrwxr-x 2.0 unx 1471 b- stor 80-Jan-01 00:00 com/google/zxing/MultiFormatWriter$1.class │ │ │ ?rwxrwxr-x 2.0 unx 259 b- stor 80-Jan-01 00:00 com/google/zxing/Reader.class │ │ │ -?rwxrwxr-x 2.0 unx 614 b- stor 80-Jan-01 00:00 com/google/zxing/ReaderException.class │ │ │ -?rwxrwxr-x 2.0 unx 1915 b- stor 80-Jan-01 00:00 com/google/zxing/Result.class │ │ │ +?rwxrwxr-x 2.0 unx 618 b- stor 80-Jan-01 00:00 com/google/zxing/ReaderException.class │ │ │ +?rwxrwxr-x 2.0 unx 2165 b- stor 80-Jan-01 00:00 com/google/zxing/Result.class │ │ │ ?rwxrwxr-x 2.0 unx 1481 b- stor 80-Jan-01 00:00 com/google/zxing/ResultMetadataType.class │ │ │ -?rwxrwxr-x 2.0 unx 1552 b- stor 80-Jan-01 00:00 com/google/zxing/ResultPoint.class │ │ │ +?rwxrwxr-x 2.0 unx 1553 b- stor 80-Jan-01 00:00 com/google/zxing/ResultPoint.class │ │ │ ?rwxrwxr-x 2.0 unx 159 b- stor 80-Jan-01 00:00 com/google/zxing/ResultPointCallback.class │ │ │ ?rwxrwxr-x 2.0 unx 299 b- stor 80-Jan-01 00:00 com/google/zxing/Writer.class │ │ │ ?rwxrwxr-x 2.0 unx 285 b- stor 80-Jan-01 00:00 com/google/zxing/WriterException.class │ │ │ ?rwxrwxr-x 2.0 unx 865 b- stor 80-Jan-01 00:00 com/google/zxing/aztec/decoder/Decoder$1.class │ │ │ ?rwxrwxr-x 2.0 unx 1075 b- stor 80-Jan-01 00:00 com/google/zxing/aztec/decoder/Decoder$Table.class │ │ │ -?rwxrwxr-x 2.0 unx 6967 b- stor 80-Jan-01 00:00 com/google/zxing/aztec/decoder/Decoder.class │ │ │ -?rwxrwxr-x 2.0 unx 802 b- stor 80-Jan-01 00:00 com/google/zxing/aztec/detector/Detector$Point.class │ │ │ -?rwxrwxr-x 2.0 unx 8872 b- stor 80-Jan-01 00:00 com/google/zxing/aztec/detector/Detector.class │ │ │ +?rwxrwxr-x 2.0 unx 7178 b- stor 80-Jan-01 00:00 com/google/zxing/aztec/decoder/Decoder.class │ │ │ +?rwxrwxr-x 2.0 unx 768 b- stor 80-Jan-01 00:00 com/google/zxing/aztec/detector/Detector$Point.class │ │ │ +?rwxrwxr-x 2.0 unx 8915 b- stor 80-Jan-01 00:00 com/google/zxing/aztec/detector/Detector.class │ │ │ ?rwxrwxr-x 2.0 unx 883 b- stor 80-Jan-01 00:00 com/google/zxing/aztec/encoder/AztecCode.class │ │ │ -?rwxrwxr-x 2.0 unx 5948 b- stor 80-Jan-01 00:00 com/google/zxing/aztec/encoder/Encoder.class │ │ │ +?rwxrwxr-x 2.0 unx 5891 b- stor 80-Jan-01 00:00 com/google/zxing/aztec/encoder/Encoder.class │ │ │ ?rwxrwxr-x 2.0 unx 632 b- stor 80-Jan-01 00:00 com/google/zxing/aztec/encoder/HighLevelEncoder$1.class │ │ │ ?rwxrwxr-x 2.0 unx 4818 b- stor 80-Jan-01 00:00 com/google/zxing/aztec/encoder/HighLevelEncoder.class │ │ │ -?rwxrwxr-x 2.0 unx 2996 b- stor 80-Jan-01 00:00 com/google/zxing/aztec/encoder/State.class │ │ │ +?rwxrwxr-x 2.0 unx 3000 b- stor 80-Jan-01 00:00 com/google/zxing/aztec/encoder/State.class │ │ │ ?rwxrwxr-x 2.0 unx 806 b- stor 80-Jan-01 00:00 com/google/zxing/aztec/encoder/Token.class │ │ │ ?rwxrwxr-x 2.0 unx 953 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/ParsedResult.class │ │ │ ?rwxrwxr-x 2.0 unx 1485 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/ParsedResultType.class │ │ │ ?rwxrwxr-x 2.0 unx 6301 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/ResultParser.class │ │ │ -?rwxrwxr-x 2.0 unx 4083 b- stor 80-Jan-01 00:00 com/google/zxing/common/BitArray.class │ │ │ -?rwxrwxr-x 2.0 unx 5347 b- stor 80-Jan-01 00:00 com/google/zxing/common/BitMatrix.class │ │ │ -?rwxrwxr-x 2.0 unx 981 b- stor 80-Jan-01 00:00 com/google/zxing/common/BitSource.class │ │ │ +?rwxrwxr-x 2.0 unx 3978 b- stor 80-Jan-01 00:00 com/google/zxing/common/BitArray.class │ │ │ +?rwxrwxr-x 2.0 unx 5371 b- stor 80-Jan-01 00:00 com/google/zxing/common/BitMatrix.class │ │ │ +?rwxrwxr-x 2.0 unx 971 b- stor 80-Jan-01 00:00 com/google/zxing/common/BitSource.class │ │ │ ?rwxrwxr-x 2.0 unx 4758 b- stor 80-Jan-01 00:00 com/google/zxing/common/CharacterSetECI.class │ │ │ -?rwxrwxr-x 2.0 unx 1577 b- stor 80-Jan-01 00:00 com/google/zxing/common/DecoderResult.class │ │ │ +?rwxrwxr-x 2.0 unx 1724 b- stor 80-Jan-01 00:00 com/google/zxing/common/DecoderResult.class │ │ │ ?rwxrwxr-x 2.0 unx 519 b- stor 80-Jan-01 00:00 com/google/zxing/common/DetectorResult.class │ │ │ ?rwxrwxr-x 2.0 unx 1431 b- stor 80-Jan-01 00:00 com/google/zxing/common/GridSampler.class │ │ │ ?rwxrwxr-x 2.0 unx 2909 b- stor 80-Jan-01 00:00 com/google/zxing/common/PerspectiveTransform.class │ │ │ -?rwxrwxr-x 2.0 unx 1974 b- stor 80-Jan-01 00:00 com/google/zxing/common/StringUtils.class │ │ │ -?rwxrwxr-x 2.0 unx 445 b- stor 80-Jan-01 00:00 com/google/zxing/common/detector/MathUtils.class │ │ │ -?rwxrwxr-x 2.0 unx 2101 b- stor 80-Jan-01 00:00 com/google/zxing/common/detector/MonochromeRectangleDetector.class │ │ │ +?rwxrwxr-x 2.0 unx 1969 b- stor 80-Jan-01 00:00 com/google/zxing/common/StringUtils.class │ │ │ +?rwxrwxr-x 2.0 unx 516 b- stor 80-Jan-01 00:00 com/google/zxing/common/detector/MathUtils.class │ │ │ +?rwxrwxr-x 2.0 unx 2112 b- stor 80-Jan-01 00:00 com/google/zxing/common/detector/MonochromeRectangleDetector.class │ │ │ ?rwxrwxr-x 2.0 unx 3164 b- stor 80-Jan-01 00:00 com/google/zxing/common/detector/WhiteRectangleDetector.class │ │ │ -?rwxrwxr-x 2.0 unx 2542 b- stor 80-Jan-01 00:00 com/google/zxing/common/reedsolomon/GenericGF.class │ │ │ -?rwxrwxr-x 2.0 unx 3476 b- stor 80-Jan-01 00:00 com/google/zxing/common/reedsolomon/GenericGFPoly.class │ │ │ -?rwxrwxr-x 2.0 unx 3181 b- stor 80-Jan-01 00:00 com/google/zxing/common/reedsolomon/ReedSolomonDecoder.class │ │ │ -?rwxrwxr-x 2.0 unx 1944 b- stor 80-Jan-01 00:00 com/google/zxing/common/reedsolomon/ReedSolomonEncoder.class │ │ │ +?rwxrwxr-x 2.0 unx 2564 b- stor 80-Jan-01 00:00 com/google/zxing/common/reedsolomon/GenericGF.class │ │ │ +?rwxrwxr-x 2.0 unx 3474 b- stor 80-Jan-01 00:00 com/google/zxing/common/reedsolomon/GenericGFPoly.class │ │ │ +?rwxrwxr-x 2.0 unx 3179 b- stor 80-Jan-01 00:00 com/google/zxing/common/reedsolomon/ReedSolomonDecoder.class │ │ │ +?rwxrwxr-x 2.0 unx 1938 b- stor 80-Jan-01 00:00 com/google/zxing/common/reedsolomon/ReedSolomonEncoder.class │ │ │ ?rwxrwxr-x 2.0 unx 193 b- stor 80-Jan-01 00:00 com/google/zxing/common/reedsolomon/ReedSolomonException.class │ │ │ -?rwxrwxr-x 2.0 unx 4280 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/decoder/BitMatrixParser.class │ │ │ -?rwxrwxr-x 2.0 unx 1695 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/decoder/DataBlock.class │ │ │ +?rwxrwxr-x 2.0 unx 4270 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/decoder/BitMatrixParser.class │ │ │ +?rwxrwxr-x 2.0 unx 1699 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/decoder/DataBlock.class │ │ │ ?rwxrwxr-x 2.0 unx 999 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/decoder/DecodedBitStreamParser$1.class │ │ │ ?rwxrwxr-x 2.0 unx 1284 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/decoder/DecodedBitStreamParser$Mode.class │ │ │ -?rwxrwxr-x 2.0 unx 6367 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/decoder/DecodedBitStreamParser.class │ │ │ -?rwxrwxr-x 2.0 unx 2015 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/decoder/Decoder.class │ │ │ +?rwxrwxr-x 2.0 unx 6364 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/decoder/DecodedBitStreamParser.class │ │ │ +?rwxrwxr-x 2.0 unx 2016 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/decoder/Decoder.class │ │ │ ?rwxrwxr-x 2.0 unx 97 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/decoder/Version$1.class │ │ │ ?rwxrwxr-x 2.0 unx 440 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/decoder/Version$ECB.class │ │ │ ?rwxrwxr-x 2.0 unx 1082 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/decoder/Version$ECBlocks.class │ │ │ ?rwxrwxr-x 2.0 unx 4109 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/decoder/Version.class │ │ │ ?rwxrwxr-x 2.0 unx 99 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/detector/Detector$1.class │ │ │ ?rwxrwxr-x 2.0 unx 1092 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/detector/Detector$ResultPointsAndTransitions.class │ │ │ ?rwxrwxr-x 2.0 unx 756 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/detector/Detector$ResultPointsAndTransitionsComparator.class │ │ │ -?rwxrwxr-x 2.0 unx 6511 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/detector/Detector.class │ │ │ -?rwxrwxr-x 2.0 unx 2585 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/encoder/DefaultPlacement.class │ │ │ +?rwxrwxr-x 2.0 unx 6515 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/detector/Detector.class │ │ │ +?rwxrwxr-x 2.0 unx 2590 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/encoder/DefaultPlacement.class │ │ │ ?rwxrwxr-x 2.0 unx 202 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/encoder/Encoder.class │ │ │ ?rwxrwxr-x 2.0 unx 3070 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/encoder/EncoderContext.class │ │ │ -?rwxrwxr-x 2.0 unx 5789 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/encoder/ErrorCorrection.class │ │ │ -?rwxrwxr-x 2.0 unx 6855 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/encoder/HighLevelEncoder.class │ │ │ -?rwxrwxr-x 2.0 unx 4970 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/encoder/SymbolInfo.class │ │ │ +?rwxrwxr-x 2.0 unx 5786 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/encoder/ErrorCorrection.class │ │ │ +?rwxrwxr-x 2.0 unx 6803 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/encoder/HighLevelEncoder.class │ │ │ +?rwxrwxr-x 2.0 unx 4962 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/encoder/SymbolInfo.class │ │ │ ?rwxrwxr-x 2.0 unx 917 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/encoder/SymbolShapeHint.class │ │ │ ?rwxrwxr-x 2.0 unx 1921 b- stor 80-Jan-01 00:00 com/google/zxing/integration/android/IntentIntegrator$1.class │ │ │ ?rwxrwxr-x 2.0 unx 9379 b- stor 80-Jan-01 00:00 com/google/zxing/integration/android/IntentIntegrator.class │ │ │ -?rwxrwxr-x 2.0 unx 1400 b- stor 80-Jan-01 00:00 com/google/zxing/integration/android/IntentResult.class │ │ │ +?rwxrwxr-x 2.0 unx 1343 b- stor 80-Jan-01 00:00 com/google/zxing/integration/android/IntentResult.class │ │ │ ?rwxrwxr-x 2.0 unx 7149 b- stor 80-Jan-01 00:00 com/google/zxing/maxicode/decoder/BitMatrixParser.class │ │ │ -?rwxrwxr-x 2.0 unx 4744 b- stor 80-Jan-01 00:00 com/google/zxing/maxicode/decoder/DecodedBitStreamParser.class │ │ │ -?rwxrwxr-x 2.0 unx 2098 b- stor 80-Jan-01 00:00 com/google/zxing/maxicode/decoder/Decoder.class │ │ │ +?rwxrwxr-x 2.0 unx 4644 b- stor 80-Jan-01 00:00 com/google/zxing/maxicode/decoder/DecodedBitStreamParser.class │ │ │ +?rwxrwxr-x 2.0 unx 2095 b- stor 80-Jan-01 00:00 com/google/zxing/maxicode/decoder/Decoder.class │ │ │ ?rwxrwxr-x 2.0 unx 268 b- stor 80-Jan-01 00:00 com/google/zxing/multi/MultipleBarcodeReader.class │ │ │ ?rwxrwxr-x 2.0 unx 101 b- stor 80-Jan-01 00:00 com/google/zxing/multi/qrcode/QRCodeMultiReader$1.class │ │ │ ?rwxrwxr-x 2.0 unx 929 b- stor 80-Jan-01 00:00 com/google/zxing/multi/qrcode/QRCodeMultiReader$SAComparator.class │ │ │ ?rwxrwxr-x 2.0 unx 117 b- stor 80-Jan-01 00:00 com/google/zxing/multi/qrcode/detector/MultiFinderPatternFinder$1.class │ │ │ ?rwxrwxr-x 2.0 unx 778 b- stor 80-Jan-01 00:00 com/google/zxing/multi/qrcode/detector/MultiFinderPatternFinder$ModuleSizeComparator.class │ │ │ +?rwxrwxr-x 2.0 unx 925 b- stor 80-Jan-01 00:00 com/google/zxing/oned/Code128Writer$CType.class │ │ │ ?rwxrwxr-x 2.0 unx 7672 b- stor 80-Jan-01 00:00 com/google/zxing/oned/EANManufacturerOrgSupport.class │ │ │ ?rwxrwxr-x 2.0 unx 2428 b- stor 80-Jan-01 00:00 com/google/zxing/oned/UPCEANExtension2Support.class │ │ │ -?rwxrwxr-x 2.0 unx 3493 b- stor 80-Jan-01 00:00 com/google/zxing/oned/UPCEANExtension5Support.class │ │ │ -?rwxrwxr-x 2.0 unx 981 b- stor 80-Jan-01 00:00 com/google/zxing/oned/UPCEANExtensionSupport.class │ │ │ +?rwxrwxr-x 2.0 unx 3524 b- stor 80-Jan-01 00:00 com/google/zxing/oned/UPCEANExtension5Support.class │ │ │ +?rwxrwxr-x 2.0 unx 982 b- stor 80-Jan-01 00:00 com/google/zxing/oned/UPCEANExtensionSupport.class │ │ │ ?rwxrwxr-x 2.0 unx 824 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/DataCharacter.class │ │ │ ?rwxrwxr-x 2.0 unx 771 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/FinderPattern.class │ │ │ ?rwxrwxr-x 2.0 unx 765 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/RSSUtils.class │ │ │ -?rwxrwxr-x 2.0 unx 945 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/BitArrayBuilder.class │ │ │ -?rwxrwxr-x 2.0 unx 1823 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/ExpandedPair.class │ │ │ -?rwxrwxr-x 2.0 unx 1229 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/ExpandedRow.class │ │ │ -?rwxrwxr-x 2.0 unx 2420 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/decoders/AbstractExpandedDecoder.class │ │ │ +?rwxrwxr-x 2.0 unx 941 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/BitArrayBuilder.class │ │ │ +?rwxrwxr-x 2.0 unx 1847 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/ExpandedPair.class │ │ │ +?rwxrwxr-x 2.0 unx 1253 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/ExpandedRow.class │ │ │ +?rwxrwxr-x 2.0 unx 2347 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/decoders/AbstractExpandedDecoder.class │ │ │ ?rwxrwxr-x 2.0 unx 620 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/decoders/BlockParsedResult.class │ │ │ ?rwxrwxr-x 2.0 unx 993 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/decoders/CurrentParsingState$State.class │ │ │ ?rwxrwxr-x 2.0 unx 975 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/decoders/CurrentParsingState.class │ │ │ ?rwxrwxr-x 2.0 unx 274 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/decoders/DecodedObject.class │ │ │ -?rwxrwxr-x 2.0 unx 8025 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/decoders/FieldParser.class │ │ │ -?rwxrwxr-x 2.0 unx 6912 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder.class │ │ │ -?rwxrwxr-x 2.0 unx 56416 b- defN 80-Jan-01 00:00 com/google/zxing/pdf417/PDF417Common.class │ │ │ +?rwxrwxr-x 2.0 unx 8070 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/decoders/FieldParser.class │ │ │ +?rwxrwxr-x 2.0 unx 6895 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder.class │ │ │ +?rwxrwxr-x 2.0 unx 56454 b- defN 80-Jan-01 00:00 com/google/zxing/pdf417/PDF417Common.class │ │ │ ?rwxrwxr-x 2.0 unx 787 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/PDF417ResultMetadata.class │ │ │ ?rwxrwxr-x 2.0 unx 650 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/decoder/BarcodeMetadata.class │ │ │ ?rwxrwxr-x 2.0 unx 1331 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/decoder/BarcodeValue.class │ │ │ ?rwxrwxr-x 2.0 unx 2592 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/decoder/BoundingBox.class │ │ │ ?rwxrwxr-x 2.0 unx 1222 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/decoder/Codeword.class │ │ │ ?rwxrwxr-x 2.0 unx 1034 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/decoder/DecodedBitStreamParser$1.class │ │ │ ?rwxrwxr-x 2.0 unx 1161 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/decoder/DecodedBitStreamParser$Mode.class │ │ │ -?rwxrwxr-x 2.0 unx 7072 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/decoder/DecodedBitStreamParser.class │ │ │ -?rwxrwxr-x 2.0 unx 4866 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/decoder/DetectionResult.class │ │ │ +?rwxrwxr-x 2.0 unx 6869 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/decoder/DecodedBitStreamParser.class │ │ │ +?rwxrwxr-x 2.0 unx 4860 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/decoder/DetectionResult.class │ │ │ ?rwxrwxr-x 2.0 unx 1863 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/decoder/DetectionResultColumn.class │ │ │ -?rwxrwxr-x 2.0 unx 1518 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/decoder/PDF417CodewordDecoder.class │ │ │ -?rwxrwxr-x 2.0 unx 11162 b- defN 80-Jan-01 00:00 com/google/zxing/pdf417/decoder/PDF417ScanningDecoder.class │ │ │ +?rwxrwxr-x 2.0 unx 1550 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/decoder/PDF417CodewordDecoder.class │ │ │ +?rwxrwxr-x 2.0 unx 11133 b- defN 80-Jan-01 00:00 com/google/zxing/pdf417/decoder/PDF417ScanningDecoder.class │ │ │ ?rwxrwxr-x 2.0 unx 3096 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/decoder/ec/ErrorCorrection.class │ │ │ ?rwxrwxr-x 2.0 unx 1636 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/decoder/ec/ModulusGF.class │ │ │ -?rwxrwxr-x 2.0 unx 3624 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/decoder/ec/ModulusPoly.class │ │ │ -?rwxrwxr-x 2.0 unx 4384 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/detector/Detector.class │ │ │ +?rwxrwxr-x 2.0 unx 3155 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/decoder/ec/ModulusPoly.class │ │ │ +?rwxrwxr-x 2.0 unx 4378 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/detector/Detector.class │ │ │ ?rwxrwxr-x 2.0 unx 489 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/detector/PDF417DetectorResult.class │ │ │ ?rwxrwxr-x 2.0 unx 1148 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/encoder/BarcodeMatrix.class │ │ │ ?rwxrwxr-x 2.0 unx 567 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/encoder/BarcodeRow.class │ │ │ ?rwxrwxr-x 2.0 unx 916 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/encoder/Compaction.class │ │ │ ?rwxrwxr-x 2.0 unx 486 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/encoder/Dimensions.class │ │ │ -?rwxrwxr-x 2.0 unx 38631 b- defN 80-Jan-01 00:00 com/google/zxing/pdf417/encoder/PDF417.class │ │ │ -?rwxrwxr-x 2.0 unx 8533 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/encoder/PDF417ErrorCorrection.class │ │ │ -?rwxrwxr-x 2.0 unx 6942 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/encoder/PDF417HighLevelEncoder.class │ │ │ -?rwxrwxr-x 2.0 unx 2953 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/BitMatrixParser.class │ │ │ +?rwxrwxr-x 2.0 unx 38637 b- defN 80-Jan-01 00:00 com/google/zxing/pdf417/encoder/PDF417.class │ │ │ +?rwxrwxr-x 2.0 unx 8527 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/encoder/PDF417ErrorCorrection.class │ │ │ +?rwxrwxr-x 2.0 unx 6929 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/encoder/PDF417HighLevelEncoder.class │ │ │ +?rwxrwxr-x 2.0 unx 2972 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/BitMatrixParser.class │ │ │ ?rwxrwxr-x 2.0 unx 1750 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/DataBlock.class │ │ │ -?rwxrwxr-x 2.0 unx 94 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/DataMask$1.class │ │ │ -?rwxrwxr-x 2.0 unx 1424 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/DataMask.class │ │ │ -?rwxrwxr-x 2.0 unx 5358 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/DecodedBitStreamParser.class │ │ │ -?rwxrwxr-x 2.0 unx 3348 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/Decoder.class │ │ │ +?rwxrwxr-x 2.0 unx 2015 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/DataMask.class │ │ │ +?rwxrwxr-x 2.0 unx 5186 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/DecodedBitStreamParser.class │ │ │ +?rwxrwxr-x 2.0 unx 3341 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/Decoder.class │ │ │ ?rwxrwxr-x 2.0 unx 1349 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/ErrorCorrectionLevel.class │ │ │ -?rwxrwxr-x 2.0 unx 2581 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/FormatInformation.class │ │ │ +?rwxrwxr-x 2.0 unx 2316 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/FormatInformation.class │ │ │ ?rwxrwxr-x 2.0 unx 2256 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/Mode.class │ │ │ ?rwxrwxr-x 2.0 unx 413 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/QRCodeDecoderMetaData.class │ │ │ ?rwxrwxr-x 2.0 unx 338 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/Version$ECB.class │ │ │ ?rwxrwxr-x 2.0 unx 737 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/Version$ECBlocks.class │ │ │ -?rwxrwxr-x 2.0 unx 15250 b- defN 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/Version.class │ │ │ -?rwxrwxr-x 2.0 unx 3317 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/detector/AlignmentPatternFinder.class │ │ │ -?rwxrwxr-x 2.0 unx 6245 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/detector/Detector.class │ │ │ +?rwxrwxr-x 2.0 unx 15240 b- defN 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/Version.class │ │ │ +?rwxrwxr-x 2.0 unx 3315 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/detector/AlignmentPatternFinder.class │ │ │ +?rwxrwxr-x 2.0 unx 6244 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/detector/Detector.class │ │ │ ?rwxrwxr-x 2.0 unx 106 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/detector/FinderPatternFinder$1.class │ │ │ ?rwxrwxr-x 2.0 unx 920 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/detector/FinderPatternFinder$CenterComparator.class │ │ │ ?rwxrwxr-x 2.0 unx 869 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/detector/FinderPatternFinder$FurthestFromAverageComparator.class │ │ │ -?rwxrwxr-x 2.0 unx 8245 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/detector/FinderPatternFinder.class │ │ │ +?rwxrwxr-x 2.0 unx 8229 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/detector/FinderPatternFinder.class │ │ │ ?rwxrwxr-x 2.0 unx 585 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/detector/FinderPatternInfo.class │ │ │ ?rwxrwxr-x 2.0 unx 362 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/encoder/BlockPair.class │ │ │ ?rwxrwxr-x 2.0 unx 1336 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/encoder/ByteMatrix.class │ │ │ ?rwxrwxr-x 2.0 unx 762 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/encoder/Encoder$1.class │ │ │ -?rwxrwxr-x 2.0 unx 10479 b- defN 80-Jan-01 00:00 com/google/zxing/qrcode/encoder/Encoder.class │ │ │ -?rwxrwxr-x 2.0 unx 2678 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/encoder/MaskUtil.class │ │ │ -?rwxrwxr-x 2.0 unx 8084 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/encoder/MatrixUtil.class │ │ │ +?rwxrwxr-x 2.0 unx 11347 b- defN 80-Jan-01 00:00 com/google/zxing/qrcode/encoder/Encoder.class │ │ │ +?rwxrwxr-x 2.0 unx 2670 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/encoder/MaskUtil.class │ │ │ +?rwxrwxr-x 2.0 unx 8034 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/encoder/MatrixUtil.class │ │ │ ?rwxrwxr-x 2.0 unx 2033 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/encoder/QRCode.class │ │ │ ?rwxrwxr-x 2.0 unx 1025 b- stor 80-Jan-01 00:00 com/github/xloem/qrstream/AztecMetric.class │ │ │ ?rwxrwxr-x 2.0 unx 770 b- stor 80-Jan-01 00:00 com/github/xloem/qrstream/QRCodeMetric.class │ │ │ -?rwxrwxr-x 2.0 unx 748 b- stor 80-Jan-01 00:00 com/google/zxing/ChecksumException.class │ │ │ -?rwxrwxr-x 2.0 unx 738 b- stor 80-Jan-01 00:00 com/google/zxing/FormatException.class │ │ │ +?rwxrwxr-x 2.0 unx 744 b- stor 80-Jan-01 00:00 com/google/zxing/ChecksumException.class │ │ │ +?rwxrwxr-x 2.0 unx 734 b- stor 80-Jan-01 00:00 com/google/zxing/FormatException.class │ │ │ ?rwxrwxr-x 2.0 unx 1104 b- stor 80-Jan-01 00:00 com/google/zxing/InvertedLuminanceSource.class │ │ │ ?rwxrwxr-x 2.0 unx 2968 b- stor 80-Jan-01 00:00 com/google/zxing/MultiFormatReader.class │ │ │ -?rwxrwxr-x 2.0 unx 1729 b- stor 80-Jan-01 00:00 com/google/zxing/MultiFormatWriter.class │ │ │ -?rwxrwxr-x 2.0 unx 510 b- stor 80-Jan-01 00:00 com/google/zxing/NotFoundException.class │ │ │ -?rwxrwxr-x 2.0 unx 2110 b- stor 80-Jan-01 00:00 com/google/zxing/PlanarYUVLuminanceSource.class │ │ │ -?rwxrwxr-x 2.0 unx 1735 b- stor 80-Jan-01 00:00 com/google/zxing/RGBLuminanceSource.class │ │ │ +?rwxrwxr-x 2.0 unx 1790 b- stor 80-Jan-01 00:00 com/google/zxing/MultiFormatWriter.class │ │ │ +?rwxrwxr-x 2.0 unx 506 b- stor 80-Jan-01 00:00 com/google/zxing/NotFoundException.class │ │ │ +?rwxrwxr-x 2.0 unx 2038 b- stor 80-Jan-01 00:00 com/google/zxing/PlanarYUVLuminanceSource.class │ │ │ +?rwxrwxr-x 2.0 unx 1585 b- stor 80-Jan-01 00:00 com/google/zxing/RGBLuminanceSource.class │ │ │ ?rwxrwxr-x 2.0 unx 586 b- stor 80-Jan-01 00:00 com/google/zxing/aztec/AztecDetectorResult.class │ │ │ -?rwxrwxr-x 2.0 unx 2453 b- stor 80-Jan-01 00:00 com/google/zxing/aztec/AztecReader.class │ │ │ -?rwxrwxr-x 2.0 unx 2667 b- stor 80-Jan-01 00:00 com/google/zxing/aztec/AztecWriter.class │ │ │ -?rwxrwxr-x 2.0 unx 1101 b- stor 80-Jan-01 00:00 com/google/zxing/aztec/encoder/BinaryShiftToken.class │ │ │ -?rwxrwxr-x 2.0 unx 957 b- stor 80-Jan-01 00:00 com/google/zxing/aztec/encoder/SimpleToken.class │ │ │ +?rwxrwxr-x 2.0 unx 2550 b- stor 80-Jan-01 00:00 com/google/zxing/aztec/AztecReader.class │ │ │ +?rwxrwxr-x 2.0 unx 2683 b- stor 80-Jan-01 00:00 com/google/zxing/aztec/AztecWriter.class │ │ │ +?rwxrwxr-x 2.0 unx 1114 b- stor 80-Jan-01 00:00 com/google/zxing/aztec/encoder/BinaryShiftToken.class │ │ │ +?rwxrwxr-x 2.0 unx 968 b- stor 80-Jan-01 00:00 com/google/zxing/aztec/encoder/SimpleToken.class │ │ │ ?rwxrwxr-x 2.0 unx 646 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/AbstractDoCoMoResultParser.class │ │ │ ?rwxrwxr-x 2.0 unx 2123 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/AddressBookAUResultParser.class │ │ │ ?rwxrwxr-x 2.0 unx 2623 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/AddressBookParsedResult.class │ │ │ -?rwxrwxr-x 2.0 unx 4694 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/CalendarParsedResult.class │ │ │ +?rwxrwxr-x 2.0 unx 4693 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/CalendarParsedResult.class │ │ │ ?rwxrwxr-x 2.0 unx 1481 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/EmailAddressParsedResult.class │ │ │ -?rwxrwxr-x 2.0 unx 1900 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/EmailAddressResultParser.class │ │ │ -?rwxrwxr-x 2.0 unx 3094 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/ExpandedProductParsedResult.class │ │ │ -?rwxrwxr-x 2.0 unx 4194 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/ExpandedProductResultParser.class │ │ │ +?rwxrwxr-x 2.0 unx 1959 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/EmailAddressResultParser.class │ │ │ +?rwxrwxr-x 2.0 unx 3092 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/ExpandedProductParsedResult.class │ │ │ +?rwxrwxr-x 2.0 unx 4114 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/ExpandedProductResultParser.class │ │ │ ?rwxrwxr-x 2.0 unx 1396 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/GeoParsedResult.class │ │ │ -?rwxrwxr-x 2.0 unx 1506 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/GeoResultParser.class │ │ │ +?rwxrwxr-x 2.0 unx 1507 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/GeoResultParser.class │ │ │ ?rwxrwxr-x 2.0 unx 554 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/ISBNParsedResult.class │ │ │ -?rwxrwxr-x 2.0 unx 977 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/ISBNResultParser.class │ │ │ +?rwxrwxr-x 2.0 unx 973 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/ISBNResultParser.class │ │ │ ?rwxrwxr-x 2.0 unx 756 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/ProductParsedResult.class │ │ │ ?rwxrwxr-x 2.0 unx 1211 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/ProductResultParser.class │ │ │ ?rwxrwxr-x 2.0 unx 1957 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/SMSMMSResultParser.class │ │ │ ?rwxrwxr-x 2.0 unx 1789 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/SMSParsedResult.class │ │ │ ?rwxrwxr-x 2.0 unx 1034 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/SMSTOMMSTOResultParser.class │ │ │ ?rwxrwxr-x 2.0 unx 1068 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/SMTPResultParser.class │ │ │ ?rwxrwxr-x 2.0 unx 913 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/TelParsedResult.class │ │ │ -?rwxrwxr-x 2.0 unx 1145 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/TelResultParser.class │ │ │ +?rwxrwxr-x 2.0 unx 1167 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/TelResultParser.class │ │ │ ?rwxrwxr-x 2.0 unx 651 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/TextParsedResult.class │ │ │ -?rwxrwxr-x 2.0 unx 1844 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/URIParsedResult.class │ │ │ -?rwxrwxr-x 2.0 unx 1593 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/URIResultParser.class │ │ │ +?rwxrwxr-x 2.0 unx 1865 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/URIParsedResult.class │ │ │ +?rwxrwxr-x 2.0 unx 1612 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/URIResultParser.class │ │ │ ?rwxrwxr-x 2.0 unx 931 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/URLTOResultParser.class │ │ │ -?rwxrwxr-x 2.0 unx 7358 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/VCardResultParser.class │ │ │ +?rwxrwxr-x 2.0 unx 7362 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/VCardResultParser.class │ │ │ ?rwxrwxr-x 2.0 unx 2456 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/VEventResultParser.class │ │ │ ?rwxrwxr-x 2.0 unx 1835 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/VINParsedResult.class │ │ │ -?rwxrwxr-x 2.0 unx 3576 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/VINResultParser.class │ │ │ +?rwxrwxr-x 2.0 unx 3573 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/VINResultParser.class │ │ │ ?rwxrwxr-x 2.0 unx 1206 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/WifiParsedResult.class │ │ │ ?rwxrwxr-x 2.0 unx 1049 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/WifiResultParser.class │ │ │ ?rwxrwxr-x 2.0 unx 1312 b- stor 80-Jan-01 00:00 com/google/zxing/common/DefaultGridSampler.class │ │ │ -?rwxrwxr-x 2.0 unx 2270 b- stor 80-Jan-01 00:00 com/google/zxing/common/GlobalHistogramBinarizer.class │ │ │ -?rwxrwxr-x 2.0 unx 3010 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/DataMatrixReader.class │ │ │ -?rwxrwxr-x 2.0 unx 3832 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/DataMatrixWriter.class │ │ │ -?rwxrwxr-x 2.0 unx 1847 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/encoder/ASCIIEncoder.class │ │ │ -?rwxrwxr-x 2.0 unx 1910 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/encoder/Base256Encoder.class │ │ │ -?rwxrwxr-x 2.0 unx 3288 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/encoder/C40Encoder.class │ │ │ +?rwxrwxr-x 2.0 unx 2316 b- stor 80-Jan-01 00:00 com/google/zxing/common/GlobalHistogramBinarizer.class │ │ │ +?rwxrwxr-x 2.0 unx 3012 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/DataMatrixReader.class │ │ │ +?rwxrwxr-x 2.0 unx 3768 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/DataMatrixWriter.class │ │ │ +?rwxrwxr-x 2.0 unx 1783 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/encoder/ASCIIEncoder.class │ │ │ +?rwxrwxr-x 2.0 unx 1841 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/encoder/Base256Encoder.class │ │ │ +?rwxrwxr-x 2.0 unx 3301 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/encoder/C40Encoder.class │ │ │ ?rwxrwxr-x 2.0 unx 431 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/encoder/DataMatrixSymbolInfo144.class │ │ │ -?rwxrwxr-x 2.0 unx 2782 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/encoder/EdifactEncoder.class │ │ │ +?rwxrwxr-x 2.0 unx 2781 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/encoder/EdifactEncoder.class │ │ │ ?rwxrwxr-x 2.0 unx 2458 b- stor 80-Jan-01 00:00 com/google/zxing/maxicode/MaxiCodeReader.class │ │ │ ?rwxrwxr-x 2.0 unx 1522 b- stor 80-Jan-01 00:00 com/google/zxing/multi/ByQuadrantReader.class │ │ │ -?rwxrwxr-x 2.0 unx 3139 b- stor 80-Jan-01 00:00 com/google/zxing/multi/GenericMultipleBarcodeReader.class │ │ │ +?rwxrwxr-x 2.0 unx 3193 b- stor 80-Jan-01 00:00 com/google/zxing/multi/GenericMultipleBarcodeReader.class │ │ │ ?rwxrwxr-x 2.0 unx 1757 b- stor 80-Jan-01 00:00 com/google/zxing/multi/qrcode/detector/MultiDetector.class │ │ │ -?rwxrwxr-x 2.0 unx 4350 b- stor 80-Jan-01 00:00 com/google/zxing/multi/qrcode/detector/MultiFinderPatternFinder.class │ │ │ -?rwxrwxr-x 2.0 unx 3889 b- stor 80-Jan-01 00:00 com/google/zxing/oned/OneDReader.class │ │ │ -?rwxrwxr-x 2.0 unx 1873 b- stor 80-Jan-01 00:00 com/google/zxing/oned/OneDimensionalCodeWriter.class │ │ │ -?rwxrwxr-x 2.0 unx 1633 b- stor 80-Jan-01 00:00 com/google/zxing/oned/UPCAWriter.class │ │ │ +?rwxrwxr-x 2.0 unx 4347 b- stor 80-Jan-01 00:00 com/google/zxing/multi/qrcode/detector/MultiFinderPatternFinder.class │ │ │ +?rwxrwxr-x 2.0 unx 3894 b- stor 80-Jan-01 00:00 com/google/zxing/oned/OneDReader.class │ │ │ +?rwxrwxr-x 2.0 unx 1905 b- stor 80-Jan-01 00:00 com/google/zxing/oned/OneDimensionalCodeWriter.class │ │ │ +?rwxrwxr-x 2.0 unx 1586 b- stor 80-Jan-01 00:00 com/google/zxing/oned/UPCAWriter.class │ │ │ ?rwxrwxr-x 2.0 unx 540 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/Pair.class │ │ │ ?rwxrwxr-x 2.0 unx 1254 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/decoders/AI01decoder.class │ │ │ ?rwxrwxr-x 2.0 unx 693 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/decoders/AnyAIDecoder.class │ │ │ ?rwxrwxr-x 2.0 unx 421 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/decoders/DecodedChar.class │ │ │ ?rwxrwxr-x 2.0 unx 639 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/decoders/DecodedInformation.class │ │ │ ?rwxrwxr-x 2.0 unx 857 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/decoders/DecodedNumeric.class │ │ │ ?rwxrwxr-x 2.0 unx 3783 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/PDF417Reader.class │ │ │ -?rwxrwxr-x 2.0 unx 3774 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/PDF417Writer.class │ │ │ -?rwxrwxr-x 2.0 unx 4052 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/decoder/DetectionResultRowIndicatorColumn.class │ │ │ -?rwxrwxr-x 2.0 unx 4127 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/QRCodeReader.class │ │ │ -?rwxrwxr-x 2.0 unx 2729 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/QRCodeWriter.class │ │ │ -?rwxrwxr-x 2.0 unx 352 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/DataMask$DataMask000.class │ │ │ -?rwxrwxr-x 2.0 unx 350 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/DataMask$DataMask001.class │ │ │ -?rwxrwxr-x 2.0 unx 350 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/DataMask$DataMask010.class │ │ │ -?rwxrwxr-x 2.0 unx 352 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/DataMask$DataMask011.class │ │ │ -?rwxrwxr-x 2.0 unx 362 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/DataMask$DataMask100.class │ │ │ -?rwxrwxr-x 2.0 unx 371 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/DataMask$DataMask101.class │ │ │ -?rwxrwxr-x 2.0 unx 373 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/DataMask$DataMask110.class │ │ │ -?rwxrwxr-x 2.0 unx 366 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/DataMask$DataMask111.class │ │ │ +?rwxrwxr-x 2.0 unx 3865 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/PDF417Writer.class │ │ │ +?rwxrwxr-x 2.0 unx 3791 b- stor 80-Jan-01 00:00 com/google/zxing/pdf417/decoder/DetectionResultRowIndicatorColumn.class │ │ │ +?rwxrwxr-x 2.0 unx 4148 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/QRCodeReader.class │ │ │ +?rwxrwxr-x 2.0 unx 2874 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/QRCodeWriter.class │ │ │ +?rwxrwxr-x 2.0 unx 341 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/DataMask$1.class │ │ │ +?rwxrwxr-x 2.0 unx 339 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/DataMask$2.class │ │ │ +?rwxrwxr-x 2.0 unx 339 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/DataMask$3.class │ │ │ +?rwxrwxr-x 2.0 unx 341 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/DataMask$4.class │ │ │ +?rwxrwxr-x 2.0 unx 351 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/DataMask$5.class │ │ │ +?rwxrwxr-x 2.0 unx 342 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/DataMask$6.class │ │ │ +?rwxrwxr-x 2.0 unx 352 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/DataMask$7.class │ │ │ +?rwxrwxr-x 2.0 unx 353 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/decoder/DataMask$8.class │ │ │ ?rwxrwxr-x 2.0 unx 674 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/detector/AlignmentPattern.class │ │ │ ?rwxrwxr-x 2.0 unx 918 b- stor 80-Jan-01 00:00 com/google/zxing/qrcode/detector/FinderPattern.class │ │ │ ?rwxrwxr-x 2.0 unx 2087 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/AddressBookDoCoMoResultParser.class │ │ │ ?rwxrwxr-x 2.0 unx 2291 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/BizcardResultParser.class │ │ │ ?rwxrwxr-x 2.0 unx 1106 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/BookmarkDoCoMoResultParser.class │ │ │ ?rwxrwxr-x 2.0 unx 1669 b- stor 80-Jan-01 00:00 com/google/zxing/client/result/EmailDoCoMoResultParser.class │ │ │ ?rwxrwxr-x 2.0 unx 2641 b- stor 80-Jan-01 00:00 com/google/zxing/common/HybridBinarizer.class │ │ │ -?rwxrwxr-x 2.0 unx 1145 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/encoder/TextEncoder.class │ │ │ -?rwxrwxr-x 2.0 unx 1845 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/encoder/X12Encoder.class │ │ │ -?rwxrwxr-x 2.0 unx 4795 b- stor 80-Jan-01 00:00 com/google/zxing/multi/qrcode/QRCodeMultiReader.class │ │ │ -?rwxrwxr-x 2.0 unx 4545 b- stor 80-Jan-01 00:00 com/google/zxing/oned/CodaBarReader.class │ │ │ -?rwxrwxr-x 2.0 unx 2088 b- stor 80-Jan-01 00:00 com/google/zxing/oned/CodaBarWriter.class │ │ │ -?rwxrwxr-x 2.0 unx 9345 b- stor 80-Jan-01 00:00 com/google/zxing/oned/Code128Reader.class │ │ │ -?rwxrwxr-x 2.0 unx 3101 b- stor 80-Jan-01 00:00 com/google/zxing/oned/Code128Writer.class │ │ │ -?rwxrwxr-x 2.0 unx 4509 b- stor 80-Jan-01 00:00 com/google/zxing/oned/Code39Reader.class │ │ │ -?rwxrwxr-x 2.0 unx 1785 b- stor 80-Jan-01 00:00 com/google/zxing/oned/Code39Writer.class │ │ │ -?rwxrwxr-x 2.0 unx 4604 b- stor 80-Jan-01 00:00 com/google/zxing/oned/Code93Reader.class │ │ │ -?rwxrwxr-x 2.0 unx 4086 b- stor 80-Jan-01 00:00 com/google/zxing/oned/ITFReader.class │ │ │ -?rwxrwxr-x 2.0 unx 1706 b- stor 80-Jan-01 00:00 com/google/zxing/oned/ITFWriter.class │ │ │ +?rwxrwxr-x 2.0 unx 1115 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/encoder/TextEncoder.class │ │ │ +?rwxrwxr-x 2.0 unx 1841 b- stor 80-Jan-01 00:00 com/google/zxing/datamatrix/encoder/X12Encoder.class │ │ │ +?rwxrwxr-x 2.0 unx 4794 b- stor 80-Jan-01 00:00 com/google/zxing/multi/qrcode/QRCodeMultiReader.class │ │ │ +?rwxrwxr-x 2.0 unx 4542 b- stor 80-Jan-01 00:00 com/google/zxing/oned/CodaBarReader.class │ │ │ +?rwxrwxr-x 2.0 unx 2073 b- stor 80-Jan-01 00:00 com/google/zxing/oned/CodaBarWriter.class │ │ │ +?rwxrwxr-x 2.0 unx 9318 b- stor 80-Jan-01 00:00 com/google/zxing/oned/Code128Reader.class │ │ │ +?rwxrwxr-x 2.0 unx 3528 b- stor 80-Jan-01 00:00 com/google/zxing/oned/Code128Writer.class │ │ │ +?rwxrwxr-x 2.0 unx 4540 b- stor 80-Jan-01 00:00 com/google/zxing/oned/Code39Reader.class │ │ │ +?rwxrwxr-x 2.0 unx 1786 b- stor 80-Jan-01 00:00 com/google/zxing/oned/Code39Writer.class │ │ │ +?rwxrwxr-x 2.0 unx 4590 b- stor 80-Jan-01 00:00 com/google/zxing/oned/Code93Reader.class │ │ │ +?rwxrwxr-x 2.0 unx 2008 b- stor 80-Jan-01 00:00 com/google/zxing/oned/Code93Writer.class │ │ │ +?rwxrwxr-x 2.0 unx 4081 b- stor 80-Jan-01 00:00 com/google/zxing/oned/ITFReader.class │ │ │ +?rwxrwxr-x 2.0 unx 1642 b- stor 80-Jan-01 00:00 com/google/zxing/oned/ITFWriter.class │ │ │ ?rwxrwxr-x 2.0 unx 2444 b- stor 80-Jan-01 00:00 com/google/zxing/oned/MultiFormatOneDReader.class │ │ │ ?rwxrwxr-x 2.0 unx 2667 b- stor 80-Jan-01 00:00 com/google/zxing/oned/MultiFormatUPCEANReader.class │ │ │ -?rwxrwxr-x 2.0 unx 6413 b- stor 80-Jan-01 00:00 com/google/zxing/oned/UPCEANReader.class │ │ │ +?rwxrwxr-x 2.0 unx 6483 b- stor 80-Jan-01 00:00 com/google/zxing/oned/UPCEANReader.class │ │ │ ?rwxrwxr-x 2.0 unx 310 b- stor 80-Jan-01 00:00 com/google/zxing/oned/UPCEANWriter.class │ │ │ -?rwxrwxr-x 2.0 unx 1824 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/AbstractRSSReader.class │ │ │ +?rwxrwxr-x 2.0 unx 1862 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/AbstractRSSReader.class │ │ │ ?rwxrwxr-x 2.0 unx 1510 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/decoders/AI01392xDecoder.class │ │ │ ?rwxrwxr-x 2.0 unx 1632 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/decoders/AI01393xDecoder.class │ │ │ ?rwxrwxr-x 2.0 unx 1005 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/decoders/AI01AndOtherAIs.class │ │ │ ?rwxrwxr-x 2.0 unx 894 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/decoders/AI01weightDecoder.class │ │ │ -?rwxrwxr-x 2.0 unx 1678 b- stor 80-Jan-01 00:00 com/google/zxing/oned/EAN13Reader.class │ │ │ -?rwxrwxr-x 2.0 unx 2005 b- stor 80-Jan-01 00:00 com/google/zxing/oned/EAN13Writer.class │ │ │ +?rwxrwxr-x 2.0 unx 1669 b- stor 80-Jan-01 00:00 com/google/zxing/oned/EAN13Reader.class │ │ │ +?rwxrwxr-x 2.0 unx 1938 b- stor 80-Jan-01 00:00 com/google/zxing/oned/EAN13Writer.class │ │ │ ?rwxrwxr-x 2.0 unx 1140 b- stor 80-Jan-01 00:00 com/google/zxing/oned/EAN8Reader.class │ │ │ -?rwxrwxr-x 2.0 unx 1608 b- stor 80-Jan-01 00:00 com/google/zxing/oned/EAN8Writer.class │ │ │ +?rwxrwxr-x 2.0 unx 1560 b- stor 80-Jan-01 00:00 com/google/zxing/oned/EAN8Writer.class │ │ │ ?rwxrwxr-x 2.0 unx 1735 b- stor 80-Jan-01 00:00 com/google/zxing/oned/UPCAReader.class │ │ │ -?rwxrwxr-x 2.0 unx 2519 b- stor 80-Jan-01 00:00 com/google/zxing/oned/UPCEReader.class │ │ │ -?rwxrwxr-x 2.0 unx 8082 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/RSS14Reader.class │ │ │ -?rwxrwxr-x 2.0 unx 11972 b- defN 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/RSSExpandedReader.class │ │ │ -?rwxrwxr-x 2.0 unx 1919 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder.class │ │ │ +?rwxrwxr-x 2.0 unx 2619 b- stor 80-Jan-01 00:00 com/google/zxing/oned/UPCEReader.class │ │ │ +?rwxrwxr-x 2.0 unx 1590 b- stor 80-Jan-01 00:00 com/google/zxing/oned/UPCEWriter.class │ │ │ +?rwxrwxr-x 2.0 unx 8029 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/RSS14Reader.class │ │ │ +?rwxrwxr-x 2.0 unx 12023 b- defN 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/RSSExpandedReader.class │ │ │ +?rwxrwxr-x 2.0 unx 1915 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder.class │ │ │ ?rwxrwxr-x 2.0 unx 929 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/decoders/AI013x0xDecoder.class │ │ │ ?rwxrwxr-x 2.0 unx 491 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/decoders/AI013103decoder.class │ │ │ ?rwxrwxr-x 2.0 unx 553 b- stor 80-Jan-01 00:00 com/google/zxing/oned/rss/expanded/decoders/AI01320xDecoder.class │ │ │ -292 files, 759924 bytes uncompressed, 692665 bytes compressed: 8.9% │ │ │ +294 files, 765410 bytes uncompressed, 697521 bytes compressed: 8.9% │ │ ├── zipnote {} │ │ │ @@ -300,14 +300,17 @@ │ │ │ │ │ │ Filename: com/google/zxing/multi/qrcode/detector/MultiFinderPatternFinder$1.class │ │ │ Comment: │ │ │ │ │ │ Filename: com/google/zxing/multi/qrcode/detector/MultiFinderPatternFinder$ModuleSizeComparator.class │ │ │ Comment: │ │ │ │ │ │ +Filename: com/google/zxing/oned/Code128Writer$CType.class │ │ │ +Comment: │ │ │ + │ │ │ Filename: com/google/zxing/oned/EANManufacturerOrgSupport.class │ │ │ Comment: │ │ │ │ │ │ Filename: com/google/zxing/oned/UPCEANExtension2Support.class │ │ │ Comment: │ │ │ │ │ │ Filename: com/google/zxing/oned/UPCEANExtension5Support.class │ │ │ @@ -432,17 +435,14 @@ │ │ │ │ │ │ Filename: com/google/zxing/qrcode/decoder/BitMatrixParser.class │ │ │ Comment: │ │ │ │ │ │ Filename: com/google/zxing/qrcode/decoder/DataBlock.class │ │ │ Comment: │ │ │ │ │ │ -Filename: com/google/zxing/qrcode/decoder/DataMask$1.class │ │ │ -Comment: │ │ │ - │ │ │ Filename: com/google/zxing/qrcode/decoder/DataMask.class │ │ │ Comment: │ │ │ │ │ │ Filename: com/google/zxing/qrcode/decoder/DecodedBitStreamParser.class │ │ │ Comment: │ │ │ │ │ │ Filename: com/google/zxing/qrcode/decoder/Decoder.class │ │ │ @@ -726,36 +726,36 @@ │ │ │ │ │ │ Filename: com/google/zxing/qrcode/QRCodeReader.class │ │ │ Comment: │ │ │ │ │ │ Filename: com/google/zxing/qrcode/QRCodeWriter.class │ │ │ Comment: │ │ │ │ │ │ -Filename: com/google/zxing/qrcode/decoder/DataMask$DataMask000.class │ │ │ +Filename: com/google/zxing/qrcode/decoder/DataMask$1.class │ │ │ Comment: │ │ │ │ │ │ -Filename: com/google/zxing/qrcode/decoder/DataMask$DataMask001.class │ │ │ +Filename: com/google/zxing/qrcode/decoder/DataMask$2.class │ │ │ Comment: │ │ │ │ │ │ -Filename: com/google/zxing/qrcode/decoder/DataMask$DataMask010.class │ │ │ +Filename: com/google/zxing/qrcode/decoder/DataMask$3.class │ │ │ Comment: │ │ │ │ │ │ -Filename: com/google/zxing/qrcode/decoder/DataMask$DataMask011.class │ │ │ +Filename: com/google/zxing/qrcode/decoder/DataMask$4.class │ │ │ Comment: │ │ │ │ │ │ -Filename: com/google/zxing/qrcode/decoder/DataMask$DataMask100.class │ │ │ +Filename: com/google/zxing/qrcode/decoder/DataMask$5.class │ │ │ Comment: │ │ │ │ │ │ -Filename: com/google/zxing/qrcode/decoder/DataMask$DataMask101.class │ │ │ +Filename: com/google/zxing/qrcode/decoder/DataMask$6.class │ │ │ Comment: │ │ │ │ │ │ -Filename: com/google/zxing/qrcode/decoder/DataMask$DataMask110.class │ │ │ +Filename: com/google/zxing/qrcode/decoder/DataMask$7.class │ │ │ Comment: │ │ │ │ │ │ -Filename: com/google/zxing/qrcode/decoder/DataMask$DataMask111.class │ │ │ +Filename: com/google/zxing/qrcode/decoder/DataMask$8.class │ │ │ Comment: │ │ │ │ │ │ Filename: com/google/zxing/qrcode/detector/AlignmentPattern.class │ │ │ Comment: │ │ │ │ │ │ Filename: com/google/zxing/qrcode/detector/FinderPattern.class │ │ │ Comment: │ │ │ @@ -801,14 +801,17 @@ │ │ │ │ │ │ Filename: com/google/zxing/oned/Code39Writer.class │ │ │ Comment: │ │ │ │ │ │ Filename: com/google/zxing/oned/Code93Reader.class │ │ │ Comment: │ │ │ │ │ │ +Filename: com/google/zxing/oned/Code93Writer.class │ │ │ +Comment: │ │ │ + │ │ │ Filename: com/google/zxing/oned/ITFReader.class │ │ │ Comment: │ │ │ │ │ │ Filename: com/google/zxing/oned/ITFWriter.class │ │ │ Comment: │ │ │ │ │ │ Filename: com/google/zxing/oned/MultiFormatOneDReader.class │ │ │ @@ -852,14 +855,17 @@ │ │ │ │ │ │ Filename: com/google/zxing/oned/UPCAReader.class │ │ │ Comment: │ │ │ │ │ │ Filename: com/google/zxing/oned/UPCEReader.class │ │ │ Comment: │ │ │ │ │ │ +Filename: com/google/zxing/oned/UPCEWriter.class │ │ │ +Comment: │ │ │ + │ │ │ Filename: com/google/zxing/oned/rss/RSS14Reader.class │ │ │ Comment: │ │ │ │ │ │ Filename: com/google/zxing/oned/rss/expanded/RSSExpandedReader.class │ │ │ Comment: │ │ │ │ │ │ Filename: com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder.class │ │ ├── com/google/zxing/BinaryBitmap.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -274,15 +274,15 @@ │ │ │ │ 1: invokevirtual #71 // Method getBlackMatrix:()Lcom/google/zxing/common/BitMatrix; │ │ │ │ 4: astore_1 │ │ │ │ 5: aload_1 │ │ │ │ 6: invokevirtual #77 // Method com/google/zxing/common/BitMatrix.toString:()Ljava/lang/String; │ │ │ │ 9: astore_1 │ │ │ │ 10: aload_1 │ │ │ │ 11: areturn │ │ │ │ - 12: pop │ │ │ │ + 12: astore_1 │ │ │ │ 13: ldc #79 // String │ │ │ │ 15: astore_1 │ │ │ │ 16: goto 10 │ │ │ │ Exception table: │ │ │ │ from to target type │ │ │ │ 0 4 12 Class com/google/zxing/NotFoundException │ │ │ │ 5 9 12 Class com/google/zxing/NotFoundException │ │ ├── com/google/zxing/EncodeHintType.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -8,31 +8,33 @@ │ │ │ │ DATA_MATRIX_SHAPE("DATA_MATRIX_SHAPE", n3), │ │ │ │ ERROR_CORRECTION("ERROR_CORRECTION", 0), │ │ │ │ MARGIN("MARGIN", 5), │ │ │ │ MAX_SIZE("MAX_SIZE", n), │ │ │ │ MIN_SIZE("MIN_SIZE", n2), │ │ │ │ PDF417_COMPACT("PDF417_COMPACT", 6), │ │ │ │ PDF417_COMPACTION("PDF417_COMPACTION", 7), │ │ │ │ - PDF417_DIMENSIONS("PDF417_DIMENSIONS", 8); │ │ │ │ + PDF417_DIMENSIONS("PDF417_DIMENSIONS", 8), │ │ │ │ + QR_VERSION("QR_VERSION", 10); │ │ │ │ │ │ │ │ static { │ │ │ │ final int n = 4; │ │ │ │ final int n2 = 3; │ │ │ │ final int n3 = 2; │ │ │ │ final int n4 = 1; │ │ │ │ - final EncodeHintType[] $values = new EncodeHintType[10]; │ │ │ │ + final EncodeHintType[] $values = new EncodeHintType[11]; │ │ │ │ $values[0] = EncodeHintType.ERROR_CORRECTION; │ │ │ │ $values[n4] = EncodeHintType.CHARACTER_SET; │ │ │ │ $values[n3] = EncodeHintType.DATA_MATRIX_SHAPE; │ │ │ │ $values[n2] = EncodeHintType.MIN_SIZE; │ │ │ │ $values[n] = EncodeHintType.MAX_SIZE; │ │ │ │ $values[5] = EncodeHintType.MARGIN; │ │ │ │ $values[6] = EncodeHintType.PDF417_COMPACT; │ │ │ │ $values[7] = EncodeHintType.PDF417_COMPACTION; │ │ │ │ $values[8] = EncodeHintType.PDF417_DIMENSIONS; │ │ │ │ $values[9] = EncodeHintType.AZTEC_LAYERS; │ │ │ │ + $values[10] = EncodeHintType.QR_VERSION; │ │ │ │ $VALUES = $values; │ │ │ │ } │ │ │ │ │ │ │ │ private EncodeHintType(final String s, final int n) { │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/MultiFormatWriter$1.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -10,132 +10,156 @@ │ │ │ │ try { │ │ │ │ final BarcodeFormat ean_8 = BarcodeFormat.EAN_8; │ │ │ │ try { │ │ │ │ $SwitchMap$com$google$zxing$BarcodeFormat2[ean_8.ordinal()] = 1; │ │ │ │ try { │ │ │ │ final int[] $SwitchMap$com$google$zxing$BarcodeFormat3 = MultiFormatWriter$1.$SwitchMap$com$google$zxing$BarcodeFormat; │ │ │ │ try { │ │ │ │ - final BarcodeFormat ean_9 = BarcodeFormat.EAN_13; │ │ │ │ + final BarcodeFormat upc_E = BarcodeFormat.UPC_E; │ │ │ │ try { │ │ │ │ - $SwitchMap$com$google$zxing$BarcodeFormat3[ean_9.ordinal()] = 2; │ │ │ │ + $SwitchMap$com$google$zxing$BarcodeFormat3[upc_E.ordinal()] = 2; │ │ │ │ try { │ │ │ │ final int[] $SwitchMap$com$google$zxing$BarcodeFormat4 = MultiFormatWriter$1.$SwitchMap$com$google$zxing$BarcodeFormat; │ │ │ │ try { │ │ │ │ - final BarcodeFormat upc_A = BarcodeFormat.UPC_A; │ │ │ │ + final BarcodeFormat ean_9 = BarcodeFormat.EAN_13; │ │ │ │ try { │ │ │ │ - $SwitchMap$com$google$zxing$BarcodeFormat4[upc_A.ordinal()] = 3; │ │ │ │ + $SwitchMap$com$google$zxing$BarcodeFormat4[ean_9.ordinal()] = 3; │ │ │ │ try { │ │ │ │ final int[] $SwitchMap$com$google$zxing$BarcodeFormat5 = MultiFormatWriter$1.$SwitchMap$com$google$zxing$BarcodeFormat; │ │ │ │ try { │ │ │ │ - final BarcodeFormat qr_CODE = BarcodeFormat.QR_CODE; │ │ │ │ + final BarcodeFormat upc_A = BarcodeFormat.UPC_A; │ │ │ │ try { │ │ │ │ - $SwitchMap$com$google$zxing$BarcodeFormat5[qr_CODE.ordinal()] = 4; │ │ │ │ + $SwitchMap$com$google$zxing$BarcodeFormat5[upc_A.ordinal()] = 4; │ │ │ │ try { │ │ │ │ final int[] $SwitchMap$com$google$zxing$BarcodeFormat6 = MultiFormatWriter$1.$SwitchMap$com$google$zxing$BarcodeFormat; │ │ │ │ try { │ │ │ │ - final BarcodeFormat code_39 = BarcodeFormat.CODE_39; │ │ │ │ + final BarcodeFormat qr_CODE = BarcodeFormat.QR_CODE; │ │ │ │ try { │ │ │ │ - $SwitchMap$com$google$zxing$BarcodeFormat6[code_39.ordinal()] = 5; │ │ │ │ + $SwitchMap$com$google$zxing$BarcodeFormat6[qr_CODE.ordinal()] = 5; │ │ │ │ try { │ │ │ │ final int[] $SwitchMap$com$google$zxing$BarcodeFormat7 = MultiFormatWriter$1.$SwitchMap$com$google$zxing$BarcodeFormat; │ │ │ │ try { │ │ │ │ - final BarcodeFormat code_40 = BarcodeFormat.CODE_128; │ │ │ │ + final BarcodeFormat code_39 = BarcodeFormat.CODE_39; │ │ │ │ try { │ │ │ │ - $SwitchMap$com$google$zxing$BarcodeFormat7[code_40.ordinal()] = 6; │ │ │ │ + $SwitchMap$com$google$zxing$BarcodeFormat7[code_39.ordinal()] = 6; │ │ │ │ try { │ │ │ │ final int[] $SwitchMap$com$google$zxing$BarcodeFormat8 = MultiFormatWriter$1.$SwitchMap$com$google$zxing$BarcodeFormat; │ │ │ │ try { │ │ │ │ - final BarcodeFormat itf = BarcodeFormat.ITF; │ │ │ │ + final BarcodeFormat code_40 = BarcodeFormat.CODE_93; │ │ │ │ try { │ │ │ │ - $SwitchMap$com$google$zxing$BarcodeFormat8[itf.ordinal()] = 7; │ │ │ │ + $SwitchMap$com$google$zxing$BarcodeFormat8[code_40.ordinal()] = 7; │ │ │ │ try { │ │ │ │ final int[] $SwitchMap$com$google$zxing$BarcodeFormat9 = MultiFormatWriter$1.$SwitchMap$com$google$zxing$BarcodeFormat; │ │ │ │ try { │ │ │ │ - final BarcodeFormat pdf_417 = BarcodeFormat.PDF_417; │ │ │ │ + final BarcodeFormat code_41 = BarcodeFormat.CODE_128; │ │ │ │ try { │ │ │ │ - $SwitchMap$com$google$zxing$BarcodeFormat9[pdf_417.ordinal()] = 8; │ │ │ │ + $SwitchMap$com$google$zxing$BarcodeFormat9[code_41.ordinal()] = 8; │ │ │ │ try { │ │ │ │ final int[] $SwitchMap$com$google$zxing$BarcodeFormat10 = MultiFormatWriter$1.$SwitchMap$com$google$zxing$BarcodeFormat; │ │ │ │ try { │ │ │ │ - final BarcodeFormat codabar = BarcodeFormat.CODABAR; │ │ │ │ + final BarcodeFormat itf = BarcodeFormat.ITF; │ │ │ │ try { │ │ │ │ - $SwitchMap$com$google$zxing$BarcodeFormat10[codabar.ordinal()] = 9; │ │ │ │ + $SwitchMap$com$google$zxing$BarcodeFormat10[itf.ordinal()] = 9; │ │ │ │ try { │ │ │ │ final int[] $SwitchMap$com$google$zxing$BarcodeFormat11 = MultiFormatWriter$1.$SwitchMap$com$google$zxing$BarcodeFormat; │ │ │ │ try { │ │ │ │ - final BarcodeFormat data_MATRIX = BarcodeFormat.DATA_MATRIX; │ │ │ │ + final BarcodeFormat pdf_417 = BarcodeFormat.PDF_417; │ │ │ │ try { │ │ │ │ - $SwitchMap$com$google$zxing$BarcodeFormat11[data_MATRIX.ordinal()] = 10; │ │ │ │ + $SwitchMap$com$google$zxing$BarcodeFormat11[pdf_417.ordinal()] = 10; │ │ │ │ try { │ │ │ │ final int[] $SwitchMap$com$google$zxing$BarcodeFormat12 = MultiFormatWriter$1.$SwitchMap$com$google$zxing$BarcodeFormat; │ │ │ │ try { │ │ │ │ - final BarcodeFormat aztec = BarcodeFormat.AZTEC; │ │ │ │ + final BarcodeFormat codabar = BarcodeFormat.CODABAR; │ │ │ │ try { │ │ │ │ - $SwitchMap$com$google$zxing$BarcodeFormat12[aztec.ordinal()] = 11; │ │ │ │ + $SwitchMap$com$google$zxing$BarcodeFormat12[codabar.ordinal()] = 11; │ │ │ │ + try { │ │ │ │ + final int[] $SwitchMap$com$google$zxing$BarcodeFormat13 = MultiFormatWriter$1.$SwitchMap$com$google$zxing$BarcodeFormat; │ │ │ │ + try { │ │ │ │ + final BarcodeFormat data_MATRIX = BarcodeFormat.DATA_MATRIX; │ │ │ │ + try { │ │ │ │ + $SwitchMap$com$google$zxing$BarcodeFormat13[data_MATRIX.ordinal()] = 12; │ │ │ │ + try { │ │ │ │ + final int[] $SwitchMap$com$google$zxing$BarcodeFormat14 = MultiFormatWriter$1.$SwitchMap$com$google$zxing$BarcodeFormat; │ │ │ │ + try { │ │ │ │ + final BarcodeFormat aztec = BarcodeFormat.AZTEC; │ │ │ │ + try { │ │ │ │ + $SwitchMap$com$google$zxing$BarcodeFormat14[aztec.ordinal()] = 13; │ │ │ │ + } │ │ │ │ + catch (NoSuchFieldError noSuchFieldError) {} │ │ │ │ + } │ │ │ │ + catch (NoSuchFieldError noSuchFieldError2) {} │ │ │ │ + } │ │ │ │ + catch (NoSuchFieldError noSuchFieldError3) {} │ │ │ │ + } │ │ │ │ + catch (NoSuchFieldError noSuchFieldError4) {} │ │ │ │ + } │ │ │ │ + catch (NoSuchFieldError noSuchFieldError5) {} │ │ │ │ + } │ │ │ │ + catch (NoSuchFieldError noSuchFieldError6) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError7) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError2) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError8) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError3) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError9) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError4) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError10) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError5) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError11) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError6) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError12) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError7) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError13) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError8) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError14) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError9) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError15) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError10) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError16) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError11) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError17) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError12) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError18) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError13) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError19) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError14) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError20) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError15) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError21) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError16) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError22) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError17) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError23) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError18) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError24) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError19) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError25) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError20) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError26) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError21) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError27) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError22) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError28) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError23) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError29) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError24) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError30) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError25) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError31) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError26) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError32) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError27) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError33) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError28) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError34) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError29) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError35) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError30) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError36) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError31) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError37) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError32) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError38) {} │ │ │ │ } │ │ │ │ - catch (NoSuchFieldError noSuchFieldError33) {} │ │ │ │ + catch (NoSuchFieldError noSuchFieldError39) {} │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/ReaderException.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -15,10 +15,12 @@ │ │ │ │ } │ │ │ │ │ │ │ │ ReaderException(final Throwable t) { │ │ │ │ super(t); │ │ │ │ } │ │ │ │ │ │ │ │ public final Throwable fillInStackTrace() { │ │ │ │ + // monitorenter(this) │ │ │ │ + // monitorexit(this) │ │ │ │ return null; │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/Result.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -3,33 +3,46 @@ │ │ │ │ │ │ │ │ import java.util.EnumMap; │ │ │ │ import java.util.Map; │ │ │ │ │ │ │ │ public final class Result │ │ │ │ { │ │ │ │ private final BarcodeFormat format; │ │ │ │ + private final int numBits; │ │ │ │ private final byte[] rawBytes; │ │ │ │ private Map resultMetadata; │ │ │ │ private ResultPoint[] resultPoints; │ │ │ │ private final String text; │ │ │ │ private final long timestamp; │ │ │ │ │ │ │ │ - public Result(final String s, final byte[] array, final ResultPoint[] array2, final BarcodeFormat barcodeFormat) { │ │ │ │ - this(s, array, array2, barcodeFormat, System.currentTimeMillis()); │ │ │ │ - } │ │ │ │ - │ │ │ │ - public Result(final String text, final byte[] rawBytes, final ResultPoint[] resultPoints, final BarcodeFormat format, final long timestamp) { │ │ │ │ + public Result(final String text, final byte[] rawBytes, final int numBits, final ResultPoint[] resultPoints, final BarcodeFormat format, final long timestamp) { │ │ │ │ this.text = text; │ │ │ │ this.rawBytes = rawBytes; │ │ │ │ + this.numBits = numBits; │ │ │ │ this.resultPoints = resultPoints; │ │ │ │ this.format = format; │ │ │ │ this.resultMetadata = null; │ │ │ │ this.timestamp = timestamp; │ │ │ │ } │ │ │ │ │ │ │ │ + public Result(final String s, final byte[] array, final ResultPoint[] array2, final BarcodeFormat barcodeFormat) { │ │ │ │ + this(s, array, array2, barcodeFormat, System.currentTimeMillis()); │ │ │ │ + } │ │ │ │ + │ │ │ │ + public Result(final String s, final byte[] array, final ResultPoint[] array2, final BarcodeFormat barcodeFormat, final long n) { │ │ │ │ + int n2; │ │ │ │ + if (array == null) { │ │ │ │ + n2 = 0; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + n2 = array.length * 8; │ │ │ │ + } │ │ │ │ + this(s, array, n2, array2, barcodeFormat, n); │ │ │ │ + } │ │ │ │ + │ │ │ │ public void addResultPoints(final ResultPoint[] resultPoints) { │ │ │ │ final ResultPoint[] resultPoints2 = this.resultPoints; │ │ │ │ if (resultPoints2 == null) { │ │ │ │ this.resultPoints = resultPoints; │ │ │ │ } │ │ │ │ else if (resultPoints != null && resultPoints.length > 0) { │ │ │ │ final ResultPoint[] resultPoints3 = new ResultPoint[resultPoints2.length + resultPoints.length]; │ │ │ │ @@ -39,14 +52,18 @@ │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ public BarcodeFormat getBarcodeFormat() { │ │ │ │ return this.format; │ │ │ │ } │ │ │ │ │ │ │ │ + public int getNumBits() { │ │ │ │ + return this.numBits; │ │ │ │ + } │ │ │ │ + │ │ │ │ public byte[] getRawBytes() { │ │ │ │ return this.rawBytes; │ │ │ │ } │ │ │ │ │ │ │ │ public Map getResultMetadata() { │ │ │ │ return this.resultMetadata; │ │ │ │ } │ │ ├── com/google/zxing/ResultPoint.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -77,16 +77,10 @@ │ │ │ │ } │ │ │ │ │ │ │ │ public final int hashCode() { │ │ │ │ return Float.floatToIntBits(this.x) * 31 + Float.floatToIntBits(this.y); │ │ │ │ } │ │ │ │ │ │ │ │ public final String toString() { │ │ │ │ - final StringBuilder sb = new StringBuilder(25); │ │ │ │ - sb.append('('); │ │ │ │ - sb.append(this.x); │ │ │ │ - sb.append(','); │ │ │ │ - sb.append(this.y); │ │ │ │ - sb.append(')'); │ │ │ │ - return sb.toString(); │ │ │ │ + return "(" + this.x + ',' + this.y + ')'; │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/aztec/decoder/Decoder.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ │ │ │ │ package com.google.zxing.aztec.decoder; │ │ │ │ │ │ │ │ -import com.google.zxing.common.BitMatrix; │ │ │ │ import java.util.List; │ │ │ │ import com.google.zxing.common.DecoderResult; │ │ │ │ +import com.google.zxing.common.BitMatrix; │ │ │ │ import java.util.Arrays; │ │ │ │ import com.google.zxing.common.reedsolomon.ReedSolomonException; │ │ │ │ import com.google.zxing.common.reedsolomon.ReedSolomonDecoder; │ │ │ │ import com.google.zxing.FormatException; │ │ │ │ import com.google.zxing.common.reedsolomon.GenericGF; │ │ │ │ import com.google.zxing.aztec.AztecDetectorResult; │ │ │ │ │ │ │ │ @@ -177,14 +177,22 @@ │ │ │ │ digit_TABLE[12] = ","; │ │ │ │ digit_TABLE[13] = "."; │ │ │ │ digit_TABLE[14] = "CTRL_UL"; │ │ │ │ digit_TABLE[15] = "CTRL_US"; │ │ │ │ DIGIT_TABLE = digit_TABLE; │ │ │ │ } │ │ │ │ │ │ │ │ + static byte[] convertBoolArrayToByteArray(final boolean[] array) { │ │ │ │ + final byte[] array2 = new byte[(array.length + 7) / 8]; │ │ │ │ + for (int i = 0; i < array2.length; ++i) { │ │ │ │ + array2[i] = readByte(array, i << 3); │ │ │ │ + } │ │ │ │ + return array2; │ │ │ │ + } │ │ │ │ + │ │ │ │ private boolean[] correctBits(final boolean[] array) { │ │ │ │ int n; │ │ │ │ GenericGF genericGF; │ │ │ │ if (this.ddata.getNbLayers() <= 2) { │ │ │ │ n = 6; │ │ │ │ genericGF = GenericGF.AZTEC_DATA_6; │ │ │ │ } │ │ │ │ @@ -202,74 +210,127 @@ │ │ │ │ } │ │ │ │ final int nbDatablocks = this.ddata.getNbDatablocks(); │ │ │ │ final int n2 = array.length / n; │ │ │ │ if (n2 < nbDatablocks) { │ │ │ │ throw FormatException.getFormatInstance(); │ │ │ │ } │ │ │ │ int n3 = array.length % n; │ │ │ │ - final int n4 = n2 - nbDatablocks; │ │ │ │ final int[] array2 = new int[n2]; │ │ │ │ for (int i = 0; i < n2; ++i, n3 += n) { │ │ │ │ array2[i] = readCode(array, n3, n); │ │ │ │ } │ │ │ │ + int n4; │ │ │ │ int n5; │ │ │ │ - int n6; │ │ │ │ while (true) { │ │ │ │ while (true) { │ │ │ │ + int n6; │ │ │ │ int n7; │ │ │ │ - int n8; │ │ │ │ try { │ │ │ │ - new ReedSolomonDecoder(genericGF).decode(array2, n4); │ │ │ │ - n5 = (1 << n) - 1; │ │ │ │ + new ReedSolomonDecoder(genericGF).decode(array2, n2 - nbDatablocks); │ │ │ │ + n4 = (1 << n) - 1; │ │ │ │ + n5 = 0; │ │ │ │ n6 = 0; │ │ │ │ - n7 = 0; │ │ │ │ - if (n7 >= nbDatablocks) { │ │ │ │ + if (n6 >= nbDatablocks) { │ │ │ │ break; │ │ │ │ } │ │ │ │ - n8 = array2[n7]; │ │ │ │ - if (n8 == 0 || n8 == n5) { │ │ │ │ + n7 = array2[n6]; │ │ │ │ + if (n7 == 0 || n7 == n4) { │ │ │ │ throw FormatException.getFormatInstance(); │ │ │ │ } │ │ │ │ } │ │ │ │ catch (ReedSolomonException ex) { │ │ │ │ throw FormatException.getFormatInstance((Throwable)ex); │ │ │ │ } │ │ │ │ - final int n9; │ │ │ │ - if (n8 == 1 || n8 == (n9 = n5 - 1)) { │ │ │ │ - ++n6; │ │ │ │ + if (n7 == 1 || n7 == n4 - 1) { │ │ │ │ + ++n5; │ │ │ │ } │ │ │ │ - ++n7; │ │ │ │ + ++n6; │ │ │ │ continue; │ │ │ │ } │ │ │ │ } │ │ │ │ - final boolean[] array3 = new boolean[nbDatablocks * n - n6]; │ │ │ │ - int n10 = 0; │ │ │ │ + final boolean[] array3 = new boolean[nbDatablocks * n - n5]; │ │ │ │ + int n8 = 0; │ │ │ │ for (int j = 0; j < nbDatablocks; ++j) { │ │ │ │ - final int n11 = array2[j]; │ │ │ │ - final int n12; │ │ │ │ - if (n11 == 1 || n11 == (n12 = n5 - 1)) { │ │ │ │ - final int n13; │ │ │ │ - Arrays.fill(array3, n10, n10 + n - 1, n11 > (n13 = 1)); │ │ │ │ - n10 += n - 1; │ │ │ │ + final int n9 = array2[j]; │ │ │ │ + if (n9 == 1 || n9 == n4 - 1) { │ │ │ │ + Arrays.fill(array3, n8, n8 + n - 1, n9 > 1); │ │ │ │ + n8 += n - 1; │ │ │ │ } │ │ │ │ else { │ │ │ │ int k = n - 1; │ │ │ │ - int n14 = n10; │ │ │ │ + int n10 = n8; │ │ │ │ while (k >= 0) { │ │ │ │ - final int n15 = n14 + 1; │ │ │ │ - array3[n14] = ((1 << k & n11) != 0x0); │ │ │ │ + final int n11 = n10 + 1; │ │ │ │ + array3[n10] = ((1 << k & n9) != 0x0); │ │ │ │ --k; │ │ │ │ - n14 = n15; │ │ │ │ + n10 = n11; │ │ │ │ } │ │ │ │ - n10 = n14; │ │ │ │ + n8 = n10; │ │ │ │ } │ │ │ │ } │ │ │ │ return array3; │ │ │ │ } │ │ │ │ │ │ │ │ + private boolean[] extractBits(final BitMatrix bitMatrix) { │ │ │ │ + final boolean compact = this.ddata.isCompact(); │ │ │ │ + final int nbLayers = this.ddata.getNbLayers(); │ │ │ │ + int n; │ │ │ │ + if (compact) { │ │ │ │ + n = 11; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + n = 14; │ │ │ │ + } │ │ │ │ + final int n2 = n + (nbLayers << 2); │ │ │ │ + final int[] array = new int[n2]; │ │ │ │ + final boolean[] array2 = new boolean[totalBitsInLayer(nbLayers, compact)]; │ │ │ │ + if (compact) { │ │ │ │ + for (int i = 0; i < array.length; ++i) { │ │ │ │ + array[i] = i; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + final int n3 = n2 + 1 + (n2 / 2 - 1) / 15 * 2; │ │ │ │ + final int n4 = n2 / 2; │ │ │ │ + final int n5 = n3 / 2; │ │ │ │ + for (int j = 0; j < n4; ++j) { │ │ │ │ + final int n6 = j + j / 15; │ │ │ │ + array[n4 - j - 1] = n5 - n6 - 1; │ │ │ │ + array[n4 + j] = n5 + n6 + 1; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + int k = 0; │ │ │ │ + int n7 = 0; │ │ │ │ + while (k < nbLayers) { │ │ │ │ + final int n8 = nbLayers - k << 2; │ │ │ │ + int n9; │ │ │ │ + if (compact) { │ │ │ │ + n9 = 9; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + n9 = 12; │ │ │ │ + } │ │ │ │ + final int n10 = n8 + n9; │ │ │ │ + final int n11 = k << 1; │ │ │ │ + final int n12 = n2 - 1 - n11; │ │ │ │ + for (int l = 0; l < n10; ++l) { │ │ │ │ + final int n13 = l << 1; │ │ │ │ + for (int n14 = 0; n14 < 2; ++n14) { │ │ │ │ + array2[n7 + n13 + n14] = bitMatrix.get(array[n11 + n14], array[n11 + l]); │ │ │ │ + array2[n10 * 2 + n7 + n13 + n14] = bitMatrix.get(array[n11 + l], array[n12 - n14]); │ │ │ │ + array2[n10 * 4 + n7 + n13 + n14] = bitMatrix.get(array[n12 - n14], array[n12 - l]); │ │ │ │ + array2[n10 * 6 + n7 + n13 + n14] = bitMatrix.get(array[n12 - l], array[n11 + n14]); │ │ │ │ + } │ │ │ │ + } │ │ │ │ + n7 += n10 << 3; │ │ │ │ + ++k; │ │ │ │ + } │ │ │ │ + return array2; │ │ │ │ + } │ │ │ │ + │ │ │ │ private static String getCharacter(final Decoder$Table decoder$Table, final int n) { │ │ │ │ String s = null; │ │ │ │ switch (Decoder$1.$SwitchMap$com$google$zxing$aztec$decoder$Decoder$Table[decoder$Table.ordinal()]) { │ │ │ │ default: { │ │ │ │ throw new IllegalStateException("Bad table"); │ │ │ │ } │ │ │ │ case 1: { │ │ │ │ @@ -340,14 +401,15 @@ │ │ │ │ if (length - i < n4) { │ │ │ │ break; │ │ │ │ } │ │ │ │ final int code2 = readCode(array, i, n4); │ │ │ │ i += n4; │ │ │ │ final String character = getCharacter(decoder$Table, code2); │ │ │ │ if (character.startsWith("CTRL_")) { │ │ │ │ + upper = decoder$Table; │ │ │ │ decoder$Table = getTable(character.charAt(n3)); │ │ │ │ if (character.charAt(6) != 'L') { │ │ │ │ continue; │ │ │ │ } │ │ │ │ upper = decoder$Table; │ │ │ │ } │ │ │ │ else { │ │ │ │ @@ -390,14 +452,27 @@ │ │ │ │ return decoder$Table; │ │ │ │ } │ │ │ │ │ │ │ │ public static String highLevelDecode(final boolean[] array) { │ │ │ │ return getEncodedData(array); │ │ │ │ } │ │ │ │ │ │ │ │ + private static byte readByte(final boolean[] array, final int n) { │ │ │ │ + final int n2 = 8; │ │ │ │ + final int n3 = array.length - n; │ │ │ │ + byte b; │ │ │ │ + if (n3 >= n2) { │ │ │ │ + b = (byte)readCode(array, n, n2); │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + b = (byte)(readCode(array, n, n3) << 8 - n3); │ │ │ │ + } │ │ │ │ + return b; │ │ │ │ + } │ │ │ │ + │ │ │ │ private static int readCode(final boolean[] array, final int n, final int n2) { │ │ │ │ int n3 = 0; │ │ │ │ for (int i = n; i < n + n2; ++i) { │ │ │ │ n3 <<= 1; │ │ │ │ if (array[i]) { │ │ │ │ n3 |= 0x1; │ │ │ │ } │ │ │ │ @@ -409,69 +484,18 @@ │ │ │ │ int n2; │ │ │ │ if (b) { │ │ │ │ n2 = 88; │ │ │ │ } │ │ │ │ else { │ │ │ │ n2 = 112; │ │ │ │ } │ │ │ │ - return (n2 + n * 16) * n; │ │ │ │ + return (n2 + (n << 4)) * n; │ │ │ │ } │ │ │ │ │ │ │ │ public DecoderResult decode(final AztecDetectorResult ddata) { │ │ │ │ this.ddata = ddata; │ │ │ │ - return new DecoderResult((byte[])null, getEncodedData(this.correctBits(this.extractBits(ddata.getBits()))), (List)null, (String)null); │ │ │ │ - } │ │ │ │ - │ │ │ │ - boolean[] extractBits(final BitMatrix bitMatrix) { │ │ │ │ - final boolean compact = this.ddata.isCompact(); │ │ │ │ - final int nbLayers = this.ddata.getNbLayers(); │ │ │ │ - int n; │ │ │ │ - if (compact) { │ │ │ │ - n = nbLayers * 4 + 11; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - n = nbLayers * 4 + 14; │ │ │ │ - } │ │ │ │ - final int[] array = new int[n]; │ │ │ │ - final boolean[] array2 = new boolean[totalBitsInLayer(nbLayers, compact)]; │ │ │ │ - if (compact) { │ │ │ │ - for (int i = 0; i < array.length; ++i) { │ │ │ │ - array[i] = i; │ │ │ │ - } │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - final int n2 = n + 1 + (n / 2 - 1) / 15 * 2; │ │ │ │ - final int n3 = n / 2; │ │ │ │ - final int n4 = n2 / 2; │ │ │ │ - for (int j = 0; j < n3; ++j) { │ │ │ │ - final int n5 = j + j / 15; │ │ │ │ - array[n3 - j - 1] = n4 - n5 - 1; │ │ │ │ - array[n3 + j] = n4 + n5 + 1; │ │ │ │ - } │ │ │ │ - } │ │ │ │ - int k = 0; │ │ │ │ - int n6 = 0; │ │ │ │ - while (k < nbLayers) { │ │ │ │ - int n7; │ │ │ │ - if (compact) { │ │ │ │ - n7 = (nbLayers - k) * 4 + 9; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - n7 = (nbLayers - k) * 4 + 12; │ │ │ │ - } │ │ │ │ - final int n8 = k * 2; │ │ │ │ - final int n9 = n - 1 - n8; │ │ │ │ - for (int l = 0; l < n7; ++l) { │ │ │ │ - final int n10 = l * 2; │ │ │ │ - for (int n11 = 0; n11 < 2; ++n11) { │ │ │ │ - array2[n6 + n10 + n11] = bitMatrix.get(array[n8 + n11], array[n8 + l]); │ │ │ │ - array2[n7 * 2 + n6 + n10 + n11] = bitMatrix.get(array[n8 + l], array[n9 - n11]); │ │ │ │ - array2[n7 * 4 + n6 + n10 + n11] = bitMatrix.get(array[n9 - n11], array[n9 - l]); │ │ │ │ - array2[n7 * 6 + n6 + n10 + n11] = bitMatrix.get(array[n9 - l], array[n8 + n11]); │ │ │ │ - } │ │ │ │ - } │ │ │ │ - n6 += n7 * 8; │ │ │ │ - ++k; │ │ │ │ - } │ │ │ │ - return array2; │ │ │ │ + final boolean[] correctBits = this.correctBits(this.extractBits(ddata.getBits())); │ │ │ │ + final DecoderResult decoderResult = new DecoderResult(convertBoolArrayToByteArray(correctBits), getEncodedData(correctBits), (List)null, (String)null); │ │ │ │ + decoderResult.setNumBits(correctBits.length); │ │ │ │ + return decoderResult; │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/aztec/detector/Detector$Point.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -28,37 +28,36 @@ │ │ │ │ #23 = NameAndType #22:#19 // getY:()I │ │ │ │ #24 = Methodref #2.#23 // com/google/zxing/aztec/detector/Detector$Point.getY:()I │ │ │ │ #25 = Utf8 (FF)V │ │ │ │ #26 = NameAndType #8:#25 // "":(FF)V │ │ │ │ #27 = Methodref #17.#26 // com/google/zxing/ResultPoint."":(FF)V │ │ │ │ #28 = Utf8 java/lang/StringBuilder │ │ │ │ #29 = Class #28 // java/lang/StringBuilder │ │ │ │ - #30 = Methodref #29.#10 // java/lang/StringBuilder."":()V │ │ │ │ - #31 = Utf8 < │ │ │ │ - #32 = String #31 // < │ │ │ │ - #33 = Utf8 append │ │ │ │ - #34 = Utf8 (Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - #35 = NameAndType #33:#34 // append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - #36 = Methodref #29.#35 // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - #37 = Utf8 (I)Ljava/lang/StringBuilder; │ │ │ │ - #38 = NameAndType #33:#37 // append:(I)Ljava/lang/StringBuilder; │ │ │ │ - #39 = Methodref #29.#38 // java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; │ │ │ │ - #40 = Float 4.5E-44f │ │ │ │ - #41 = Utf8 (C)Ljava/lang/StringBuilder; │ │ │ │ - #42 = NameAndType #33:#41 // append:(C)Ljava/lang/StringBuilder; │ │ │ │ - #43 = Methodref #29.#42 // java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder; │ │ │ │ - #44 = Float 8.7E-44f │ │ │ │ - #45 = Utf8 toString │ │ │ │ - #46 = Utf8 ()Ljava/lang/String; │ │ │ │ - #47 = NameAndType #45:#46 // toString:()Ljava/lang/String; │ │ │ │ - #48 = Methodref #29.#47 // java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ - #49 = Utf8 Code │ │ │ │ - #50 = Utf8 (II)V │ │ │ │ - #51 = Utf8 toResultPoint │ │ │ │ - #52 = Utf8 ()Lcom/google/zxing/ResultPoint; │ │ │ │ + #30 = Utf8 < │ │ │ │ + #31 = String #30 // < │ │ │ │ + #32 = Utf8 (Ljava/lang/String;)V │ │ │ │ + #33 = NameAndType #8:#32 // "":(Ljava/lang/String;)V │ │ │ │ + #34 = Methodref #29.#33 // java/lang/StringBuilder."":(Ljava/lang/String;)V │ │ │ │ + #35 = Utf8 append │ │ │ │ + #36 = Utf8 (I)Ljava/lang/StringBuilder; │ │ │ │ + #37 = NameAndType #35:#36 // append:(I)Ljava/lang/StringBuilder; │ │ │ │ + #38 = Methodref #29.#37 // java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; │ │ │ │ + #39 = Float 4.5E-44f │ │ │ │ + #40 = Utf8 (C)Ljava/lang/StringBuilder; │ │ │ │ + #41 = NameAndType #35:#40 // append:(C)Ljava/lang/StringBuilder; │ │ │ │ + #42 = Methodref #29.#41 // java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder; │ │ │ │ + #43 = Float 8.7E-44f │ │ │ │ + #44 = Utf8 toString │ │ │ │ + #45 = Utf8 ()Ljava/lang/String; │ │ │ │ + #46 = NameAndType #44:#45 // toString:()Ljava/lang/String; │ │ │ │ + #47 = Methodref #29.#46 // java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ + #48 = Utf8 Code │ │ │ │ + #49 = Utf8 (II)V │ │ │ │ + #50 = Utf8 toResultPoint │ │ │ │ + #51 = Utf8 ()Lcom/google/zxing/ResultPoint; │ │ │ │ { │ │ │ │ private final int x; │ │ │ │ descriptor: I │ │ │ │ flags: ACC_PRIVATE, ACC_FINAL │ │ │ │ │ │ │ │ private final int y; │ │ │ │ descriptor: I │ │ │ │ @@ -123,32 +122,29 @@ │ │ │ │ descriptor: ()Ljava/lang/String; │ │ │ │ flags: ACC_PUBLIC │ │ │ │ Code: │ │ │ │ stack=300, locals=3, args_size=1 │ │ │ │ 0: new #29 // class java/lang/StringBuilder │ │ │ │ 3: astore_1 │ │ │ │ 4: aload_1 │ │ │ │ - 5: invokespecial #30 // Method java/lang/StringBuilder."":()V │ │ │ │ - 8: aload_1 │ │ │ │ - 9: ldc #32 // String < │ │ │ │ - 11: invokevirtual #36 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - 14: astore_1 │ │ │ │ - 15: aload_0 │ │ │ │ - 16: getfield #13 // Field x:I │ │ │ │ - 19: istore_2 │ │ │ │ - 20: aload_1 │ │ │ │ - 21: iload_2 │ │ │ │ - 22: invokevirtual #39 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; │ │ │ │ - 25: bipush 32 │ │ │ │ - 27: invokevirtual #43 // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder; │ │ │ │ - 30: astore_1 │ │ │ │ - 31: aload_0 │ │ │ │ - 32: getfield #15 // Field y:I │ │ │ │ - 35: istore_2 │ │ │ │ - 36: aload_1 │ │ │ │ - 37: iload_2 │ │ │ │ - 38: invokevirtual #39 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; │ │ │ │ - 41: bipush 62 │ │ │ │ - 43: invokevirtual #43 // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder; │ │ │ │ - 46: invokevirtual #48 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ - 49: areturn │ │ │ │ + 5: ldc #31 // String < │ │ │ │ + 7: invokespecial #34 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V │ │ │ │ + 10: aload_0 │ │ │ │ + 11: getfield #13 // Field x:I │ │ │ │ + 14: istore_2 │ │ │ │ + 15: aload_1 │ │ │ │ + 16: iload_2 │ │ │ │ + 17: invokevirtual #38 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; │ │ │ │ + 20: bipush 32 │ │ │ │ + 22: invokevirtual #42 // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder; │ │ │ │ + 25: astore_1 │ │ │ │ + 26: aload_0 │ │ │ │ + 27: getfield #15 // Field y:I │ │ │ │ + 30: istore_2 │ │ │ │ + 31: aload_1 │ │ │ │ + 32: iload_2 │ │ │ │ + 33: invokevirtual #38 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; │ │ │ │ + 36: bipush 62 │ │ │ │ + 38: invokevirtual #42 // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder; │ │ │ │ + 41: invokevirtual #47 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ + 44: areturn │ │ │ │ } │ │ ├── com/google/zxing/aztec/detector/Detector.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -143,15 +143,15 @@ │ │ │ │ final float distance = distance(detector$Point, detector$Point2); │ │ │ │ final float n = (detector$Point2.getX() - detector$Point.getX()) / distance; │ │ │ │ final float n2 = (detector$Point2.getY() - detector$Point.getY()) / distance; │ │ │ │ int n3 = 0; │ │ │ │ float n4 = (float)detector$Point.getX(); │ │ │ │ float n5 = (float)detector$Point.getY(); │ │ │ │ final boolean value = this.image.get(detector$Point.getX(), detector$Point.getY()); │ │ │ │ - for (int n6 = 0; n6 < distance; ++n6) { │ │ │ │ + for (int n6 = (int)Math.ceil(distance), i = 0; i < n6; ++i) { │ │ │ │ n4 += n; │ │ │ │ n5 += n2; │ │ │ │ if (this.image.get(MathUtils.round(n4), MathUtils.round(n5)) != value) { │ │ │ │ ++n3; │ │ │ │ } │ │ │ │ } │ │ │ │ final float n7 = n3 / distance; │ │ │ │ @@ -448,232 +448,232 @@ │ │ │ │ // 404: astore 4 │ │ │ │ // 406: aload 4 │ │ │ │ // 408: iload 14 │ │ │ │ // 410: iload 15 │ │ │ │ // 412: invokespecial com/google/zxing/aztec/detector/Detector$Point.:(II)V │ │ │ │ // 415: aload 4 │ │ │ │ // 417: areturn │ │ │ │ - // 418: pop │ │ │ │ - // 419: aload_0 │ │ │ │ - // 420: getfield com/google/zxing/aztec/detector/Detector.image:Lcom/google/zxing/common/BitMatrix; │ │ │ │ - // 423: invokevirtual com/google/zxing/common/BitMatrix.getWidth:()I │ │ │ │ - // 426: iconst_2 │ │ │ │ - // 427: idiv │ │ │ │ - // 428: istore 14 │ │ │ │ - // 430: aload_0 │ │ │ │ - // 431: getfield com/google/zxing/aztec/detector/Detector.image:Lcom/google/zxing/common/BitMatrix; │ │ │ │ - // 434: invokevirtual com/google/zxing/common/BitMatrix.getHeight:()I │ │ │ │ - // 437: istore 7 │ │ │ │ - // 439: iload 7 │ │ │ │ - // 441: iconst_2 │ │ │ │ - // 442: idiv │ │ │ │ - // 443: istore 15 │ │ │ │ - // 445: new Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ - // 448: astore 4 │ │ │ │ - // 450: iload 14 │ │ │ │ - // 452: bipush 7 │ │ │ │ - // 454: iadd │ │ │ │ - // 455: istore 17 │ │ │ │ - // 457: iload 15 │ │ │ │ - // 459: bipush -7 │ │ │ │ - // 461: iadd │ │ │ │ - // 462: istore 16 │ │ │ │ - // 464: aload 4 │ │ │ │ - // 466: iload 17 │ │ │ │ - // 468: iload 16 │ │ │ │ - // 470: invokespecial com/google/zxing/aztec/detector/Detector$Point.:(II)V │ │ │ │ - // 473: aload_0 │ │ │ │ - // 474: aload 4 │ │ │ │ - // 476: iconst_0 │ │ │ │ - // 477: iload_3 │ │ │ │ - // 478: iload_2 │ │ │ │ - // 479: invokespecial com/google/zxing/aztec/detector/Detector.getFirstDifferent:(Lcom/google/zxing/aztec/detector/Detector$Point;ZII)Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ - // 482: invokevirtual com/google/zxing/aztec/detector/Detector$Point.toResultPoint:()Lcom/google/zxing/ResultPoint; │ │ │ │ - // 485: astore 9 │ │ │ │ - // 487: new Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ - // 490: astore 4 │ │ │ │ - // 492: iload 14 │ │ │ │ - // 494: bipush 7 │ │ │ │ - // 496: iadd │ │ │ │ - // 497: istore 17 │ │ │ │ - // 499: iload 15 │ │ │ │ - // 501: bipush 7 │ │ │ │ - // 503: iadd │ │ │ │ - // 504: istore 16 │ │ │ │ - // 506: aload 4 │ │ │ │ - // 508: iload 17 │ │ │ │ - // 510: iload 16 │ │ │ │ - // 512: invokespecial com/google/zxing/aztec/detector/Detector$Point.:(II)V │ │ │ │ - // 515: aload_0 │ │ │ │ - // 516: aload 4 │ │ │ │ - // 518: iconst_0 │ │ │ │ - // 519: iload_3 │ │ │ │ + // 418: astore 4 │ │ │ │ + // 420: aload_0 │ │ │ │ + // 421: getfield com/google/zxing/aztec/detector/Detector.image:Lcom/google/zxing/common/BitMatrix; │ │ │ │ + // 424: invokevirtual com/google/zxing/common/BitMatrix.getWidth:()I │ │ │ │ + // 427: iconst_2 │ │ │ │ + // 428: idiv │ │ │ │ + // 429: istore 14 │ │ │ │ + // 431: aload_0 │ │ │ │ + // 432: getfield com/google/zxing/aztec/detector/Detector.image:Lcom/google/zxing/common/BitMatrix; │ │ │ │ + // 435: invokevirtual com/google/zxing/common/BitMatrix.getHeight:()I │ │ │ │ + // 438: istore 7 │ │ │ │ + // 440: iload 7 │ │ │ │ + // 442: iconst_2 │ │ │ │ + // 443: idiv │ │ │ │ + // 444: istore 15 │ │ │ │ + // 446: new Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ + // 449: astore 4 │ │ │ │ + // 451: iload 14 │ │ │ │ + // 453: bipush 7 │ │ │ │ + // 455: iadd │ │ │ │ + // 456: istore 17 │ │ │ │ + // 458: iload 15 │ │ │ │ + // 460: bipush -7 │ │ │ │ + // 462: iadd │ │ │ │ + // 463: istore 16 │ │ │ │ + // 465: aload 4 │ │ │ │ + // 467: iload 17 │ │ │ │ + // 469: iload 16 │ │ │ │ + // 471: invokespecial com/google/zxing/aztec/detector/Detector$Point.:(II)V │ │ │ │ + // 474: aload_0 │ │ │ │ + // 475: aload 4 │ │ │ │ + // 477: iconst_0 │ │ │ │ + // 478: iload_3 │ │ │ │ + // 479: iload_2 │ │ │ │ + // 480: invokespecial com/google/zxing/aztec/detector/Detector.getFirstDifferent:(Lcom/google/zxing/aztec/detector/Detector$Point;ZII)Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ + // 483: invokevirtual com/google/zxing/aztec/detector/Detector$Point.toResultPoint:()Lcom/google/zxing/ResultPoint; │ │ │ │ + // 486: astore 9 │ │ │ │ + // 488: new Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ + // 491: astore 4 │ │ │ │ + // 493: iload 14 │ │ │ │ + // 495: bipush 7 │ │ │ │ + // 497: iadd │ │ │ │ + // 498: istore 17 │ │ │ │ + // 500: iload 15 │ │ │ │ + // 502: bipush 7 │ │ │ │ + // 504: iadd │ │ │ │ + // 505: istore 16 │ │ │ │ + // 507: aload 4 │ │ │ │ + // 509: iload 17 │ │ │ │ + // 511: iload 16 │ │ │ │ + // 513: invokespecial com/google/zxing/aztec/detector/Detector$Point.:(II)V │ │ │ │ + // 516: aload_0 │ │ │ │ + // 517: aload 4 │ │ │ │ + // 519: iconst_0 │ │ │ │ // 520: iload_3 │ │ │ │ - // 521: invokespecial com/google/zxing/aztec/detector/Detector.getFirstDifferent:(Lcom/google/zxing/aztec/detector/Detector$Point;ZII)Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ - // 524: invokevirtual com/google/zxing/aztec/detector/Detector$Point.toResultPoint:()Lcom/google/zxing/ResultPoint; │ │ │ │ - // 527: astore 10 │ │ │ │ - // 529: new Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ - // 532: astore 4 │ │ │ │ - // 534: iload 14 │ │ │ │ - // 536: bipush -7 │ │ │ │ - // 538: iadd │ │ │ │ - // 539: istore 17 │ │ │ │ - // 541: iload 15 │ │ │ │ - // 543: bipush 7 │ │ │ │ - // 545: iadd │ │ │ │ - // 546: istore 16 │ │ │ │ - // 548: aload 4 │ │ │ │ - // 550: iload 17 │ │ │ │ - // 552: iload 16 │ │ │ │ - // 554: invokespecial com/google/zxing/aztec/detector/Detector$Point.:(II)V │ │ │ │ - // 557: aload_0 │ │ │ │ - // 558: aload 4 │ │ │ │ - // 560: iconst_0 │ │ │ │ - // 561: iload_2 │ │ │ │ - // 562: iload_3 │ │ │ │ - // 563: invokespecial com/google/zxing/aztec/detector/Detector.getFirstDifferent:(Lcom/google/zxing/aztec/detector/Detector$Point;ZII)Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ - // 566: invokevirtual com/google/zxing/aztec/detector/Detector$Point.toResultPoint:()Lcom/google/zxing/ResultPoint; │ │ │ │ - // 569: astore 11 │ │ │ │ - // 571: new Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ - // 574: astore 4 │ │ │ │ - // 576: iload 14 │ │ │ │ - // 578: bipush -7 │ │ │ │ - // 580: iadd │ │ │ │ - // 581: istore 17 │ │ │ │ - // 583: iload 15 │ │ │ │ - // 585: bipush -7 │ │ │ │ - // 587: iadd │ │ │ │ - // 588: istore 16 │ │ │ │ - // 590: aload 4 │ │ │ │ - // 592: iload 17 │ │ │ │ - // 594: iload 16 │ │ │ │ - // 596: invokespecial com/google/zxing/aztec/detector/Detector$Point.:(II)V │ │ │ │ - // 599: aload_0 │ │ │ │ - // 600: aload 4 │ │ │ │ - // 602: iconst_0 │ │ │ │ - // 603: iload_2 │ │ │ │ + // 521: iload_3 │ │ │ │ + // 522: invokespecial com/google/zxing/aztec/detector/Detector.getFirstDifferent:(Lcom/google/zxing/aztec/detector/Detector$Point;ZII)Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ + // 525: invokevirtual com/google/zxing/aztec/detector/Detector$Point.toResultPoint:()Lcom/google/zxing/ResultPoint; │ │ │ │ + // 528: astore 10 │ │ │ │ + // 530: new Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ + // 533: astore 4 │ │ │ │ + // 535: iload 14 │ │ │ │ + // 537: bipush -7 │ │ │ │ + // 539: iadd │ │ │ │ + // 540: istore 17 │ │ │ │ + // 542: iload 15 │ │ │ │ + // 544: bipush 7 │ │ │ │ + // 546: iadd │ │ │ │ + // 547: istore 16 │ │ │ │ + // 549: aload 4 │ │ │ │ + // 551: iload 17 │ │ │ │ + // 553: iload 16 │ │ │ │ + // 555: invokespecial com/google/zxing/aztec/detector/Detector$Point.:(II)V │ │ │ │ + // 558: aload_0 │ │ │ │ + // 559: aload 4 │ │ │ │ + // 561: iconst_0 │ │ │ │ + // 562: iload_2 │ │ │ │ + // 563: iload_3 │ │ │ │ + // 564: invokespecial com/google/zxing/aztec/detector/Detector.getFirstDifferent:(Lcom/google/zxing/aztec/detector/Detector$Point;ZII)Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ + // 567: invokevirtual com/google/zxing/aztec/detector/Detector$Point.toResultPoint:()Lcom/google/zxing/ResultPoint; │ │ │ │ + // 570: astore 11 │ │ │ │ + // 572: new Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ + // 575: astore 4 │ │ │ │ + // 577: iload 14 │ │ │ │ + // 579: bipush -7 │ │ │ │ + // 581: iadd │ │ │ │ + // 582: istore 17 │ │ │ │ + // 584: iload 15 │ │ │ │ + // 586: bipush -7 │ │ │ │ + // 588: iadd │ │ │ │ + // 589: istore 16 │ │ │ │ + // 591: aload 4 │ │ │ │ + // 593: iload 17 │ │ │ │ + // 595: iload 16 │ │ │ │ + // 597: invokespecial com/google/zxing/aztec/detector/Detector$Point.:(II)V │ │ │ │ + // 600: aload_0 │ │ │ │ + // 601: aload 4 │ │ │ │ + // 603: iconst_0 │ │ │ │ // 604: iload_2 │ │ │ │ - // 605: invokespecial com/google/zxing/aztec/detector/Detector.getFirstDifferent:(Lcom/google/zxing/aztec/detector/Detector$Point;ZII)Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ - // 608: astore 4 │ │ │ │ - // 610: aload 4 │ │ │ │ - // 612: invokevirtual com/google/zxing/aztec/detector/Detector$Point.toResultPoint:()Lcom/google/zxing/ResultPoint; │ │ │ │ - // 615: astore 12 │ │ │ │ - // 617: goto 89 │ │ │ │ - // 620: pop │ │ │ │ - // 621: new Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ - // 624: astore 4 │ │ │ │ - // 626: iload 14 │ │ │ │ - // 628: bipush 7 │ │ │ │ - // 630: iadd │ │ │ │ - // 631: istore 17 │ │ │ │ - // 633: iload 15 │ │ │ │ - // 635: bipush -7 │ │ │ │ - // 637: iadd │ │ │ │ - // 638: istore 16 │ │ │ │ - // 640: aload 4 │ │ │ │ - // 642: iload 17 │ │ │ │ - // 644: iload 16 │ │ │ │ - // 646: invokespecial com/google/zxing/aztec/detector/Detector$Point.:(II)V │ │ │ │ - // 649: aload_0 │ │ │ │ - // 650: aload 4 │ │ │ │ - // 652: iconst_0 │ │ │ │ - // 653: iload_3 │ │ │ │ - // 654: iload_2 │ │ │ │ - // 655: invokespecial com/google/zxing/aztec/detector/Detector.getFirstDifferent:(Lcom/google/zxing/aztec/detector/Detector$Point;ZII)Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ - // 658: invokevirtual com/google/zxing/aztec/detector/Detector$Point.toResultPoint:()Lcom/google/zxing/ResultPoint; │ │ │ │ - // 661: astore 9 │ │ │ │ - // 663: new Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ - // 666: astore 4 │ │ │ │ - // 668: iload 14 │ │ │ │ - // 670: bipush 7 │ │ │ │ - // 672: iadd │ │ │ │ - // 673: istore 17 │ │ │ │ - // 675: iload 15 │ │ │ │ - // 677: bipush 7 │ │ │ │ - // 679: iadd │ │ │ │ - // 680: istore 16 │ │ │ │ - // 682: aload 4 │ │ │ │ - // 684: iload 17 │ │ │ │ - // 686: iload 16 │ │ │ │ - // 688: invokespecial com/google/zxing/aztec/detector/Detector$Point.:(II)V │ │ │ │ - // 691: aload_0 │ │ │ │ - // 692: aload 4 │ │ │ │ - // 694: iconst_0 │ │ │ │ - // 695: iload_3 │ │ │ │ - // 696: iload_3 │ │ │ │ - // 697: invokespecial com/google/zxing/aztec/detector/Detector.getFirstDifferent:(Lcom/google/zxing/aztec/detector/Detector$Point;ZII)Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ - // 700: invokevirtual com/google/zxing/aztec/detector/Detector$Point.toResultPoint:()Lcom/google/zxing/ResultPoint; │ │ │ │ - // 703: astore 10 │ │ │ │ - // 705: new Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ - // 708: astore 4 │ │ │ │ - // 710: iload 14 │ │ │ │ - // 712: bipush -7 │ │ │ │ - // 714: iadd │ │ │ │ - // 715: istore 17 │ │ │ │ - // 717: iload 15 │ │ │ │ - // 719: bipush 7 │ │ │ │ - // 721: iadd │ │ │ │ - // 722: istore 16 │ │ │ │ - // 724: aload 4 │ │ │ │ - // 726: iload 17 │ │ │ │ - // 728: iload 16 │ │ │ │ - // 730: invokespecial com/google/zxing/aztec/detector/Detector$Point.:(II)V │ │ │ │ - // 733: aload_0 │ │ │ │ - // 734: aload 4 │ │ │ │ - // 736: iconst_0 │ │ │ │ - // 737: iload_2 │ │ │ │ - // 738: iload_3 │ │ │ │ - // 739: invokespecial com/google/zxing/aztec/detector/Detector.getFirstDifferent:(Lcom/google/zxing/aztec/detector/Detector$Point;ZII)Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ - // 742: invokevirtual com/google/zxing/aztec/detector/Detector$Point.toResultPoint:()Lcom/google/zxing/ResultPoint; │ │ │ │ - // 745: astore 11 │ │ │ │ - // 747: new Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ - // 750: astore 4 │ │ │ │ - // 752: iload 14 │ │ │ │ - // 754: bipush -7 │ │ │ │ - // 756: iadd │ │ │ │ - // 757: istore 17 │ │ │ │ - // 759: iload 15 │ │ │ │ - // 761: bipush -7 │ │ │ │ - // 763: iadd │ │ │ │ - // 764: istore 16 │ │ │ │ - // 766: aload 4 │ │ │ │ - // 768: iload 17 │ │ │ │ - // 770: iload 16 │ │ │ │ - // 772: invokespecial com/google/zxing/aztec/detector/Detector$Point.:(II)V │ │ │ │ - // 775: aload_0 │ │ │ │ - // 776: aload 4 │ │ │ │ - // 778: iconst_0 │ │ │ │ - // 779: iload_2 │ │ │ │ - // 780: iload_2 │ │ │ │ - // 781: invokespecial com/google/zxing/aztec/detector/Detector.getFirstDifferent:(Lcom/google/zxing/aztec/detector/Detector$Point;ZII)Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ - // 784: astore 4 │ │ │ │ - // 786: aload 4 │ │ │ │ - // 788: invokevirtual com/google/zxing/aztec/detector/Detector$Point.toResultPoint:()Lcom/google/zxing/ResultPoint; │ │ │ │ - // 791: astore 12 │ │ │ │ - // 793: goto 293 │ │ │ │ + // 605: iload_2 │ │ │ │ + // 606: invokespecial com/google/zxing/aztec/detector/Detector.getFirstDifferent:(Lcom/google/zxing/aztec/detector/Detector$Point;ZII)Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ + // 609: astore 4 │ │ │ │ + // 611: aload 4 │ │ │ │ + // 613: invokevirtual com/google/zxing/aztec/detector/Detector$Point.toResultPoint:()Lcom/google/zxing/ResultPoint; │ │ │ │ + // 616: astore 12 │ │ │ │ + // 618: goto 89 │ │ │ │ + // 621: astore 4 │ │ │ │ + // 623: new Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ + // 626: astore 4 │ │ │ │ + // 628: iload 14 │ │ │ │ + // 630: bipush 7 │ │ │ │ + // 632: iadd │ │ │ │ + // 633: istore 17 │ │ │ │ + // 635: iload 15 │ │ │ │ + // 637: bipush -7 │ │ │ │ + // 639: iadd │ │ │ │ + // 640: istore 16 │ │ │ │ + // 642: aload 4 │ │ │ │ + // 644: iload 17 │ │ │ │ + // 646: iload 16 │ │ │ │ + // 648: invokespecial com/google/zxing/aztec/detector/Detector$Point.:(II)V │ │ │ │ + // 651: aload_0 │ │ │ │ + // 652: aload 4 │ │ │ │ + // 654: iconst_0 │ │ │ │ + // 655: iload_3 │ │ │ │ + // 656: iload_2 │ │ │ │ + // 657: invokespecial com/google/zxing/aztec/detector/Detector.getFirstDifferent:(Lcom/google/zxing/aztec/detector/Detector$Point;ZII)Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ + // 660: invokevirtual com/google/zxing/aztec/detector/Detector$Point.toResultPoint:()Lcom/google/zxing/ResultPoint; │ │ │ │ + // 663: astore 9 │ │ │ │ + // 665: new Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ + // 668: astore 4 │ │ │ │ + // 670: iload 14 │ │ │ │ + // 672: bipush 7 │ │ │ │ + // 674: iadd │ │ │ │ + // 675: istore 17 │ │ │ │ + // 677: iload 15 │ │ │ │ + // 679: bipush 7 │ │ │ │ + // 681: iadd │ │ │ │ + // 682: istore 16 │ │ │ │ + // 684: aload 4 │ │ │ │ + // 686: iload 17 │ │ │ │ + // 688: iload 16 │ │ │ │ + // 690: invokespecial com/google/zxing/aztec/detector/Detector$Point.:(II)V │ │ │ │ + // 693: aload_0 │ │ │ │ + // 694: aload 4 │ │ │ │ + // 696: iconst_0 │ │ │ │ + // 697: iload_3 │ │ │ │ + // 698: iload_3 │ │ │ │ + // 699: invokespecial com/google/zxing/aztec/detector/Detector.getFirstDifferent:(Lcom/google/zxing/aztec/detector/Detector$Point;ZII)Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ + // 702: invokevirtual com/google/zxing/aztec/detector/Detector$Point.toResultPoint:()Lcom/google/zxing/ResultPoint; │ │ │ │ + // 705: astore 10 │ │ │ │ + // 707: new Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ + // 710: astore 4 │ │ │ │ + // 712: iload 14 │ │ │ │ + // 714: bipush -7 │ │ │ │ + // 716: iadd │ │ │ │ + // 717: istore 17 │ │ │ │ + // 719: iload 15 │ │ │ │ + // 721: bipush 7 │ │ │ │ + // 723: iadd │ │ │ │ + // 724: istore 16 │ │ │ │ + // 726: aload 4 │ │ │ │ + // 728: iload 17 │ │ │ │ + // 730: iload 16 │ │ │ │ + // 732: invokespecial com/google/zxing/aztec/detector/Detector$Point.:(II)V │ │ │ │ + // 735: aload_0 │ │ │ │ + // 736: aload 4 │ │ │ │ + // 738: iconst_0 │ │ │ │ + // 739: iload_2 │ │ │ │ + // 740: iload_3 │ │ │ │ + // 741: invokespecial com/google/zxing/aztec/detector/Detector.getFirstDifferent:(Lcom/google/zxing/aztec/detector/Detector$Point;ZII)Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ + // 744: invokevirtual com/google/zxing/aztec/detector/Detector$Point.toResultPoint:()Lcom/google/zxing/ResultPoint; │ │ │ │ + // 747: astore 11 │ │ │ │ + // 749: new Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ + // 752: astore 4 │ │ │ │ + // 754: iload 14 │ │ │ │ + // 756: bipush -7 │ │ │ │ + // 758: iadd │ │ │ │ + // 759: istore 17 │ │ │ │ + // 761: iload 15 │ │ │ │ + // 763: bipush -7 │ │ │ │ + // 765: iadd │ │ │ │ + // 766: istore 16 │ │ │ │ + // 768: aload 4 │ │ │ │ + // 770: iload 17 │ │ │ │ + // 772: iload 16 │ │ │ │ + // 774: invokespecial com/google/zxing/aztec/detector/Detector$Point.:(II)V │ │ │ │ + // 777: aload_0 │ │ │ │ + // 778: aload 4 │ │ │ │ + // 780: iconst_0 │ │ │ │ + // 781: iload_2 │ │ │ │ + // 782: iload_2 │ │ │ │ + // 783: invokespecial com/google/zxing/aztec/detector/Detector.getFirstDifferent:(Lcom/google/zxing/aztec/detector/Detector$Point;ZII)Lcom/google/zxing/aztec/detector/Detector$Point; │ │ │ │ + // 786: astore 4 │ │ │ │ + // 788: aload 4 │ │ │ │ + // 790: invokevirtual com/google/zxing/aztec/detector/Detector$Point.toResultPoint:()Lcom/google/zxing/ResultPoint; │ │ │ │ + // 793: astore 12 │ │ │ │ + // 795: goto 293 │ │ │ │ // Exceptions: │ │ │ │ // Try Handler │ │ │ │ // Start End Start End Type │ │ │ │ // ----- ----- ----- ----- ------------------------------------ │ │ │ │ - // 7 10 418 620 Lcom/google/zxing/NotFoundException; │ │ │ │ - // 12 16 418 620 Lcom/google/zxing/NotFoundException; │ │ │ │ - // 20 25 418 620 Lcom/google/zxing/NotFoundException; │ │ │ │ - // 25 30 418 620 Lcom/google/zxing/NotFoundException; │ │ │ │ - // 43 45 418 620 Lcom/google/zxing/NotFoundException; │ │ │ │ - // 56 59 418 620 Lcom/google/zxing/NotFoundException; │ │ │ │ - // 70 73 418 620 Lcom/google/zxing/NotFoundException; │ │ │ │ - // 84 87 418 620 Lcom/google/zxing/NotFoundException; │ │ │ │ - // 201 204 620 796 Lcom/google/zxing/NotFoundException; │ │ │ │ - // 206 210 620 796 Lcom/google/zxing/NotFoundException; │ │ │ │ - // 224 229 620 796 Lcom/google/zxing/NotFoundException; │ │ │ │ - // 229 234 620 796 Lcom/google/zxing/NotFoundException; │ │ │ │ - // 247 249 620 796 Lcom/google/zxing/NotFoundException; │ │ │ │ - // 260 263 620 796 Lcom/google/zxing/NotFoundException; │ │ │ │ - // 274 277 620 796 Lcom/google/zxing/NotFoundException; │ │ │ │ - // 288 291 620 796 Lcom/google/zxing/NotFoundException; │ │ │ │ + // 7 10 418 621 Lcom/google/zxing/NotFoundException; │ │ │ │ + // 12 16 418 621 Lcom/google/zxing/NotFoundException; │ │ │ │ + // 20 25 418 621 Lcom/google/zxing/NotFoundException; │ │ │ │ + // 25 30 418 621 Lcom/google/zxing/NotFoundException; │ │ │ │ + // 43 45 418 621 Lcom/google/zxing/NotFoundException; │ │ │ │ + // 56 59 418 621 Lcom/google/zxing/NotFoundException; │ │ │ │ + // 70 73 418 621 Lcom/google/zxing/NotFoundException; │ │ │ │ + // 84 87 418 621 Lcom/google/zxing/NotFoundException; │ │ │ │ + // 201 204 621 798 Lcom/google/zxing/NotFoundException; │ │ │ │ + // 206 210 621 798 Lcom/google/zxing/NotFoundException; │ │ │ │ + // 224 229 621 798 Lcom/google/zxing/NotFoundException; │ │ │ │ + // 229 234 621 798 Lcom/google/zxing/NotFoundException; │ │ │ │ + // 247 249 621 798 Lcom/google/zxing/NotFoundException; │ │ │ │ + // 260 263 621 798 Lcom/google/zxing/NotFoundException; │ │ │ │ + // 274 277 621 798 Lcom/google/zxing/NotFoundException; │ │ │ │ + // 288 291 621 798 Lcom/google/zxing/NotFoundException; │ │ │ │ // │ │ │ │ // The error that occurred was: │ │ │ │ // │ │ │ │ // java.lang.IllegalStateException: Expression is linked from several locations: Label_0293: │ │ │ │ // at com.strobel.decompiler.ast.Error.expressionLinkedFromMultipleLocations(Error.java:27) │ │ │ │ // at com.strobel.decompiler.ast.AstOptimizer.mergeDisparateObjectInitializations(AstOptimizer.java:2596) │ │ │ │ // at com.strobel.decompiler.ast.AstOptimizer.optimize(AstOptimizer.java:235) │ │ │ │ @@ -720,19 +720,18 @@ │ │ │ │ │ │ │ │ private boolean isValid(final ResultPoint resultPoint) { │ │ │ │ return this.isValid(MathUtils.round(resultPoint.getX()), MathUtils.round(resultPoint.getY())); │ │ │ │ } │ │ │ │ │ │ │ │ private boolean isWhiteOrBlackRectangle(final Detector$Point detector$Point, final Detector$Point detector$Point2, final Detector$Point detector$Point3, final Detector$Point detector$Point4) { │ │ │ │ boolean b = false; │ │ │ │ - final int n = 3; │ │ │ │ - final Detector$Point detector$Point5 = new Detector$Point(detector$Point.getX() - n, detector$Point.getY() + n); │ │ │ │ - final Detector$Point detector$Point6 = new Detector$Point(detector$Point2.getX() - n, detector$Point2.getY() - n); │ │ │ │ - final Detector$Point detector$Point7 = new Detector$Point(detector$Point3.getX() + n, detector$Point3.getY() - n); │ │ │ │ - final Detector$Point detector$Point8 = new Detector$Point(detector$Point4.getX() + n, detector$Point4.getY() + n); │ │ │ │ + final Detector$Point detector$Point5 = new Detector$Point(detector$Point.getX() - 3, detector$Point.getY() + 3); │ │ │ │ + final Detector$Point detector$Point6 = new Detector$Point(detector$Point2.getX() - 3, detector$Point2.getY() - 3); │ │ │ │ + final Detector$Point detector$Point7 = new Detector$Point(detector$Point3.getX() + 3, detector$Point3.getY() - 3); │ │ │ │ + final Detector$Point detector$Point8 = new Detector$Point(detector$Point4.getX() + 3, detector$Point4.getY() + 3); │ │ │ │ final int color = this.getColor(detector$Point8, detector$Point5); │ │ │ │ if (color != 0 && this.getColor(detector$Point5, detector$Point6) == color && this.getColor(detector$Point6, detector$Point7) == color && this.getColor(detector$Point7, detector$Point8) == color) { │ │ │ │ b = true; │ │ │ │ } │ │ │ │ return b; │ │ │ │ } │ │ ├── com/google/zxing/aztec/encoder/Encoder.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -141,15 +141,15 @@ │ │ │ │ if (n5 != Encoder.WORD_SIZE[abs]) { │ │ │ │ n5 = Encoder.WORD_SIZE[abs]; │ │ │ │ bitArray = stuffBits(encode, n5); │ │ │ │ } │ │ │ │ final int n7 = n6 - n6 % n5; │ │ │ │ final int size; │ │ │ │ final int n8; │ │ │ │ - if ((!compact || (size = bitArray.getSize()) <= n5 * 64) && (n8 = bitArray.getSize() + n3) <= n7) { │ │ │ │ + if ((compact || (size = bitArray.getSize()) <= n5 << 6) && (n8 = bitArray.getSize() + n3) <= n7) { │ │ │ │ break Label_0471; │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ throw new IllegalArgumentException("Data too large for an Aztec code"); │ │ │ │ } │ │ │ │ compact = (n2 < 0); │ │ │ │ @@ -168,89 +168,92 @@ │ │ │ │ n5 = Encoder.WORD_SIZE[abs]; │ │ │ │ final int n10 = n6 - n6 % n5; │ │ │ │ bitArray = stuffBits(encode, n5); │ │ │ │ if (bitArray.getSize() + n3 > n10) { │ │ │ │ throw new IllegalArgumentException("Data to large for user specified layer"); │ │ │ │ } │ │ │ │ final int size2; │ │ │ │ - if (compact && (size2 = bitArray.getSize()) > n5 * 64) { │ │ │ │ + if (compact && (size2 = bitArray.getSize()) > n5 << 6) { │ │ │ │ throw new IllegalArgumentException("Data to large for user specified layer"); │ │ │ │ } │ │ │ │ } │ │ │ │ final BitArray generateCheckWords = generateCheckWords(bitArray, n6, n5); │ │ │ │ final int codeWords = bitArray.getSize() / n5; │ │ │ │ final BitArray generateModeMessage = generateModeMessage(compact, abs, codeWords); │ │ │ │ int n11; │ │ │ │ if (compact) { │ │ │ │ - n11 = abs * 4 + 11; │ │ │ │ + n11 = 11; │ │ │ │ } │ │ │ │ else { │ │ │ │ - n11 = abs * 4 + 14; │ │ │ │ + n11 = 14; │ │ │ │ } │ │ │ │ - final int[] array2 = new int[n11]; │ │ │ │ + final int n12 = n11 + (abs << 2); │ │ │ │ + final int[] array2 = new int[n12]; │ │ │ │ int size3; │ │ │ │ if (compact) { │ │ │ │ - size3 = n11; │ │ │ │ + size3 = n12; │ │ │ │ for (int j = 0; j < array2.length; ++j) { │ │ │ │ array2[j] = j; │ │ │ │ } │ │ │ │ } │ │ │ │ else { │ │ │ │ - size3 = n11 + 1 + (n11 / 2 - 1) / 15 * 2; │ │ │ │ - final int n12 = n11 / 2; │ │ │ │ - final int n13 = size3 / 2; │ │ │ │ - for (int k = 0; k < n12; ++k) { │ │ │ │ - final int n14 = k + k / 15; │ │ │ │ - array2[n12 - k - 1] = n13 - n14 - 1; │ │ │ │ - array2[n12 + k] = n13 + n14 + 1; │ │ │ │ + size3 = n12 + 1 + (n12 / 2 - 1) / 15 * 2; │ │ │ │ + final int n13 = n12 / 2; │ │ │ │ + final int n14 = size3 / 2; │ │ │ │ + for (int k = 0; k < n13; ++k) { │ │ │ │ + final int n15 = k + k / 15; │ │ │ │ + array2[n13 - k - 1] = n14 - n15 - 1; │ │ │ │ + array2[n13 + k] = n14 + n15 + 1; │ │ │ │ } │ │ │ │ } │ │ │ │ final BitMatrix matrix = new BitMatrix(size3); │ │ │ │ int l = 0; │ │ │ │ - int n15 = 0; │ │ │ │ + int n16 = 0; │ │ │ │ while (l < abs) { │ │ │ │ - int n16; │ │ │ │ + final int n17 = abs - l << 2; │ │ │ │ + int n18; │ │ │ │ if (compact) { │ │ │ │ - n16 = (abs - l) * 4 + 9; │ │ │ │ + n18 = 9; │ │ │ │ } │ │ │ │ else { │ │ │ │ - n16 = (abs - l) * 4 + 12; │ │ │ │ + n18 = 12; │ │ │ │ } │ │ │ │ - for (int n17 = 0; n17 < n16; ++n17) { │ │ │ │ - final int n18 = n17 * 2; │ │ │ │ - for (int n19 = 0; n19 < 2; ++n19) { │ │ │ │ - if (generateCheckWords.get(n15 + n18 + n19)) { │ │ │ │ - matrix.set(array2[l * 2 + n19], array2[l * 2 + n17]); │ │ │ │ + final int n19 = n17 + n18; │ │ │ │ + for (int n20 = 0; n20 < n19; ++n20) { │ │ │ │ + final int n21 = n20 << 1; │ │ │ │ + for (int n22 = 0; n22 < 2; ++n22) { │ │ │ │ + if (generateCheckWords.get(n16 + n21 + n22)) { │ │ │ │ + matrix.set(array2[(l << 1) + n22], array2[(l << 1) + n20]); │ │ │ │ } │ │ │ │ - if (generateCheckWords.get(n16 * 2 + n15 + n18 + n19)) { │ │ │ │ - matrix.set(array2[l * 2 + n17], array2[n11 - 1 - l * 2 - n19]); │ │ │ │ + if (generateCheckWords.get((n19 << 1) + n16 + n21 + n22)) { │ │ │ │ + matrix.set(array2[(l << 1) + n20], array2[n12 - 1 - (l << 1) - n22]); │ │ │ │ } │ │ │ │ - if (generateCheckWords.get(n16 * 4 + n15 + n18 + n19)) { │ │ │ │ - matrix.set(array2[n11 - 1 - l * 2 - n19], array2[n11 - 1 - l * 2 - n17]); │ │ │ │ + if (generateCheckWords.get((n19 << 2) + n16 + n21 + n22)) { │ │ │ │ + matrix.set(array2[n12 - 1 - (l << 1) - n22], array2[n12 - 1 - (l << 1) - n20]); │ │ │ │ } │ │ │ │ - if (generateCheckWords.get(n16 * 6 + n15 + n18 + n19)) { │ │ │ │ - matrix.set(array2[n11 - 1 - l * 2 - n17], array2[l * 2 + n19]); │ │ │ │ + if (generateCheckWords.get(n19 * 6 + n16 + n21 + n22)) { │ │ │ │ + matrix.set(array2[n12 - 1 - (l << 1) - n20], array2[(l << 1) + n22]); │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ - n15 += n16 * 8; │ │ │ │ + n16 += n19 << 3; │ │ │ │ ++l; │ │ │ │ } │ │ │ │ drawModeMessage(matrix, compact, size3, generateModeMessage); │ │ │ │ if (compact) { │ │ │ │ drawBullsEye(matrix, size3 / 2, 5); │ │ │ │ } │ │ │ │ else { │ │ │ │ drawBullsEye(matrix, size3 / 2, 7); │ │ │ │ - for (int n20 = 0, n21 = 0; n20 < n11 / 2 - 1; n20 += 15, n21 += 16) { │ │ │ │ - for (int n22 = size3 / 2 & 0x1; n22 < size3; n22 += 2) { │ │ │ │ - matrix.set(size3 / 2 - n21, n22); │ │ │ │ - matrix.set(size3 / 2 + n21, n22); │ │ │ │ - matrix.set(n22, size3 / 2 - n21); │ │ │ │ - matrix.set(n22, size3 / 2 + n21); │ │ │ │ + for (int n23 = 0, n24 = 0; n23 < n12 / 2 - 1; n23 += 15, n24 += 16) { │ │ │ │ + for (int n25 = size3 / 2 & 0x1; n25 < size3; n25 += 2) { │ │ │ │ + matrix.set(size3 / 2 - n24, n25); │ │ │ │ + matrix.set(size3 / 2 + n24, n25); │ │ │ │ + matrix.set(n25, size3 / 2 - n24); │ │ │ │ + matrix.set(n25, size3 / 2 + n24); │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ final AztecCode aztecCode = new AztecCode(); │ │ │ │ aztecCode.setCompact(compact); │ │ │ │ aztecCode.setSize(size3); │ │ │ │ aztecCode.setLayers(abs); │ │ │ │ @@ -354,10 +357,10 @@ │ │ │ │ int n2; │ │ │ │ if (b) { │ │ │ │ n2 = 88; │ │ │ │ } │ │ │ │ else { │ │ │ │ n2 = 112; │ │ │ │ } │ │ │ │ - return (n2 + n * 16) * n; │ │ │ │ + return (n2 + (n << 4)) * n; │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/aztec/encoder/HighLevelEncoder.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -73,16 +73,15 @@ │ │ │ │ array10[0] = 327711; │ │ │ │ array10[1] = 656380; │ │ │ │ array10[2] = 656382; │ │ │ │ array10[3] = 656381; │ │ │ │ array10[4] = 0; │ │ │ │ latch_TABLE[n] = array9; │ │ │ │ LATCH_TABLE = latch_TABLE; │ │ │ │ - CHAR_MAP = (int[][])Array.newInstance(Integer.TYPE, n2, 256); │ │ │ │ - HighLevelEncoder.CHAR_MAP[0][32] = n4; │ │ │ │ + (CHAR_MAP = (int[][])Array.newInstance(Integer.TYPE, n2, 256))[0][32] = n4; │ │ │ │ for (int i = 65; i <= 90; ++i) { │ │ │ │ HighLevelEncoder.CHAR_MAP[0][i] = i - 65 + 2; │ │ │ │ } │ │ │ │ HighLevelEncoder.CHAR_MAP[n4][32] = n4; │ │ │ │ for (int j = 97; j <= 122; ++j) { │ │ │ │ HighLevelEncoder.CHAR_MAP[n4][j] = j - 97 + 2; │ │ │ │ } │ │ │ │ @@ -118,15 +117,15 @@ │ │ │ │ array12[21] = 92; │ │ │ │ array12[22] = 94; │ │ │ │ array12[23] = 95; │ │ │ │ array12[24] = 96; │ │ │ │ array12[25] = 124; │ │ │ │ array12[26] = 126; │ │ │ │ array12[27] = 127; │ │ │ │ - for (int l = 0; l < array11.length; ++l) { │ │ │ │ + for (int l = 0; l < 28; ++l) { │ │ │ │ HighLevelEncoder.CHAR_MAP[3][array11[l]] = l; │ │ │ │ } │ │ │ │ final int[] array14; │ │ │ │ final int[] array13 = array14 = new int[31]; │ │ │ │ array14[0] = 0; │ │ │ │ array14[1] = 13; │ │ │ │ array14[3] = (array14[2] = 0); │ │ │ │ @@ -152,23 +151,22 @@ │ │ │ │ array14[24] = 61; │ │ │ │ array14[25] = 62; │ │ │ │ array14[26] = 63; │ │ │ │ array14[27] = 91; │ │ │ │ array14[28] = 93; │ │ │ │ array14[29] = 123; │ │ │ │ array14[30] = 125; │ │ │ │ - for (int n5 = 0; n5 < array13.length; ++n5) { │ │ │ │ + for (int n5 = 0; n5 < 31; ++n5) { │ │ │ │ if (array13[n5] > 0) { │ │ │ │ HighLevelEncoder.CHAR_MAP[n][array13[n5]] = n5; │ │ │ │ } │ │ │ │ } │ │ │ │ - SHIFT_TABLE = (int[][])Array.newInstance(Integer.TYPE, 6, 6); │ │ │ │ - final int[][] shift_TABLE = HighLevelEncoder.SHIFT_TABLE; │ │ │ │ - for (int length = shift_TABLE.length, n6 = 0; n6 < length; ++n6) { │ │ │ │ - Arrays.fill(shift_TABLE[n6], -1); │ │ │ │ + final int[][] array15 = SHIFT_TABLE = (int[][])Array.newInstance(Integer.TYPE, 6, 6); │ │ │ │ + for (int length = array15.length, n6 = 0; n6 < length; ++n6) { │ │ │ │ + Arrays.fill(array15[n6], -1); │ │ │ │ } │ │ │ │ HighLevelEncoder.SHIFT_TABLE[0][n] = 0; │ │ │ │ HighLevelEncoder.SHIFT_TABLE[n4][n] = 0; │ │ │ │ HighLevelEncoder.SHIFT_TABLE[n4][0] = 28; │ │ │ │ HighLevelEncoder.SHIFT_TABLE[3][n] = 0; │ │ │ │ HighLevelEncoder.SHIFT_TABLE[n3][n] = 0; │ │ │ │ HighLevelEncoder.SHIFT_TABLE[n3][0] = 15; │ │ ├── com/google/zxing/aztec/encoder/State.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -326,57 +326,59 @@ │ │ │ │ 225: istore 9 │ │ │ │ 227: goto 132 │ │ │ │ │ │ │ │ com.google.zxing.aztec.encoder.State endBinaryShift(int); │ │ │ │ descriptor: (I)Lcom/google/zxing/aztec/encoder/State; │ │ │ │ flags: │ │ │ │ Code: │ │ │ │ - stack=300, locals=7, args_size=2 │ │ │ │ + stack=300, locals=8, args_size=2 │ │ │ │ 0: aload_0 │ │ │ │ 1: getfield #32 // Field binaryShiftByteCount:I │ │ │ │ 4: istore_2 │ │ │ │ 5: iload_2 │ │ │ │ 6: ifne 11 │ │ │ │ 9: aload_0 │ │ │ │ 10: areturn │ │ │ │ 11: aload_0 │ │ │ │ 12: getfield #28 // Field token:Lcom/google/zxing/aztec/encoder/Token; │ │ │ │ 15: astore_3 │ │ │ │ 16: aload_0 │ │ │ │ 17: getfield #32 // Field binaryShiftByteCount:I │ │ │ │ - 20: istore_2 │ │ │ │ - 21: iload_1 │ │ │ │ - 22: iload_2 │ │ │ │ - 23: isub │ │ │ │ - 24: istore_2 │ │ │ │ - 25: aload_0 │ │ │ │ - 26: getfield #32 // Field binaryShiftByteCount:I │ │ │ │ - 29: istore 4 │ │ │ │ - 31: aload_3 │ │ │ │ - 32: iload_2 │ │ │ │ - 33: iload 4 │ │ │ │ - 35: invokevirtual #60 // Method com/google/zxing/aztec/encoder/Token.addBinaryShift:(II)Lcom/google/zxing/aztec/encoder/Token; │ │ │ │ - 38: astore_3 │ │ │ │ - 39: new #2 // class com/google/zxing/aztec/encoder/State │ │ │ │ - 42: astore 5 │ │ │ │ - 44: aload_0 │ │ │ │ - 45: getfield #30 // Field mode:I │ │ │ │ - 48: istore 4 │ │ │ │ - 50: aload_0 │ │ │ │ - 51: getfield #34 // Field bitCount:I │ │ │ │ - 54: istore 6 │ │ │ │ - 56: aload 5 │ │ │ │ - 58: aload_3 │ │ │ │ - 59: iload 4 │ │ │ │ - 61: iconst_0 │ │ │ │ - 62: iload 6 │ │ │ │ - 64: invokespecial #21 // Method "":(Lcom/google/zxing/aztec/encoder/Token;III)V │ │ │ │ - 67: aload 5 │ │ │ │ - 69: astore_0 │ │ │ │ - 70: goto 9 │ │ │ │ + 20: istore 4 │ │ │ │ + 22: iload_1 │ │ │ │ + 23: iload 4 │ │ │ │ + 25: isub │ │ │ │ + 26: istore 4 │ │ │ │ + 28: aload_0 │ │ │ │ + 29: getfield #32 // Field binaryShiftByteCount:I │ │ │ │ + 32: istore 5 │ │ │ │ + 34: aload_3 │ │ │ │ + 35: iload 4 │ │ │ │ + 37: iload 5 │ │ │ │ + 39: invokevirtual #60 // Method com/google/zxing/aztec/encoder/Token.addBinaryShift:(II)Lcom/google/zxing/aztec/encoder/Token; │ │ │ │ + 42: astore 6 │ │ │ │ + 44: new #2 // class com/google/zxing/aztec/encoder/State │ │ │ │ + 47: astore_3 │ │ │ │ + 48: aload_0 │ │ │ │ + 49: getfield #30 // Field mode:I │ │ │ │ + 52: istore 4 │ │ │ │ + 54: iconst_0 │ │ │ │ + 55: istore 5 │ │ │ │ + 57: aload_0 │ │ │ │ + 58: getfield #34 // Field bitCount:I │ │ │ │ + 61: istore 7 │ │ │ │ + 63: aload_3 │ │ │ │ + 64: aload 6 │ │ │ │ + 66: iload 4 │ │ │ │ + 68: iconst_0 │ │ │ │ + 69: iload 7 │ │ │ │ + 71: invokespecial #21 // Method "":(Lcom/google/zxing/aztec/encoder/Token;III)V │ │ │ │ + 74: aload_3 │ │ │ │ + 75: astore_0 │ │ │ │ + 76: goto 9 │ │ │ │ │ │ │ │ int getBinaryShiftByteCount(); │ │ │ │ descriptor: ()I │ │ │ │ flags: │ │ │ │ Code: │ │ │ │ stack=300, locals=1, args_size=1 │ │ │ │ 0: aload_0 │ │ │ │ @@ -622,15 +624,15 @@ │ │ │ │ 101: istore 7 │ │ │ │ 103: goto 27 │ │ │ │ │ │ │ │ com.google.zxing.common.BitArray toBitArray(byte[]); │ │ │ │ descriptor: ([B)Lcom/google/zxing/common/BitArray; │ │ │ │ flags: │ │ │ │ Code: │ │ │ │ - stack=300, locals=9, args_size=2 │ │ │ │ + stack=300, locals=8, args_size=2 │ │ │ │ 0: new #67 // class java/util/LinkedList │ │ │ │ 3: astore_2 │ │ │ │ 4: aload_2 │ │ │ │ 5: invokespecial #68 // Method java/util/LinkedList."":()V │ │ │ │ 8: aload_1 │ │ │ │ 9: arraylength │ │ │ │ 10: istore_3 │ │ │ │ @@ -652,31 +654,31 @@ │ │ │ │ 45: goto 25 │ │ │ │ 48: new #80 // class com/google/zxing/common/BitArray │ │ │ │ 51: astore 6 │ │ │ │ 53: aload 6 │ │ │ │ 55: invokespecial #81 // Method com/google/zxing/common/BitArray."":()V │ │ │ │ 58: aload_2 │ │ │ │ 59: invokeinterface #85, 1 // InterfaceMethod java/util/Deque.iterator:()Ljava/util/Iterator; │ │ │ │ - 64: astore 4 │ │ │ │ - 66: aload 4 │ │ │ │ + 64: astore 7 │ │ │ │ + 66: aload 7 │ │ │ │ 68: invokeinterface #91, 1 // InterfaceMethod java/util/Iterator.hasNext:()Z │ │ │ │ - 73: istore 7 │ │ │ │ - 75: iload 7 │ │ │ │ - 77: ifeq 103 │ │ │ │ - 80: aload 4 │ │ │ │ - 82: invokeinterface #95, 1 // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object; │ │ │ │ - 87: checkcast #14 // class com/google/zxing/aztec/encoder/Token │ │ │ │ - 90: astore 8 │ │ │ │ - 92: aload 8 │ │ │ │ - 94: aload 6 │ │ │ │ - 96: aload_1 │ │ │ │ - 97: invokevirtual #99 // Method com/google/zxing/aztec/encoder/Token.appendTo:(Lcom/google/zxing/common/BitArray;[B)V │ │ │ │ - 100: goto 66 │ │ │ │ - 103: aload 6 │ │ │ │ - 105: areturn │ │ │ │ + 73: istore_3 │ │ │ │ + 74: iload_3 │ │ │ │ + 75: ifeq 101 │ │ │ │ + 78: aload 7 │ │ │ │ + 80: invokeinterface #95, 1 // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object; │ │ │ │ + 85: checkcast #14 // class com/google/zxing/aztec/encoder/Token │ │ │ │ + 88: astore 4 │ │ │ │ + 90: aload 4 │ │ │ │ + 92: aload 6 │ │ │ │ + 94: aload_1 │ │ │ │ + 95: invokevirtual #99 // Method com/google/zxing/aztec/encoder/Token.appendTo:(Lcom/google/zxing/common/BitArray;[B)V │ │ │ │ + 98: goto 66 │ │ │ │ + 101: aload 6 │ │ │ │ + 103: areturn │ │ │ │ │ │ │ │ public java.lang.String toString(); │ │ │ │ descriptor: ()Ljava/lang/String; │ │ │ │ flags: ACC_PUBLIC │ │ │ │ Code: │ │ │ │ stack=300, locals=4, args_size=1 │ │ │ │ 0: iconst_3 │ │ ├── com/google/zxing/client/result/ResultParser.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -180,52 +180,52 @@ │ │ │ │ #175 = NameAndType #173:#174 // subSequence:(II)Ljava/lang/CharSequence; │ │ │ │ #176 = InterfaceMethodref #137.#175 // java/lang/CharSequence.subSequence:(II)Ljava/lang/CharSequence; │ │ │ │ #177 = Methodref #150.#161 // java/lang/String.length:()I │ │ │ │ #178 = Utf8 indexOf │ │ │ │ #179 = Utf8 (Ljava/lang/String;I)I │ │ │ │ #180 = NameAndType #178:#179 // indexOf:(Ljava/lang/String;I)I │ │ │ │ #181 = Methodref #150.#180 // java/lang/String.indexOf:(Ljava/lang/String;I)I │ │ │ │ - #182 = Utf8 java/util/List │ │ │ │ - #183 = Class #182 // java/util/List │ │ │ │ - #184 = Utf8 isEmpty │ │ │ │ - #185 = NameAndType #184:#170 // isEmpty:()Z │ │ │ │ - #186 = InterfaceMethodref #183.#185 // java/util/List.isEmpty:()Z │ │ │ │ - #187 = Utf8 (II)I │ │ │ │ - #188 = NameAndType #178:#187 // indexOf:(II)I │ │ │ │ - #189 = Methodref #150.#188 // java/lang/String.indexOf:(II)I │ │ │ │ - #190 = Utf8 countPrecedingBackslashes │ │ │ │ - #191 = Utf8 (Ljava/lang/CharSequence;I)I │ │ │ │ - #192 = NameAndType #190:#191 // countPrecedingBackslashes:(Ljava/lang/CharSequence;I)I │ │ │ │ - #193 = Methodref #2.#192 // com/google/zxing/client/result/ResultParser.countPrecedingBackslashes:(Ljava/lang/CharSequence;I)I │ │ │ │ - #194 = Utf8 java/util/ArrayList │ │ │ │ - #195 = Class #194 // java/util/ArrayList │ │ │ │ - #196 = Utf8 (I)V │ │ │ │ - #197 = NameAndType #19:#196 // "":(I)V │ │ │ │ - #198 = Methodref #195.#197 // java/util/ArrayList."":(I)V │ │ │ │ - #199 = Utf8 (II)Ljava/lang/String; │ │ │ │ - #200 = NameAndType #155:#199 // substring:(II)Ljava/lang/String; │ │ │ │ - #201 = Methodref #150.#200 // java/lang/String.substring:(II)Ljava/lang/String; │ │ │ │ - #202 = Utf8 unescapeBackslash │ │ │ │ - #203 = NameAndType #202:#125 // unescapeBackslash:(Ljava/lang/String;)Ljava/lang/String; │ │ │ │ - #204 = Methodref #2.#203 // com/google/zxing/client/result/ResultParser.unescapeBackslash:(Ljava/lang/String;)Ljava/lang/String; │ │ │ │ - #205 = Utf8 trim │ │ │ │ - #206 = NameAndType #205:#146 // trim:()Ljava/lang/String; │ │ │ │ - #207 = Methodref #150.#206 // java/lang/String.trim:()Ljava/lang/String; │ │ │ │ - #208 = Methodref #150.#185 // java/lang/String.isEmpty:()Z │ │ │ │ - #209 = Utf8 add │ │ │ │ - #210 = Utf8 (Ljava/lang/Object;)Z │ │ │ │ - #211 = NameAndType #209:#210 // add:(Ljava/lang/Object;)Z │ │ │ │ - #212 = InterfaceMethodref #183.#211 // java/util/List.add:(Ljava/lang/Object;)Z │ │ │ │ + #182 = Utf8 (II)I │ │ │ │ + #183 = NameAndType #178:#182 // indexOf:(II)I │ │ │ │ + #184 = Methodref #150.#183 // java/lang/String.indexOf:(II)I │ │ │ │ + #185 = Utf8 countPrecedingBackslashes │ │ │ │ + #186 = Utf8 (Ljava/lang/CharSequence;I)I │ │ │ │ + #187 = NameAndType #185:#186 // countPrecedingBackslashes:(Ljava/lang/CharSequence;I)I │ │ │ │ + #188 = Methodref #2.#187 // com/google/zxing/client/result/ResultParser.countPrecedingBackslashes:(Ljava/lang/CharSequence;I)I │ │ │ │ + #189 = Utf8 java/util/ArrayList │ │ │ │ + #190 = Class #189 // java/util/ArrayList │ │ │ │ + #191 = Utf8 (I)V │ │ │ │ + #192 = NameAndType #19:#191 // "":(I)V │ │ │ │ + #193 = Methodref #190.#192 // java/util/ArrayList."":(I)V │ │ │ │ + #194 = Utf8 (II)Ljava/lang/String; │ │ │ │ + #195 = NameAndType #155:#194 // substring:(II)Ljava/lang/String; │ │ │ │ + #196 = Methodref #150.#195 // java/lang/String.substring:(II)Ljava/lang/String; │ │ │ │ + #197 = Utf8 unescapeBackslash │ │ │ │ + #198 = NameAndType #197:#125 // unescapeBackslash:(Ljava/lang/String;)Ljava/lang/String; │ │ │ │ + #199 = Methodref #2.#198 // com/google/zxing/client/result/ResultParser.unescapeBackslash:(Ljava/lang/String;)Ljava/lang/String; │ │ │ │ + #200 = Utf8 trim │ │ │ │ + #201 = NameAndType #200:#146 // trim:()Ljava/lang/String; │ │ │ │ + #202 = Methodref #150.#201 // java/lang/String.trim:()Ljava/lang/String; │ │ │ │ + #203 = Utf8 isEmpty │ │ │ │ + #204 = NameAndType #203:#170 // isEmpty:()Z │ │ │ │ + #205 = Methodref #150.#204 // java/lang/String.isEmpty:()Z │ │ │ │ + #206 = Utf8 java/util/List │ │ │ │ + #207 = Class #206 // java/util/List │ │ │ │ + #208 = Utf8 add │ │ │ │ + #209 = Utf8 (Ljava/lang/Object;)Z │ │ │ │ + #210 = NameAndType #208:#209 // add:(Ljava/lang/Object;)Z │ │ │ │ + #211 = InterfaceMethodref #207.#210 // java/util/List.add:(Ljava/lang/Object;)Z │ │ │ │ + #212 = InterfaceMethodref #207.#204 // java/util/List.isEmpty:()Z │ │ │ │ #213 = Utf8 size │ │ │ │ #214 = NameAndType #213:#160 // size:()I │ │ │ │ - #215 = InterfaceMethodref #183.#214 // java/util/List.size:()I │ │ │ │ + #215 = InterfaceMethodref #207.#214 // java/util/List.size:()I │ │ │ │ #216 = Utf8 toArray │ │ │ │ #217 = Utf8 ([Ljava/lang/Object;)[Ljava/lang/Object; │ │ │ │ #218 = NameAndType #216:#217 // toArray:([Ljava/lang/Object;)[Ljava/lang/Object; │ │ │ │ - #219 = InterfaceMethodref #183.#218 // java/util/List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object; │ │ │ │ + #219 = InterfaceMethodref #207.#218 // java/util/List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object; │ │ │ │ #220 = Utf8 [Ljava/lang/String; │ │ │ │ #221 = Class #220 // "[Ljava/lang/String;" │ │ │ │ #222 = Utf8 matchPrefixedField │ │ │ │ #223 = Utf8 (Ljava/lang/String;Ljava/lang/String;CZ)[Ljava/lang/String; │ │ │ │ #224 = NameAndType #222:#223 // matchPrefixedField:(Ljava/lang/String;Ljava/lang/String;CZ)[Ljava/lang/String; │ │ │ │ #225 = Methodref #2.#224 // com/google/zxing/client/result/ResultParser.matchPrefixedField:(Ljava/lang/String;Ljava/lang/String;CZ)[Ljava/lang/String; │ │ │ │ #226 = Utf8 java/lang/StringBuilder │ │ │ │ @@ -245,15 +245,15 @@ │ │ │ │ #240 = Float 9.8E-44f │ │ │ │ #241 = Float 8.8E-44f │ │ │ │ #242 = Utf8 (I)I │ │ │ │ #243 = NameAndType #178:#242 // indexOf:(I)I │ │ │ │ #244 = Methodref #150.#243 // java/lang/String.indexOf:(I)I │ │ │ │ #245 = Utf8 java/util/HashMap │ │ │ │ #246 = Class #245 // java/util/HashMap │ │ │ │ - #247 = Methodref #246.#197 // java/util/HashMap."":(I)V │ │ │ │ + #247 = Methodref #246.#192 // java/util/HashMap."":(I)V │ │ │ │ #248 = Utf8 (Ljava/lang/CharSequence;)[Ljava/lang/String; │ │ │ │ #249 = NameAndType #120:#248 // split:(Ljava/lang/CharSequence;)[Ljava/lang/String; │ │ │ │ #250 = Methodref #104.#249 // java/util/regex/Pattern.split:(Ljava/lang/CharSequence;)[Ljava/lang/String; │ │ │ │ #251 = Utf8 appendKeyValue │ │ │ │ #252 = Utf8 (Ljava/lang/CharSequence;Ljava/util/Map;)V │ │ │ │ #253 = NameAndType #251:#252 // appendKeyValue:(Ljava/lang/CharSequence;Ljava/util/Map;)V │ │ │ │ #254 = Methodref #2.#253 // com/google/zxing/client/result/ResultParser.appendKeyValue:(Ljava/lang/CharSequence;Ljava/util/Map;)V │ │ │ │ @@ -262,15 +262,15 @@ │ │ │ │ #257 = NameAndType #255:#256 // parse:(Lcom/google/zxing/Result;)Lcom/google/zxing/client/result/ParsedResult; │ │ │ │ #258 = Methodref #2.#257 // com/google/zxing/client/result/ResultParser.parse:(Lcom/google/zxing/Result;)Lcom/google/zxing/client/result/ParsedResult; │ │ │ │ #259 = Utf8 com/google/zxing/client/result/TextParsedResult │ │ │ │ #260 = Class #259 // com/google/zxing/client/result/TextParsedResult │ │ │ │ #261 = Utf8 (Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ #262 = NameAndType #19:#261 // "":(Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ #263 = Methodref #260.#262 // com/google/zxing/client/result/TextParsedResult."":(Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ - #264 = Methodref #227.#197 // java/lang/StringBuilder."":(I)V │ │ │ │ + #264 = Methodref #227.#192 // java/lang/StringBuilder."":(I)V │ │ │ │ #265 = Utf8 toCharArray │ │ │ │ #266 = Utf8 ()[C │ │ │ │ #267 = NameAndType #265:#266 // toCharArray:()[C │ │ │ │ #268 = Methodref #150.#267 // java/lang/String.toCharArray:()[C │ │ │ │ #269 = Utf8 ([CII)Ljava/lang/StringBuilder; │ │ │ │ #270 = NameAndType #228:#269 // append:([CII)Ljava/lang/StringBuilder; │ │ │ │ #271 = Methodref #227.#270 // java/lang/StringBuilder.append:([CII)Ljava/lang/StringBuilder; │ │ │ │ @@ -719,124 +719,124 @@ │ │ │ │ 3: iconst_0 │ │ │ │ 4: istore 5 │ │ │ │ 6: aload_1 │ │ │ │ 7: invokevirtual #177 // Method java/lang/String.length:()I │ │ │ │ 10: istore 6 │ │ │ │ 12: iload 5 │ │ │ │ 14: iload 6 │ │ │ │ - 16: if_icmpge 33 │ │ │ │ + 16: if_icmpge 190 │ │ │ │ 19: aload_1 │ │ │ │ 20: aload_0 │ │ │ │ 21: iload 5 │ │ │ │ 23: invokevirtual #181 // Method java/lang/String.indexOf:(Ljava/lang/String;I)I │ │ │ │ 26: istore 5 │ │ │ │ 28: iload 5 │ │ │ │ - 30: ifge 61 │ │ │ │ - 33: aload 4 │ │ │ │ - 35: ifnull 52 │ │ │ │ - 38: aload 4 │ │ │ │ - 40: invokeinterface #186, 1 // InterfaceMethod java/util/List.isEmpty:()Z │ │ │ │ - 45: istore 7 │ │ │ │ - 47: iload 7 │ │ │ │ - 49: ifeq 218 │ │ │ │ - 52: iconst_0 │ │ │ │ - 53: istore 7 │ │ │ │ - 55: aconst_null │ │ │ │ - 56: astore 8 │ │ │ │ - 58: aload 8 │ │ │ │ - 60: areturn │ │ │ │ - 61: aload_0 │ │ │ │ - 62: invokevirtual #177 // Method java/lang/String.length:()I │ │ │ │ - 65: istore 7 │ │ │ │ + 30: iflt 190 │ │ │ │ + 33: aload_0 │ │ │ │ + 34: invokevirtual #177 // Method java/lang/String.length:()I │ │ │ │ + 37: istore 7 │ │ │ │ + 39: iload 5 │ │ │ │ + 41: iload 7 │ │ │ │ + 43: iadd │ │ │ │ + 44: istore 5 │ │ │ │ + 46: iload 5 │ │ │ │ + 48: istore 8 │ │ │ │ + 50: iconst_1 │ │ │ │ + 51: istore 9 │ │ │ │ + 53: iload 9 │ │ │ │ + 55: ifeq 12 │ │ │ │ + 58: aload_1 │ │ │ │ + 59: iload_2 │ │ │ │ + 60: iload 5 │ │ │ │ + 62: invokevirtual #184 // Method java/lang/String.indexOf:(II)I │ │ │ │ + 65: istore 5 │ │ │ │ 67: iload 5 │ │ │ │ - 69: iload 7 │ │ │ │ - 71: iadd │ │ │ │ - 72: istore 5 │ │ │ │ - 74: iload 5 │ │ │ │ - 76: istore 9 │ │ │ │ - 78: iconst_1 │ │ │ │ - 79: istore 10 │ │ │ │ - 81: iload 10 │ │ │ │ - 83: ifeq 12 │ │ │ │ - 86: aload_1 │ │ │ │ - 87: iload_2 │ │ │ │ - 88: iload 5 │ │ │ │ - 90: invokevirtual #189 // Method java/lang/String.indexOf:(II)I │ │ │ │ - 93: istore 5 │ │ │ │ - 95: iload 5 │ │ │ │ - 97: ifge 112 │ │ │ │ - 100: aload_1 │ │ │ │ - 101: invokevirtual #177 // Method java/lang/String.length:()I │ │ │ │ - 104: istore 5 │ │ │ │ - 106: iconst_0 │ │ │ │ - 107: istore 10 │ │ │ │ - 109: goto 81 │ │ │ │ - 112: aload_1 │ │ │ │ - 113: iload 5 │ │ │ │ - 115: invokestatic #193 // Method countPrecedingBackslashes:(Ljava/lang/CharSequence;I)I │ │ │ │ - 118: iconst_2 │ │ │ │ - 119: irem │ │ │ │ - 120: istore 7 │ │ │ │ - 122: iload 7 │ │ │ │ - 124: ifeq 136 │ │ │ │ - 127: iload 5 │ │ │ │ - 129: iconst_1 │ │ │ │ - 130: iadd │ │ │ │ - 131: istore 5 │ │ │ │ - 133: goto 81 │ │ │ │ - 136: aload 4 │ │ │ │ - 138: ifnonnull 156 │ │ │ │ - 141: new #195 // class java/util/ArrayList │ │ │ │ - 144: astore 4 │ │ │ │ - 146: iconst_3 │ │ │ │ - 147: istore 7 │ │ │ │ - 149: aload 4 │ │ │ │ - 151: iload 7 │ │ │ │ - 153: invokespecial #198 // Method java/util/ArrayList."":(I)V │ │ │ │ - 156: aload_1 │ │ │ │ - 157: iload 9 │ │ │ │ - 159: iload 5 │ │ │ │ - 161: invokevirtual #201 // Method java/lang/String.substring:(II)Ljava/lang/String; │ │ │ │ - 164: astore 8 │ │ │ │ - 166: aload 8 │ │ │ │ - 168: invokestatic #204 // Method unescapeBackslash:(Ljava/lang/String;)Ljava/lang/String; │ │ │ │ - 171: astore 11 │ │ │ │ - 173: iload_3 │ │ │ │ - 174: ifeq 184 │ │ │ │ - 177: aload 11 │ │ │ │ - 179: invokevirtual #207 // Method java/lang/String.trim:()Ljava/lang/String; │ │ │ │ - 182: astore 11 │ │ │ │ - 184: aload 11 │ │ │ │ - 186: invokevirtual #208 // Method java/lang/String.isEmpty:()Z │ │ │ │ - 189: istore 7 │ │ │ │ - 191: iload 7 │ │ │ │ - 193: ifne 206 │ │ │ │ - 196: aload 4 │ │ │ │ - 198: aload 11 │ │ │ │ - 200: invokeinterface #212, 2 // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z │ │ │ │ - 205: pop │ │ │ │ - 206: iload 5 │ │ │ │ - 208: iconst_1 │ │ │ │ - 209: iadd │ │ │ │ - 210: istore 5 │ │ │ │ - 212: iconst_0 │ │ │ │ - 213: istore 10 │ │ │ │ - 215: goto 81 │ │ │ │ + 69: ifge 84 │ │ │ │ + 72: aload_1 │ │ │ │ + 73: invokevirtual #177 // Method java/lang/String.length:()I │ │ │ │ + 76: istore 5 │ │ │ │ + 78: iconst_0 │ │ │ │ + 79: istore 9 │ │ │ │ + 81: goto 53 │ │ │ │ + 84: aload_1 │ │ │ │ + 85: iload 5 │ │ │ │ + 87: invokestatic #188 // Method countPrecedingBackslashes:(Ljava/lang/CharSequence;I)I │ │ │ │ + 90: iconst_2 │ │ │ │ + 91: irem │ │ │ │ + 92: istore 7 │ │ │ │ + 94: iload 7 │ │ │ │ + 96: ifeq 108 │ │ │ │ + 99: iload 5 │ │ │ │ + 101: iconst_1 │ │ │ │ + 102: iadd │ │ │ │ + 103: istore 5 │ │ │ │ + 105: goto 53 │ │ │ │ + 108: aload 4 │ │ │ │ + 110: ifnonnull 128 │ │ │ │ + 113: new #190 // class java/util/ArrayList │ │ │ │ + 116: astore 4 │ │ │ │ + 118: iconst_3 │ │ │ │ + 119: istore 7 │ │ │ │ + 121: aload 4 │ │ │ │ + 123: iload 7 │ │ │ │ + 125: invokespecial #193 // Method java/util/ArrayList."":(I)V │ │ │ │ + 128: aload_1 │ │ │ │ + 129: iload 8 │ │ │ │ + 131: iload 5 │ │ │ │ + 133: invokevirtual #196 // Method java/lang/String.substring:(II)Ljava/lang/String; │ │ │ │ + 136: astore 10 │ │ │ │ + 138: aload 10 │ │ │ │ + 140: invokestatic #199 // Method unescapeBackslash:(Ljava/lang/String;)Ljava/lang/String; │ │ │ │ + 143: astore 11 │ │ │ │ + 145: iload_3 │ │ │ │ + 146: ifeq 156 │ │ │ │ + 149: aload 11 │ │ │ │ + 151: invokevirtual #202 // Method java/lang/String.trim:()Ljava/lang/String; │ │ │ │ + 154: astore 11 │ │ │ │ + 156: aload 11 │ │ │ │ + 158: invokevirtual #205 // Method java/lang/String.isEmpty:()Z │ │ │ │ + 161: istore 7 │ │ │ │ + 163: iload 7 │ │ │ │ + 165: ifne 178 │ │ │ │ + 168: aload 4 │ │ │ │ + 170: aload 11 │ │ │ │ + 172: invokeinterface #211, 2 // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z │ │ │ │ + 177: pop │ │ │ │ + 178: iload 5 │ │ │ │ + 180: iconst_1 │ │ │ │ + 181: iadd │ │ │ │ + 182: istore 5 │ │ │ │ + 184: iconst_0 │ │ │ │ + 185: istore 9 │ │ │ │ + 187: goto 53 │ │ │ │ + 190: aload 4 │ │ │ │ + 192: ifnull 209 │ │ │ │ + 195: aload 4 │ │ │ │ + 197: invokeinterface #212, 1 // InterfaceMethod java/util/List.isEmpty:()Z │ │ │ │ + 202: istore 7 │ │ │ │ + 204: iload 7 │ │ │ │ + 206: ifeq 218 │ │ │ │ + 209: iconst_0 │ │ │ │ + 210: istore 7 │ │ │ │ + 212: aconst_null │ │ │ │ + 213: astore 10 │ │ │ │ + 215: aload 10 │ │ │ │ + 217: areturn │ │ │ │ 218: aload 4 │ │ │ │ 220: invokeinterface #215, 1 // InterfaceMethod java/util/List.size:()I │ │ │ │ 225: istore 7 │ │ │ │ 227: iload 7 │ │ │ │ 229: anewarray #150 // class java/lang/String │ │ │ │ - 232: astore 8 │ │ │ │ + 232: astore 10 │ │ │ │ 234: aload 4 │ │ │ │ - 236: aload 8 │ │ │ │ + 236: aload 10 │ │ │ │ 238: invokeinterface #219, 2 // InterfaceMethod java/util/List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object; │ │ │ │ 243: checkcast #221 // class "[Ljava/lang/String;" │ │ │ │ - 246: astore 8 │ │ │ │ - 248: goto 58 │ │ │ │ + 246: astore 10 │ │ │ │ + 248: goto 215 │ │ │ │ │ │ │ │ static java.lang.String matchSinglePrefixedField(java.lang.String, java.lang.String, char, boolean); │ │ │ │ descriptor: (Ljava/lang/String;Ljava/lang/String;CZ)Ljava/lang/String; │ │ │ │ flags: ACC_STATIC │ │ │ │ Code: │ │ │ │ stack=300, locals=6, args_size=4 │ │ │ │ 0: aload_0 │ │ ├── com/google/zxing/common/BitArray.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -20,15 +20,15 @@ │ │ │ │ │ │ │ │ BitArray(final int[] bits, final int size) { │ │ │ │ this.bits = bits; │ │ │ │ this.size = size; │ │ │ │ } │ │ │ │ │ │ │ │ private void ensureCapacity(final int n) { │ │ │ │ - if (n > this.bits.length * 32) { │ │ │ │ + if (n > this.bits.length << 5) { │ │ │ │ final int[] array = makeArray(n); │ │ │ │ System.arraycopy(this.bits, 0, array, 0, this.bits.length); │ │ │ │ this.bits = array; │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ private static int[] makeArray(final int n) { │ │ │ │ @@ -114,15 +114,15 @@ │ │ │ │ for (n3 = n / 32, i = (this.bits[n3] & ~((1 << (n & 0x1F)) - 1)); i == 0; i = this.bits[n3]) { │ │ │ │ ++n3; │ │ │ │ if (n3 == this.bits.length) { │ │ │ │ n2 = this.size; │ │ │ │ return n2; │ │ │ │ } │ │ │ │ } │ │ │ │ - n2 = n3 * 32 + Integer.numberOfTrailingZeros(i); │ │ │ │ + n2 = (n3 << 5) + Integer.numberOfTrailingZeros(i); │ │ │ │ if (n2 > this.size) { │ │ │ │ n2 = this.size; │ │ │ │ } │ │ │ │ } │ │ │ │ return n2; │ │ │ │ } │ │ │ │ │ │ │ │ @@ -137,15 +137,15 @@ │ │ │ │ for (n3 = n / 32, i = (~this.bits[n3] & ~((1 << (n & 0x1F)) - 1)); i == 0; i = ~this.bits[n3]) { │ │ │ │ ++n3; │ │ │ │ if (n3 == this.bits.length) { │ │ │ │ n2 = this.size; │ │ │ │ return n2; │ │ │ │ } │ │ │ │ } │ │ │ │ - n2 = n3 * 32 + Integer.numberOfTrailingZeros(i); │ │ │ │ + n2 = (n3 << 5) + Integer.numberOfTrailingZeros(i); │ │ │ │ if (n2 > this.size) { │ │ │ │ n2 = this.size; │ │ │ │ } │ │ │ │ } │ │ │ │ return n2; │ │ │ │ } │ │ │ │ │ │ │ │ @@ -158,85 +158,71 @@ │ │ │ │ } │ │ │ │ │ │ │ │ public int hashCode() { │ │ │ │ return this.size * 31 + Arrays.hashCode(this.bits); │ │ │ │ } │ │ │ │ │ │ │ │ public boolean isRange(final int n, int n2, final boolean b) { │ │ │ │ - final int n3 = 31; │ │ │ │ - int n4 = 1; │ │ │ │ - if (n2 < n) { │ │ │ │ + int n3 = 1; │ │ │ │ + if (n2 < n || n < 0 || n2 > this.size) { │ │ │ │ throw new IllegalArgumentException(); │ │ │ │ } │ │ │ │ if (n2 != n) { │ │ │ │ --n2; │ │ │ │ - final int n5 = n / 32; │ │ │ │ - for (int n6 = n2 / 32, i = n5; i <= n6; ++i) { │ │ │ │ - int n7; │ │ │ │ - if (i > n5) { │ │ │ │ - n7 = 0; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - n7 = (n & 0x1F); │ │ │ │ - } │ │ │ │ - int n8; │ │ │ │ - if (i < n6) { │ │ │ │ - n8 = n3; │ │ │ │ + final int n4 = n / 32; │ │ │ │ + for (int n5 = n2 / 32, i = n4; i <= n5; ++i) { │ │ │ │ + int n6; │ │ │ │ + if (i > n4) { │ │ │ │ + n6 = 0; │ │ │ │ } │ │ │ │ else { │ │ │ │ - n8 = (n2 & 0x1F); │ │ │ │ + n6 = (n & 0x1F); │ │ │ │ } │ │ │ │ - int n9; │ │ │ │ - if (n7 == 0 && n8 == n3) { │ │ │ │ - n9 = -1; │ │ │ │ + int n7; │ │ │ │ + if (i < n5) { │ │ │ │ + n7 = 31; │ │ │ │ } │ │ │ │ else { │ │ │ │ - n9 = 0; │ │ │ │ - for (int j = n7; j <= n8; ++j) { │ │ │ │ - n9 |= n4 << j; │ │ │ │ - } │ │ │ │ + n7 = (n2 & 0x1F); │ │ │ │ } │ │ │ │ - final int n10 = this.bits[i] & n9; │ │ │ │ + int n8 = (2 << n7) - (n3 << n6); │ │ │ │ + final int n9 = this.bits[i] & n8; │ │ │ │ if (!b) { │ │ │ │ - n9 = 0; │ │ │ │ + n8 = 0; │ │ │ │ } │ │ │ │ - if (n10 != n9) { │ │ │ │ - n4 = 0; │ │ │ │ + if (n9 != n8) { │ │ │ │ + n3 = 0; │ │ │ │ break; │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ - return n4 != 0; │ │ │ │ + return n3 != 0; │ │ │ │ } │ │ │ │ │ │ │ │ public void reverse() { │ │ │ │ final int[] bits = new int[this.bits.length]; │ │ │ │ final int n = (this.size - 1) / 32; │ │ │ │ final int n2 = n + 1; │ │ │ │ for (int i = 0; i < n2; ++i) { │ │ │ │ final long n3 = (long)this.bits[i]; │ │ │ │ final long n4 = (n3 >> 1 & 0x55555555L) | (0x55555555L & n3) << 1; │ │ │ │ final long n5 = (n4 >> 2 & 0x33333333L) | (0x33333333L & n4) << 2; │ │ │ │ final long n6 = (n5 >> 4 & 0xF0F0F0FL) | (0xF0F0F0FL & n5) << 4; │ │ │ │ final long n7 = (n6 >> 8 & 0xFF00FFL) | (0xFF00FFL & n6) << 8; │ │ │ │ bits[n - i] = (int)((n7 >> 16 & (char)(-1)) | ((char)(-1) & n7) << 16); │ │ │ │ } │ │ │ │ - if (this.size != n2 * 32) { │ │ │ │ - final int n8 = n2 * 32 - this.size; │ │ │ │ - int n9 = 1; │ │ │ │ - for (int j = 0; j < 31 - n8; ++j) { │ │ │ │ - n9 = (n9 << 1 | 0x1); │ │ │ │ - } │ │ │ │ - int n10 = bits[0] >> n8 & n9; │ │ │ │ - for (int k = 1; k < n2; ++k) { │ │ │ │ - final int n11 = bits[k]; │ │ │ │ - bits[k - 1] = (n10 | n11 << 32 - n8); │ │ │ │ - n10 = (n11 >> n8 & n9); │ │ │ │ + if (this.size != n2 << 5) { │ │ │ │ + final int n8 = (n2 << 5) - this.size; │ │ │ │ + int n9 = bits[0] >>> n8; │ │ │ │ + for (int j = 1; j < n2; ++j) { │ │ │ │ + final int n10 = bits[j]; │ │ │ │ + bits[j - 1] = (n9 | n10 << 32 - n8); │ │ │ │ + n9 = n10 >>> n8; │ │ │ │ } │ │ │ │ - bits[n2 - 1] = n10; │ │ │ │ + bits[n2 - 1] = n9; │ │ │ │ } │ │ │ │ this.bits = bits; │ │ │ │ } │ │ │ │ │ │ │ │ public void set(final int n) { │ │ │ │ final int[] bits = this.bits; │ │ │ │ final int n2 = n / 32; │ │ │ │ @@ -244,48 +230,38 @@ │ │ │ │ } │ │ │ │ │ │ │ │ public void setBulk(final int n, final int n2) { │ │ │ │ this.bits[n / 32] = n2; │ │ │ │ } │ │ │ │ │ │ │ │ public void setRange(final int n, int n2) { │ │ │ │ - final int n3 = 31; │ │ │ │ - if (n2 < n) { │ │ │ │ + if (n2 < n || n < 0 || n2 > this.size) { │ │ │ │ throw new IllegalArgumentException(); │ │ │ │ } │ │ │ │ if (n2 != n) { │ │ │ │ --n2; │ │ │ │ - final int n4 = n / 32; │ │ │ │ - for (int n5 = n2 / 32, i = n4; i <= n5; ++i) { │ │ │ │ - int n6; │ │ │ │ - if (i > n4) { │ │ │ │ - n6 = 0; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - n6 = (n & 0x1F); │ │ │ │ - } │ │ │ │ - int n7; │ │ │ │ - if (i < n5) { │ │ │ │ - n7 = n3; │ │ │ │ + final int n3 = n / 32; │ │ │ │ + for (int n4 = n2 / 32, i = n3; i <= n4; ++i) { │ │ │ │ + int n5; │ │ │ │ + if (i > n3) { │ │ │ │ + n5 = 0; │ │ │ │ } │ │ │ │ else { │ │ │ │ - n7 = (n2 & 0x1F); │ │ │ │ + n5 = (n & 0x1F); │ │ │ │ } │ │ │ │ - int n8; │ │ │ │ - if (n6 == 0 && n7 == n3) { │ │ │ │ - n8 = -1; │ │ │ │ + int n6; │ │ │ │ + if (i < n4) { │ │ │ │ + n6 = 31; │ │ │ │ } │ │ │ │ else { │ │ │ │ - n8 = 0; │ │ │ │ - for (int j = n6; j <= n7; ++j) { │ │ │ │ - n8 |= 1 << j; │ │ │ │ - } │ │ │ │ + n6 = (n2 & 0x1F); │ │ │ │ } │ │ │ │ + final int n7 = (2 << n6) - (1 << n5); │ │ │ │ final int[] bits = this.bits; │ │ │ │ - bits[i] |= n8; │ │ │ │ + bits[i] |= n7; │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ public void toBytes(int n, final byte[] array, final int n2, final int n3) { │ │ │ │ for (int i = 0; i < n3; ++i) { │ │ │ │ int n4 = 0; │ │ │ │ @@ -314,15 +290,15 @@ │ │ │ │ } │ │ │ │ sb.append(c); │ │ │ │ } │ │ │ │ return sb.toString(); │ │ │ │ } │ │ │ │ │ │ │ │ public void xor(final BitArray bitArray) { │ │ │ │ - if (this.bits.length != bitArray.bits.length) { │ │ │ │ + if (this.size != bitArray.size) { │ │ │ │ throw new IllegalArgumentException("Sizes don't match"); │ │ │ │ } │ │ │ │ for (int i = 0; i < this.bits.length; ++i) { │ │ │ │ final int[] bits = this.bits; │ │ │ │ bits[i] ^= bitArray.bits[i]; │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/common/BitMatrix.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -11,16 +11,15 @@ │ │ │ │ private final int width; │ │ │ │ │ │ │ │ public BitMatrix(final int n) { │ │ │ │ this(n, n); │ │ │ │ } │ │ │ │ │ │ │ │ public BitMatrix(final int width, final int height) { │ │ │ │ - final int n = 1; │ │ │ │ - if (width < n || height < n) { │ │ │ │ + if (width <= 0 || height <= 0) { │ │ │ │ throw new IllegalArgumentException("Both dimensions must be greater than 0"); │ │ │ │ } │ │ │ │ this.width = width; │ │ │ │ this.height = height; │ │ │ │ this.rowSize = (width + 31) / 32; │ │ │ │ this.bits = new int[this.rowSize * height]; │ │ │ │ } │ │ │ │ @@ -28,14 +27,32 @@ │ │ │ │ private BitMatrix(final int width, final int height, final int rowSize, final int[] bits) { │ │ │ │ this.width = width; │ │ │ │ this.height = height; │ │ │ │ this.rowSize = rowSize; │ │ │ │ this.bits = bits; │ │ │ │ } │ │ │ │ │ │ │ │ + private String buildToString(final String s, final String s2, final String s3) { │ │ │ │ + final StringBuilder sb = new StringBuilder(this.height * (this.width + 1)); │ │ │ │ + for (int i = 0; i < this.height; ++i) { │ │ │ │ + for (int j = 0; j < this.width; ++j) { │ │ │ │ + String s4; │ │ │ │ + if (this.get(j, i)) { │ │ │ │ + s4 = s; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + s4 = s2; │ │ │ │ + } │ │ │ │ + sb.append(s4); │ │ │ │ + } │ │ │ │ + sb.append(s3); │ │ │ │ + } │ │ │ │ + return sb.toString(); │ │ │ │ + } │ │ │ │ + │ │ │ │ public static BitMatrix parse(final String s, final String s2, final String s3) { │ │ │ │ final int n = -1; │ │ │ │ if (s == null) { │ │ │ │ throw new IllegalArgumentException(); │ │ │ │ } │ │ │ │ final boolean[] array = new boolean[s.length()]; │ │ │ │ int n2 = 0; │ │ │ │ @@ -125,15 +142,15 @@ │ │ │ │ for (n = this.bits.length - 1; n >= 0 && this.bits[n] == 0; --n) {} │ │ │ │ int[] array; │ │ │ │ if (n < 0) { │ │ │ │ array = null; │ │ │ │ } │ │ │ │ else { │ │ │ │ final int n2 = n / this.rowSize; │ │ │ │ - final int n3 = n % this.rowSize * 32; │ │ │ │ + final int n3 = n % this.rowSize << 5; │ │ │ │ int n4; │ │ │ │ int n5; │ │ │ │ for (n4 = this.bits[n], n5 = 31; n4 >>> n5 == 0; --n5) {} │ │ │ │ array = new int[] { n3 + n5, n2 }; │ │ │ │ } │ │ │ │ return array; │ │ │ │ } │ │ │ │ @@ -149,39 +166,37 @@ │ │ │ │ if (n3 != 0) { │ │ │ │ if (i < height) { │ │ │ │ height = i; │ │ │ │ } │ │ │ │ if (i > n2) { │ │ │ │ n2 = i; │ │ │ │ } │ │ │ │ - if (j * 32 < width) { │ │ │ │ + if (j << 5 < width) { │ │ │ │ int n4; │ │ │ │ for (n4 = 0; n3 << 31 - n4 == 0; ++n4) {} │ │ │ │ - if (j * 32 + n4 < width) { │ │ │ │ - width = j * 32 + n4; │ │ │ │ + if ((j << 5) + n4 < width) { │ │ │ │ + width = (j << 5) + n4; │ │ │ │ } │ │ │ │ } │ │ │ │ - if (j * 32 + 31 > n) { │ │ │ │ + if ((j << 5) + 31 > n) { │ │ │ │ int n5; │ │ │ │ for (n5 = 31; n3 >>> n5 == 0; --n5) {} │ │ │ │ - if (j * 32 + n5 > n) { │ │ │ │ - n = j * 32 + n5; │ │ │ │ + if ((j << 5) + n5 > n) { │ │ │ │ + n = (j << 5) + n5; │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ - final int n6 = n - width; │ │ │ │ - final int n7 = n2 - height; │ │ │ │ int[] array; │ │ │ │ - if (n6 < 0 || n7 < 0) { │ │ │ │ + if (n < width || n2 < height) { │ │ │ │ array = null; │ │ │ │ } │ │ │ │ else { │ │ │ │ - array = new int[] { width, height, n6, n7 }; │ │ │ │ + array = new int[] { width, height, n - width + 1, n2 - height + 1 }; │ │ │ │ } │ │ │ │ return array; │ │ │ │ } │ │ │ │ │ │ │ │ public int getHeight() { │ │ │ │ return this.height; │ │ │ │ } │ │ │ │ @@ -191,15 +206,15 @@ │ │ │ │ bitArray = new BitArray(this.width); │ │ │ │ } │ │ │ │ else { │ │ │ │ bitArray.clear(); │ │ │ │ } │ │ │ │ final int n2 = n * this.rowSize; │ │ │ │ for (int i = 0; i < this.rowSize; ++i) { │ │ │ │ - bitArray.setBulk(i * 32, this.bits[n2 + i]); │ │ │ │ + bitArray.setBulk(i << 5, this.bits[n2 + i]); │ │ │ │ } │ │ │ │ return bitArray; │ │ │ │ } │ │ │ │ │ │ │ │ public int getRowSize() { │ │ │ │ return this.rowSize; │ │ │ │ } │ │ │ │ @@ -209,15 +224,15 @@ │ │ │ │ for (n = 0; n < this.bits.length && this.bits[n] == 0; ++n) {} │ │ │ │ int[] array; │ │ │ │ if (n == this.bits.length) { │ │ │ │ array = null; │ │ │ │ } │ │ │ │ else { │ │ │ │ final int n2 = n / this.rowSize; │ │ │ │ - final int n3 = n % this.rowSize * 32; │ │ │ │ + final int n3 = n % this.rowSize << 5; │ │ │ │ int n4; │ │ │ │ int n5; │ │ │ │ for (n4 = this.bits[n], n5 = 0; n4 << 31 - n5 == 0; ++n5) {} │ │ │ │ array = new int[] { n3 + n5, n2 }; │ │ │ │ } │ │ │ │ return array; │ │ │ │ } │ │ │ │ @@ -248,64 +263,49 @@ │ │ │ │ public void set(final int n, final int n2) { │ │ │ │ final int n3 = this.rowSize * n2 + n / 32; │ │ │ │ final int[] bits = this.bits; │ │ │ │ bits[n3] |= 1 << (n & 0x1F); │ │ │ │ } │ │ │ │ │ │ │ │ public void setRegion(final int n, final int n2, final int n3, final int n4) { │ │ │ │ - final int n5 = 1; │ │ │ │ if (n2 < 0 || n < 0) { │ │ │ │ throw new IllegalArgumentException("Left and top must be nonnegative"); │ │ │ │ } │ │ │ │ - if (n4 < n5 || n3 < n5) { │ │ │ │ + if (n4 <= 0 || n3 <= 0) { │ │ │ │ throw new IllegalArgumentException("Height and width must be at least 1"); │ │ │ │ } │ │ │ │ - final int n6 = n + n3; │ │ │ │ - final int n7 = n2 + n4; │ │ │ │ - if (n7 > this.height || n6 > this.width) { │ │ │ │ + final int n5 = n + n3; │ │ │ │ + final int n6 = n2 + n4; │ │ │ │ + if (n6 > this.height || n5 > this.width) { │ │ │ │ throw new IllegalArgumentException("The region must fit inside the matrix"); │ │ │ │ } │ │ │ │ - for (int i = n2; i < n7; ++i) { │ │ │ │ - final int n8 = i * this.rowSize; │ │ │ │ - for (int j = n; j < n6; ++j) { │ │ │ │ + for (int i = n2; i < n6; ++i) { │ │ │ │ + final int n7 = i * this.rowSize; │ │ │ │ + for (int j = n; j < n5; ++j) { │ │ │ │ final int[] bits = this.bits; │ │ │ │ - final int n9 = j / 32 + n8; │ │ │ │ - bits[n9] |= n5 << (j & 0x1F); │ │ │ │ + final int n8 = j / 32 + n7; │ │ │ │ + bits[n8] |= 1 << (j & 0x1F); │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ public void setRow(final int n, final BitArray bitArray) { │ │ │ │ System.arraycopy(bitArray.getBitArray(), 0, this.bits, this.rowSize * n, this.rowSize); │ │ │ │ } │ │ │ │ │ │ │ │ public String toString() { │ │ │ │ return this.toString("X ", " "); │ │ │ │ } │ │ │ │ │ │ │ │ public String toString(final String s, final String s2) { │ │ │ │ - return this.toString(s, s2, "\n"); │ │ │ │ + return this.buildToString(s, s2, "\n"); │ │ │ │ } │ │ │ │ │ │ │ │ public String toString(final String s, final String s2, final String s3) { │ │ │ │ - final StringBuilder sb = new StringBuilder(this.height * (this.width + 1)); │ │ │ │ - for (int i = 0; i < this.height; ++i) { │ │ │ │ - for (int j = 0; j < this.width; ++j) { │ │ │ │ - String s4; │ │ │ │ - if (this.get(j, i)) { │ │ │ │ - s4 = s; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - s4 = s2; │ │ │ │ - } │ │ │ │ - sb.append(s4); │ │ │ │ - } │ │ │ │ - sb.append(s3); │ │ │ │ - } │ │ │ │ - return sb.toString(); │ │ │ │ + return this.buildToString(s, s2, s3); │ │ │ │ } │ │ │ │ │ │ │ │ public void unset(final int n, final int n2) { │ │ │ │ final int n3 = this.rowSize * n2 + n / 32; │ │ │ │ final int[] bits = this.bits; │ │ │ │ bits[n3] &= ~(1 << (n & 0x1F)); │ │ │ │ } │ │ ├── com/google/zxing/common/BitSource.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -22,15 +22,15 @@ │ │ │ │ public int getByteOffset() { │ │ │ │ return this.byteOffset; │ │ │ │ } │ │ │ │ │ │ │ │ public int readBits(int i) { │ │ │ │ final int n = 255; │ │ │ │ final int n2 = 8; │ │ │ │ - if (i < 1 || i > 32 || i > this.available()) { │ │ │ │ + if (i <= 0 || i > 32 || i > this.available()) { │ │ │ │ throw new IllegalArgumentException(String.valueOf(i)); │ │ │ │ } │ │ │ │ int n3 = 0; │ │ │ │ if (this.bitOffset > 0) { │ │ │ │ final int n4 = 8 - this.bitOffset; │ │ │ │ int n5; │ │ │ │ if (i < n4) { │ │ ├── com/google/zxing/common/DecoderResult.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -5,27 +5,36 @@ │ │ │ │ │ │ │ │ public final class DecoderResult │ │ │ │ { │ │ │ │ private final List byteSegments; │ │ │ │ private final String ecLevel; │ │ │ │ private Integer erasures; │ │ │ │ private Integer errorsCorrected; │ │ │ │ + private int numBits; │ │ │ │ private Object other; │ │ │ │ private final byte[] rawBytes; │ │ │ │ private final int structuredAppendParity; │ │ │ │ private final int structuredAppendSequenceNumber; │ │ │ │ private final String text; │ │ │ │ │ │ │ │ public DecoderResult(final byte[] array, final String s, final List list, final String s2) { │ │ │ │ final int n = -1; │ │ │ │ this(array, s, list, s2, n, n); │ │ │ │ } │ │ │ │ │ │ │ │ public DecoderResult(final byte[] rawBytes, final String text, final List byteSegments, final String ecLevel, final int structuredAppendSequenceNumber, final int structuredAppendParity) { │ │ │ │ this.rawBytes = rawBytes; │ │ │ │ + int numBits; │ │ │ │ + if (rawBytes == null) { │ │ │ │ + numBits = 0; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + numBits = rawBytes.length * 8; │ │ │ │ + } │ │ │ │ + this.numBits = numBits; │ │ │ │ this.text = text; │ │ │ │ this.byteSegments = byteSegments; │ │ │ │ this.ecLevel = ecLevel; │ │ │ │ this.structuredAppendParity = structuredAppendParity; │ │ │ │ this.structuredAppendSequenceNumber = structuredAppendSequenceNumber; │ │ │ │ } │ │ │ │ │ │ │ │ @@ -41,14 +50,18 @@ │ │ │ │ return this.erasures; │ │ │ │ } │ │ │ │ │ │ │ │ public Integer getErrorsCorrected() { │ │ │ │ return this.errorsCorrected; │ │ │ │ } │ │ │ │ │ │ │ │ + public int getNumBits() { │ │ │ │ + return this.numBits; │ │ │ │ + } │ │ │ │ + │ │ │ │ public Object getOther() { │ │ │ │ return this.other; │ │ │ │ } │ │ │ │ │ │ │ │ public byte[] getRawBytes() { │ │ │ │ return this.rawBytes; │ │ │ │ } │ │ │ │ @@ -73,11 +86,15 @@ │ │ │ │ this.erasures = erasures; │ │ │ │ } │ │ │ │ │ │ │ │ public void setErrorsCorrected(final Integer errorsCorrected) { │ │ │ │ this.errorsCorrected = errorsCorrected; │ │ │ │ } │ │ │ │ │ │ │ │ + public void setNumBits(final int numBits) { │ │ │ │ + this.numBits = numBits; │ │ │ │ + } │ │ │ │ + │ │ │ │ public void setOther(final Object other) { │ │ │ │ this.other = other; │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/common/StringUtils.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -16,161 +16,157 @@ │ │ │ │ private static final String UTF8 = "UTF8"; │ │ │ │ │ │ │ │ static { │ │ │ │ PLATFORM_DEFAULT_ENCODING = Charset.defaultCharset().name(); │ │ │ │ } │ │ │ │ │ │ │ │ public static String guessEncoding(final byte[] array, final Map map) { │ │ │ │ - Label_0025: { │ │ │ │ - if (map == null) { │ │ │ │ - break Label_0025; │ │ │ │ - } │ │ │ │ - final String platform_DEFAULT_ENCODING = (String)map.get(DecodeHintType.CHARACTER_SET); │ │ │ │ - if (platform_DEFAULT_ENCODING == null) { │ │ │ │ - break Label_0025; │ │ │ │ - } │ │ │ │ - return platform_DEFAULT_ENCODING; │ │ │ │ - } │ │ │ │ - final int length = array.length; │ │ │ │ - int n = 1; │ │ │ │ - int n2 = 1; │ │ │ │ - int n3 = 1; │ │ │ │ - int n4 = 0; │ │ │ │ - int n5 = 0; │ │ │ │ - int n6 = 0; │ │ │ │ - int n7 = 0; │ │ │ │ - int n8 = 0; │ │ │ │ - int n9 = 0; │ │ │ │ - int n10 = 0; │ │ │ │ - int n11 = 0; │ │ │ │ - int n12 = 0; │ │ │ │ - int n13 = 0; │ │ │ │ - int n14 = 0; │ │ │ │ - final byte b2; │ │ │ │ - final byte b3; │ │ │ │ - final byte b4; │ │ │ │ - final boolean b = array.length > 3 && (b2 = array[0]) == -17 && (b3 = array[1]) == -69 && (b4 = array[2]) == -65; │ │ │ │ - for (int n15 = 0; n15 < length && (n != 0 || n2 != 0 || n3 != 0); ++n15) { │ │ │ │ - final int n17; │ │ │ │ - final int n16 = n17 = (array[n15] & 0xFF); │ │ │ │ - if (n3 != 0) { │ │ │ │ - if (n4 > 0) { │ │ │ │ - if ((n16 & 0x80) == 0x0) { │ │ │ │ - n3 = 0; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - --n4; │ │ │ │ - } │ │ │ │ - } │ │ │ │ - else if ((n16 & 0x80) != 0x0) { │ │ │ │ - if ((n17 & 0x40) == 0x0) { │ │ │ │ - n3 = 0; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - ++n4; │ │ │ │ - if ((n17 & 0x20) == 0x0) { │ │ │ │ - ++n5; │ │ │ │ + String s; │ │ │ │ + if (map != null && map.containsKey(DecodeHintType.CHARACTER_SET)) { │ │ │ │ + s = map.get(DecodeHintType.CHARACTER_SET).toString(); │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + final int length = array.length; │ │ │ │ + int n = 1; │ │ │ │ + int n2 = 1; │ │ │ │ + int n3 = 1; │ │ │ │ + int n4 = 0; │ │ │ │ + int n5 = 0; │ │ │ │ + int n6 = 0; │ │ │ │ + int n7 = 0; │ │ │ │ + int n8 = 0; │ │ │ │ + int n9 = 0; │ │ │ │ + int n10 = 0; │ │ │ │ + int n11 = 0; │ │ │ │ + int n12 = 0; │ │ │ │ + int n13 = 0; │ │ │ │ + int n14 = 0; │ │ │ │ + final byte b2; │ │ │ │ + final byte b3; │ │ │ │ + final byte b4; │ │ │ │ + final boolean b = array.length > 3 && (b2 = array[0]) == -17 && (b3 = array[1]) == -69 && (b4 = array[2]) == -65; │ │ │ │ + for (int n15 = 0; n15 < length && (n != 0 || n2 != 0 || n3 != 0); ++n15) { │ │ │ │ + final int n17; │ │ │ │ + final int n16 = n17 = (array[n15] & 0xFF); │ │ │ │ + Label_0232: { │ │ │ │ + if (n3 != 0) { │ │ │ │ + if (n4 > 0) { │ │ │ │ + if ((n16 & 0x80) != 0x0) { │ │ │ │ + --n4; │ │ │ │ + break Label_0232; │ │ │ │ + } │ │ │ │ } │ │ │ │ else { │ │ │ │ - ++n4; │ │ │ │ - if ((n17 & 0x10) == 0x0) { │ │ │ │ - ++n6; │ │ │ │ + if ((n16 & 0x80) == 0x0) { │ │ │ │ + break Label_0232; │ │ │ │ } │ │ │ │ - else { │ │ │ │ + if ((n17 & 0x40) != 0x0) { │ │ │ │ + ++n4; │ │ │ │ + if ((n17 & 0x20) == 0x0) { │ │ │ │ + ++n5; │ │ │ │ + break Label_0232; │ │ │ │ + } │ │ │ │ + ++n4; │ │ │ │ + if ((n17 & 0x10) == 0x0) { │ │ │ │ + ++n6; │ │ │ │ + break Label_0232; │ │ │ │ + } │ │ │ │ ++n4; │ │ │ │ if ((n17 & 0x8) == 0x0) { │ │ │ │ ++n7; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - n3 = 0; │ │ │ │ + break Label_0232; │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ + n3 = 0; │ │ │ │ } │ │ │ │ } │ │ │ │ - } │ │ │ │ - if (n != 0) { │ │ │ │ - if (n17 > 127 && n17 < 160) { │ │ │ │ - n = 0; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - final int n18; │ │ │ │ - if ((n18 = n17) > 159 && (n17 < 192 || n17 == 215 || n17 == 247)) { │ │ │ │ - ++n14; │ │ │ │ - } │ │ │ │ - } │ │ │ │ - } │ │ │ │ - if (n2 != 0) { │ │ │ │ - if (n8 > 0) { │ │ │ │ - if (n17 < 64 || n17 == 127 || n17 > 252) { │ │ │ │ - n2 = 0; │ │ │ │ + if (n != 0) { │ │ │ │ + if (n17 > 127 && n17 < 160) { │ │ │ │ + n = 0; │ │ │ │ } │ │ │ │ else { │ │ │ │ - --n8; │ │ │ │ + final int n18; │ │ │ │ + if ((n18 = n17) > 159 && (n17 < 192 || n17 == 215 || n17 == 247)) { │ │ │ │ + ++n14; │ │ │ │ + } │ │ │ │ } │ │ │ │ } │ │ │ │ - else if (n17 == 128 || n17 == 160 || n17 > 239) { │ │ │ │ - n2 = 0; │ │ │ │ - } │ │ │ │ - else if (n17 > 160 && n17 < 224) { │ │ │ │ - ++n9; │ │ │ │ - n11 = 0; │ │ │ │ - ++n10; │ │ │ │ - if (n10 > n12) { │ │ │ │ - n12 = n10; │ │ │ │ + if (n2 != 0) { │ │ │ │ + if (n8 > 0) { │ │ │ │ + if (n17 < 64 || n17 == 127 || n17 > 252) { │ │ │ │ + n2 = 0; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + --n8; │ │ │ │ + } │ │ │ │ } │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - final int n19; │ │ │ │ - if ((n19 = n17) > 127) { │ │ │ │ - ++n8; │ │ │ │ - n10 = 0; │ │ │ │ - ++n11; │ │ │ │ - if (n11 > n13) { │ │ │ │ - n13 = n11; │ │ │ │ + else if (n17 == 128 || n17 == 160 || n17 > 239) { │ │ │ │ + n2 = 0; │ │ │ │ + } │ │ │ │ + else if (n17 > 160 && n17 < 224) { │ │ │ │ + ++n9; │ │ │ │ + n11 = 0; │ │ │ │ + ++n10; │ │ │ │ + if (n10 > n12) { │ │ │ │ + n12 = n10; │ │ │ │ } │ │ │ │ } │ │ │ │ else { │ │ │ │ - n10 = 0; │ │ │ │ - n11 = 0; │ │ │ │ + final int n19; │ │ │ │ + if ((n19 = n17) > 127) { │ │ │ │ + ++n8; │ │ │ │ + n10 = 0; │ │ │ │ + ++n11; │ │ │ │ + if (n11 > n13) { │ │ │ │ + n13 = n11; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + n10 = 0; │ │ │ │ + n11 = 0; │ │ │ │ + } │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ - } │ │ │ │ - if (n3 != 0 && n4 > 0) { │ │ │ │ - n3 = 0; │ │ │ │ - } │ │ │ │ - if (n2 != 0 && n8 > 0) { │ │ │ │ - n2 = 0; │ │ │ │ - } │ │ │ │ - if (n3 != 0 && (b || n5 + n6 + n7 > 0)) { │ │ │ │ - return "UTF8"; │ │ │ │ - } │ │ │ │ - final int n20; │ │ │ │ - final int n21; │ │ │ │ - if (n2 != 0 && (StringUtils.ASSUME_SHIFT_JIS || n12 >= (n20 = 3) || n13 >= (n21 = 3))) { │ │ │ │ - return "SJIS"; │ │ │ │ - } │ │ │ │ - if (n != 0 && n2 != 0) { │ │ │ │ - final int n22; │ │ │ │ - final int n23; │ │ │ │ - String s; │ │ │ │ - if ((n12 == 2 && n9 == (n22 = 2)) || (n23 = n14 * 10) >= length) { │ │ │ │ - s = "SJIS"; │ │ │ │ + if (n3 != 0 && n4 > 0) { │ │ │ │ + n3 = 0; │ │ │ │ + } │ │ │ │ + if (n2 != 0 && n8 > 0) { │ │ │ │ + n2 = 0; │ │ │ │ + } │ │ │ │ + if (n3 != 0 && (b || n5 + n6 + n7 > 0)) { │ │ │ │ + s = "UTF8"; │ │ │ │ } │ │ │ │ else { │ │ │ │ - s = "ISO8859_1"; │ │ │ │ + final int n20; │ │ │ │ + final int n21; │ │ │ │ + if (n2 != 0 && (StringUtils.ASSUME_SHIFT_JIS || n12 >= (n20 = 3) || n13 >= (n21 = 3))) { │ │ │ │ + s = "SJIS"; │ │ │ │ + } │ │ │ │ + else if (n != 0 && n2 != 0) { │ │ │ │ + final int n22; │ │ │ │ + final int n23; │ │ │ │ + if ((n12 == 2 && n9 == (n22 = 2)) || (n23 = n14 * 10) >= length) { │ │ │ │ + s = "SJIS"; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + s = "ISO8859_1"; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + else if (n != 0) { │ │ │ │ + s = "ISO8859_1"; │ │ │ │ + } │ │ │ │ + else if (n2 != 0) { │ │ │ │ + s = "SJIS"; │ │ │ │ + } │ │ │ │ + else if (n3 != 0) { │ │ │ │ + s = "UTF8"; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + s = StringUtils.PLATFORM_DEFAULT_ENCODING; │ │ │ │ + } │ │ │ │ } │ │ │ │ - return s; │ │ │ │ - } │ │ │ │ - if (n != 0) { │ │ │ │ - return "ISO8859_1"; │ │ │ │ - } │ │ │ │ - if (n2 != 0) { │ │ │ │ - return "SJIS"; │ │ │ │ - } │ │ │ │ - if (n3 != 0) { │ │ │ │ - return "UTF8"; │ │ │ │ } │ │ │ │ - return StringUtils.PLATFORM_DEFAULT_ENCODING; │ │ │ │ + return s; │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/common/detector/MathUtils.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -21,8 +21,16 @@ │ │ │ │ n2 = -0.5f; │ │ │ │ } │ │ │ │ else { │ │ │ │ n2 = 0.5f; │ │ │ │ } │ │ │ │ return (int)(n2 + n); │ │ │ │ } │ │ │ │ + │ │ │ │ + public static int sum(final int[] array) { │ │ │ │ + int n = 0; │ │ │ │ + for (int length = array.length, i = 0; i < length; ++i) { │ │ │ │ + n += array[i]; │ │ │ │ + } │ │ │ │ + return n; │ │ │ │ + } │ │ │ │ } │ │ ├── com/google/zxing/common/detector/MonochromeRectangleDetector.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -133,44 +133,44 @@ │ │ │ │ throw NotFoundException.getNotFoundInstance(); │ │ │ │ } │ │ │ │ ResultPoint resultPoint; │ │ │ │ if (n2 == 0) { │ │ │ │ final int n12 = n10 - n6; │ │ │ │ if (array[0] < n) { │ │ │ │ if (array[1] > n) { │ │ │ │ - float n13; │ │ │ │ + int n13; │ │ │ │ if (n6 > 0) { │ │ │ │ - n13 = array[0]; │ │ │ │ + n13 = 0; │ │ │ │ } │ │ │ │ else { │ │ │ │ - n13 = array[1]; │ │ │ │ + n13 = 1; │ │ │ │ } │ │ │ │ - resultPoint = new ResultPoint(n13, (float)n12); │ │ │ │ + resultPoint = new ResultPoint((float)array[n13], (float)n12); │ │ │ │ } │ │ │ │ else { │ │ │ │ resultPoint = new ResultPoint((float)array[0], (float)n12); │ │ │ │ } │ │ │ │ } │ │ │ │ else { │ │ │ │ resultPoint = new ResultPoint((float)array[1], (float)n12); │ │ │ │ } │ │ │ │ } │ │ │ │ else { │ │ │ │ final int n14 = n11 - n2; │ │ │ │ if (array[0] < n5) { │ │ │ │ if (array[1] > n5) { │ │ │ │ final float n15 = (float)n14; │ │ │ │ - float n16; │ │ │ │ + int n16; │ │ │ │ if (n2 < 0) { │ │ │ │ - n16 = array[0]; │ │ │ │ + n16 = 0; │ │ │ │ } │ │ │ │ else { │ │ │ │ - n16 = array[1]; │ │ │ │ + n16 = 1; │ │ │ │ } │ │ │ │ - resultPoint = new ResultPoint(n15, n16); │ │ │ │ + resultPoint = new ResultPoint(n15, (float)array[n16]); │ │ │ │ } │ │ │ │ else { │ │ │ │ resultPoint = new ResultPoint((float)n14, (float)array[0]); │ │ │ │ } │ │ │ │ } │ │ │ │ else { │ │ │ │ resultPoint = new ResultPoint((float)n14, (float)array[1]); │ │ ├── com/google/zxing/common/detector/WhiteRectangleDetector.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -186,49 +186,33 @@ │ │ │ │ b2 = true; │ │ │ │ } │ │ │ │ if (b || !b2) { │ │ │ │ throw NotFoundException.getNotFoundInstance(); │ │ │ │ } │ │ │ │ final int n6 = rightInit - leftInit; │ │ │ │ ResultPoint blackPointOnSegment = null; │ │ │ │ - for (int j = 1; j < n6; ++j) { │ │ │ │ - blackPointOnSegment = this.getBlackPointOnSegment(leftInit, downInit - j, leftInit + j, downInit); │ │ │ │ - if (blackPointOnSegment != null) { │ │ │ │ - break; │ │ │ │ - } │ │ │ │ - } │ │ │ │ + int n8; │ │ │ │ + for (int n7 = 1; blackPointOnSegment == null && n7 < (n8 = n6); blackPointOnSegment = this.getBlackPointOnSegment(leftInit, downInit - n7, leftInit + n7, downInit), ++n7) {} │ │ │ │ if (blackPointOnSegment == null) { │ │ │ │ throw NotFoundException.getNotFoundInstance(); │ │ │ │ } │ │ │ │ ResultPoint blackPointOnSegment2 = null; │ │ │ │ - for (int k = 1; k < n6; ++k) { │ │ │ │ - blackPointOnSegment2 = this.getBlackPointOnSegment(leftInit, upInit + k, leftInit + k, upInit); │ │ │ │ - if (blackPointOnSegment2 != null) { │ │ │ │ - break; │ │ │ │ - } │ │ │ │ - } │ │ │ │ + int n10; │ │ │ │ + for (int n9 = 1; blackPointOnSegment2 == null && n9 < (n10 = n6); blackPointOnSegment2 = this.getBlackPointOnSegment(leftInit, upInit + n9, leftInit + n9, upInit), ++n9) {} │ │ │ │ if (blackPointOnSegment2 == null) { │ │ │ │ throw NotFoundException.getNotFoundInstance(); │ │ │ │ } │ │ │ │ ResultPoint blackPointOnSegment3 = null; │ │ │ │ - for (int l = 1; l < n6; ++l) { │ │ │ │ - blackPointOnSegment3 = this.getBlackPointOnSegment(rightInit, upInit + l, rightInit - l, upInit); │ │ │ │ - if (blackPointOnSegment3 != null) { │ │ │ │ - break; │ │ │ │ - } │ │ │ │ - } │ │ │ │ + int n12; │ │ │ │ + for (int n11 = 1; blackPointOnSegment3 == null && n11 < (n12 = n6); blackPointOnSegment3 = this.getBlackPointOnSegment(rightInit, upInit + n11, rightInit - n11, upInit), ++n11) {} │ │ │ │ if (blackPointOnSegment3 == null) { │ │ │ │ throw NotFoundException.getNotFoundInstance(); │ │ │ │ } │ │ │ │ ResultPoint blackPointOnSegment4 = null; │ │ │ │ - for (int n7 = 1; n7 < n6; ++n7) { │ │ │ │ - blackPointOnSegment4 = this.getBlackPointOnSegment(rightInit, downInit - n7, rightInit - n7, downInit); │ │ │ │ - if (blackPointOnSegment4 != null) { │ │ │ │ - break; │ │ │ │ - } │ │ │ │ - } │ │ │ │ + int n14; │ │ │ │ + for (int n13 = 1; blackPointOnSegment4 == null && n13 < (n14 = n6); blackPointOnSegment4 = this.getBlackPointOnSegment(rightInit, downInit - n13, rightInit - n13, downInit), ++n13) {} │ │ │ │ if (blackPointOnSegment4 == null) { │ │ │ │ throw NotFoundException.getNotFoundInstance(); │ │ │ │ } │ │ │ │ return this.centerEdges(blackPointOnSegment4, blackPointOnSegment, blackPointOnSegment3, blackPointOnSegment2); │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/common/reedsolomon/GenericGF.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -23,30 +23,29 @@ │ │ │ │ final int n = 256; │ │ │ │ final boolean b = true; │ │ │ │ AZTEC_DATA_12 = new GenericGF(4201, 4096, b ? 1 : 0); │ │ │ │ AZTEC_DATA_10 = new GenericGF(1033, 1024, b ? 1 : 0); │ │ │ │ AZTEC_DATA_6 = new GenericGF(67, 64, b ? 1 : 0); │ │ │ │ AZTEC_PARAM = new GenericGF(19, 16, b ? 1 : 0); │ │ │ │ QR_CODE_FIELD_256 = new GenericGF(285, n, 0); │ │ │ │ - DATA_MATRIX_FIELD_256 = new GenericGF(301, n, b ? 1 : 0); │ │ │ │ - AZTEC_DATA_8 = GenericGF.DATA_MATRIX_FIELD_256; │ │ │ │ + AZTEC_DATA_8 = (DATA_MATRIX_FIELD_256 = new GenericGF(301, n, b ? 1 : 0)); │ │ │ │ MAXICODE_FIELD_64 = GenericGF.AZTEC_DATA_6; │ │ │ │ } │ │ │ │ │ │ │ │ public GenericGF(final int primitive, final int size, final int generatorBase) { │ │ │ │ final int n = 1; │ │ │ │ this.primitive = primitive; │ │ │ │ this.size = size; │ │ │ │ this.generatorBase = generatorBase; │ │ │ │ this.expTable = new int[size]; │ │ │ │ this.logTable = new int[size]; │ │ │ │ int n2 = 1; │ │ │ │ for (int i = 0; i < size; ++i) { │ │ │ │ this.expTable[i] = n2; │ │ │ │ - n2 *= 2; │ │ │ │ + n2 <<= 1; │ │ │ │ if (n2 >= size) { │ │ │ │ n2 = ((n2 ^ primitive) & size - 1); │ │ │ │ } │ │ │ │ } │ │ │ │ for (int j = 0; j < size - 1; ++j) { │ │ │ │ this.logTable[this.expTable[j]] = j; │ │ │ │ } │ │ ├── com/google/zxing/common/reedsolomon/GenericGFPoly.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -85,27 +85,24 @@ │ │ │ │ │ │ │ │ int evaluateAt(final int n) { │ │ │ │ int i = 0; │ │ │ │ int n2; │ │ │ │ if (n == 0) { │ │ │ │ n2 = this.getCoefficient(0); │ │ │ │ } │ │ │ │ - else { │ │ │ │ - final int length = this.coefficients.length; │ │ │ │ - if (n == 1) { │ │ │ │ - n2 = 0; │ │ │ │ - for (int[] coefficients = this.coefficients; i < coefficients.length; ++i) { │ │ │ │ - n2 = GenericGF.addOrSubtract(n2, coefficients[i]); │ │ │ │ - } │ │ │ │ + else if (n == 1) { │ │ │ │ + n2 = 0; │ │ │ │ + for (int[] coefficients = this.coefficients; i < coefficients.length; ++i) { │ │ │ │ + n2 = GenericGF.addOrSubtract(n2, coefficients[i]); │ │ │ │ } │ │ │ │ - else { │ │ │ │ - n2 = this.coefficients[0]; │ │ │ │ - for (int j = 1; j < length; ++j) { │ │ │ │ - n2 = GenericGF.addOrSubtract(this.field.multiply(n, n2), this.coefficients[j]); │ │ │ │ - } │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + n2 = this.coefficients[0]; │ │ │ │ + for (int length = this.coefficients.length, j = 1; j < length; ++j) { │ │ │ │ + n2 = GenericGF.addOrSubtract(this.field.multiply(n, n2), this.coefficients[j]); │ │ │ │ } │ │ │ │ } │ │ │ │ return n2; │ │ │ │ } │ │ │ │ │ │ │ │ int getCoefficient(final int n) { │ │ │ │ return this.coefficients[this.coefficients.length - 1 - n]; │ │ ├── com/google/zxing/common/reedsolomon/ReedSolomonDecoder.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -101,15 +101,15 @@ │ │ │ │ } │ │ │ │ │ │ │ │ public void decode(final int[] array, final int n) { │ │ │ │ final GenericGFPoly genericGFPoly = new GenericGFPoly(this.field, array); │ │ │ │ final int[] array2 = new int[n]; │ │ │ │ boolean b = true; │ │ │ │ for (int i = 0; i < n; ++i) { │ │ │ │ - if ((array2[array2.length - 1 - i] = genericGFPoly.evaluateAt(this.field.exp(this.field.getGeneratorBase() + i))) != 0) { │ │ │ │ + if ((array2[n - 1 - i] = genericGFPoly.evaluateAt(this.field.exp(this.field.getGeneratorBase() + i))) != 0) { │ │ │ │ b = false; │ │ │ │ } │ │ │ │ } │ │ │ │ if (!b) { │ │ │ │ final GenericGFPoly[] runEuclideanAlgorithm = this.runEuclideanAlgorithm(this.field.buildMonomial(n, 1), new GenericGFPoly(this.field, array2), n); │ │ │ │ final GenericGFPoly genericGFPoly2 = runEuclideanAlgorithm[0]; │ │ │ │ final GenericGFPoly genericGFPoly3 = runEuclideanAlgorithm[1]; │ │ ├── com/google/zxing/common/reedsolomon/ReedSolomonEncoder.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -292,71 +292,67 @@ │ │ │ │ 64: aload_1 │ │ │ │ 65: iconst_0 │ │ │ │ 66: aload 8 │ │ │ │ 68: iconst_0 │ │ │ │ 69: iload 6 │ │ │ │ 71: invokestatic #72 // Method java/lang/System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V │ │ │ │ 74: new #22 // class com/google/zxing/common/reedsolomon/GenericGFPoly │ │ │ │ - 77: astore 9 │ │ │ │ + 77: astore 4 │ │ │ │ 79: aload_0 │ │ │ │ 80: getfield #15 // Field field:Lcom/google/zxing/common/reedsolomon/GenericGF; │ │ │ │ - 83: astore 4 │ │ │ │ - 85: aload 9 │ │ │ │ - 87: aload 4 │ │ │ │ + 83: astore 9 │ │ │ │ + 85: aload 4 │ │ │ │ + 87: aload 9 │ │ │ │ 89: aload 8 │ │ │ │ 91: invokespecial #25 // Method com/google/zxing/common/reedsolomon/GenericGFPoly."":(Lcom/google/zxing/common/reedsolomon/GenericGF;[I)V │ │ │ │ - 94: aload 9 │ │ │ │ + 94: aload 4 │ │ │ │ 96: iload_2 │ │ │ │ 97: iload_3 │ │ │ │ 98: invokevirtual #76 // Method com/google/zxing/common/reedsolomon/GenericGFPoly.multiplyByMonomial:(II)Lcom/google/zxing/common/reedsolomon/GenericGFPoly; │ │ │ │ - 101: astore 9 │ │ │ │ - 103: aload 9 │ │ │ │ - 105: aload 7 │ │ │ │ - 107: invokevirtual #80 // Method com/google/zxing/common/reedsolomon/GenericGFPoly.divide:(Lcom/google/zxing/common/reedsolomon/GenericGFPoly;)[Lcom/google/zxing/common/reedsolomon/GenericGFPoly; │ │ │ │ - 110: astore 4 │ │ │ │ - 112: aload 4 │ │ │ │ - 114: iload_3 │ │ │ │ - 115: aaload │ │ │ │ - 116: astore 10 │ │ │ │ - 118: aload 10 │ │ │ │ - 120: invokevirtual #84 // Method com/google/zxing/common/reedsolomon/GenericGFPoly.getCoefficients:()[I │ │ │ │ - 123: astore 11 │ │ │ │ - 125: aload 11 │ │ │ │ - 127: arraylength │ │ │ │ - 128: istore 5 │ │ │ │ - 130: iload_2 │ │ │ │ - 131: iload 5 │ │ │ │ - 133: isub │ │ │ │ - 134: istore 12 │ │ │ │ - 136: iconst_0 │ │ │ │ - 137: istore 13 │ │ │ │ - 139: iload 13 │ │ │ │ - 141: iload 12 │ │ │ │ - 143: if_icmpge 167 │ │ │ │ - 146: iload 6 │ │ │ │ - 148: iload 13 │ │ │ │ - 150: iadd │ │ │ │ - 151: istore 5 │ │ │ │ - 153: aload_1 │ │ │ │ - 154: iload 5 │ │ │ │ - 156: iconst_0 │ │ │ │ - 157: iastore │ │ │ │ - 158: iload 13 │ │ │ │ - 160: iconst_1 │ │ │ │ - 161: iadd │ │ │ │ - 162: istore 13 │ │ │ │ - 164: goto 139 │ │ │ │ - 167: iload 6 │ │ │ │ - 169: iload 12 │ │ │ │ - 171: iadd │ │ │ │ - 172: istore 5 │ │ │ │ - 174: aload 11 │ │ │ │ - 176: arraylength │ │ │ │ - 177: istore_3 │ │ │ │ - 178: aload 11 │ │ │ │ - 180: iconst_0 │ │ │ │ - 181: aload_1 │ │ │ │ - 182: iload 5 │ │ │ │ - 184: iload_3 │ │ │ │ - 185: invokestatic #72 // Method java/lang/System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V │ │ │ │ - 188: return │ │ │ │ + 101: aload 7 │ │ │ │ + 103: invokevirtual #80 // Method com/google/zxing/common/reedsolomon/GenericGFPoly.divide:(Lcom/google/zxing/common/reedsolomon/GenericGFPoly;)[Lcom/google/zxing/common/reedsolomon/GenericGFPoly; │ │ │ │ + 106: iload_3 │ │ │ │ + 107: aaload │ │ │ │ + 108: astore 4 │ │ │ │ + 110: aload 4 │ │ │ │ + 112: invokevirtual #84 // Method com/google/zxing/common/reedsolomon/GenericGFPoly.getCoefficients:()[I │ │ │ │ + 115: astore 10 │ │ │ │ + 117: aload 10 │ │ │ │ + 119: arraylength │ │ │ │ + 120: istore 5 │ │ │ │ + 122: iload_2 │ │ │ │ + 123: iload 5 │ │ │ │ + 125: isub │ │ │ │ + 126: istore 11 │ │ │ │ + 128: iconst_0 │ │ │ │ + 129: istore 12 │ │ │ │ + 131: iload 12 │ │ │ │ + 133: iload 11 │ │ │ │ + 135: if_icmpge 159 │ │ │ │ + 138: iload 6 │ │ │ │ + 140: iload 12 │ │ │ │ + 142: iadd │ │ │ │ + 143: istore 5 │ │ │ │ + 145: aload_1 │ │ │ │ + 146: iload 5 │ │ │ │ + 148: iconst_0 │ │ │ │ + 149: iastore │ │ │ │ + 150: iload 12 │ │ │ │ + 152: iconst_1 │ │ │ │ + 153: iadd │ │ │ │ + 154: istore 12 │ │ │ │ + 156: goto 131 │ │ │ │ + 159: iload 6 │ │ │ │ + 161: iload 11 │ │ │ │ + 163: iadd │ │ │ │ + 164: istore 5 │ │ │ │ + 166: aload 10 │ │ │ │ + 168: arraylength │ │ │ │ + 169: istore 13 │ │ │ │ + 171: aload 10 │ │ │ │ + 173: iconst_0 │ │ │ │ + 174: aload_1 │ │ │ │ + 175: iload 5 │ │ │ │ + 177: iload 13 │ │ │ │ + 179: invokestatic #72 // Method java/lang/System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V │ │ │ │ + 182: return │ │ │ │ } │ │ ├── com/google/zxing/datamatrix/decoder/BitMatrixParser.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -16,19 +16,15 @@ │ │ │ │ throw FormatException.getFormatInstance(); │ │ │ │ } │ │ │ │ this.version = readVersion(bitMatrix); │ │ │ │ this.mappingBitMatrix = this.extractDataRegion(bitMatrix); │ │ │ │ this.readMappingMatrix = new BitMatrix(this.mappingBitMatrix.getWidth(), this.mappingBitMatrix.getHeight()); │ │ │ │ } │ │ │ │ │ │ │ │ - private static Version readVersion(final BitMatrix bitMatrix) { │ │ │ │ - return Version.getVersionForDimensions(bitMatrix.getHeight(), bitMatrix.getWidth()); │ │ │ │ - } │ │ │ │ - │ │ │ │ - BitMatrix extractDataRegion(final BitMatrix bitMatrix) { │ │ │ │ + private BitMatrix extractDataRegion(final BitMatrix bitMatrix) { │ │ │ │ final int symbolSizeRows = this.version.getSymbolSizeRows(); │ │ │ │ final int symbolSizeColumns = this.version.getSymbolSizeColumns(); │ │ │ │ if (bitMatrix.getHeight() != symbolSizeRows) { │ │ │ │ throw new IllegalArgumentException("Dimension of bitMarix must match the version size"); │ │ │ │ } │ │ │ │ final int dataRegionSizeRows = this.version.getDataRegionSizeRows(); │ │ │ │ final int dataRegionSizeColumns = this.version.getDataRegionSizeColumns(); │ │ │ │ @@ -49,114 +45,20 @@ │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ return bitMatrix2; │ │ │ │ } │ │ │ │ │ │ │ │ - Version getVersion() { │ │ │ │ - return this.version; │ │ │ │ - } │ │ │ │ - │ │ │ │ - byte[] readCodewords() { │ │ │ │ - final byte[] array = new byte[this.version.getTotalCodewords()]; │ │ │ │ - int n = 4; │ │ │ │ - int n2 = 0; │ │ │ │ - final int height = this.mappingBitMatrix.getHeight(); │ │ │ │ - final int width = this.mappingBitMatrix.getWidth(); │ │ │ │ - int n3 = 0; │ │ │ │ - int n4 = 0; │ │ │ │ - int n5 = 0; │ │ │ │ - int n6 = 0; │ │ │ │ - int n7 = 0; │ │ │ │ - int n8; │ │ │ │ - while (true) { │ │ │ │ - if (n == height && n2 == 0 && n3 == 0) { │ │ │ │ - n8 = n7 + 1; │ │ │ │ - array[n7] = (byte)this.readCorner1(height, width); │ │ │ │ - n -= 2; │ │ │ │ - n2 += 2; │ │ │ │ - n3 = 1; │ │ │ │ - } │ │ │ │ - else if (n == height - 2 && n2 == 0 && (width & 0x3) != 0x0 && n4 == 0) { │ │ │ │ - n8 = n7 + 1; │ │ │ │ - array[n7] = (byte)this.readCorner2(height, width); │ │ │ │ - n -= 2; │ │ │ │ - n2 += 2; │ │ │ │ - n4 = 1; │ │ │ │ - } │ │ │ │ - else if (n == height + 4 && n2 == 2 && (width & 0x7) == 0x0 && n5 == 0) { │ │ │ │ - n8 = n7 + 1; │ │ │ │ - array[n7] = (byte)this.readCorner3(height, width); │ │ │ │ - n -= 2; │ │ │ │ - n2 += 2; │ │ │ │ - n5 = 1; │ │ │ │ - } │ │ │ │ - else if (n == height - 2 && n2 == 0 && (width & 0x7) == 0x4 && n6 == 0) { │ │ │ │ - n8 = n7 + 1; │ │ │ │ - array[n7] = (byte)this.readCorner4(height, width); │ │ │ │ - n -= 2; │ │ │ │ - n2 += 2; │ │ │ │ - n6 = 1; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - int n9; │ │ │ │ - while (true) { │ │ │ │ - if (n < height && n2 >= 0 && !this.readMappingMatrix.get(n2, n)) { │ │ │ │ - n9 = n7 + 1; │ │ │ │ - array[n7] = (byte)this.readUtah(n, n2, height, width); │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - n9 = n7; │ │ │ │ - } │ │ │ │ - n -= 2; │ │ │ │ - n2 += 2; │ │ │ │ - if (n < 0 || n2 >= width) { │ │ │ │ - break; │ │ │ │ - } │ │ │ │ - n7 = n9; │ │ │ │ - } │ │ │ │ - int n10 = n + 1; │ │ │ │ - int n11 = n2 + 3; │ │ │ │ - int n12 = n9; │ │ │ │ - while (true) { │ │ │ │ - if (n10 >= 0 && n11 < width && !this.readMappingMatrix.get(n11, n10)) { │ │ │ │ - n8 = n12 + 1; │ │ │ │ - array[n12] = (byte)this.readUtah(n10, n11, height, width); │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - n8 = n12; │ │ │ │ - } │ │ │ │ - n10 += 2; │ │ │ │ - n11 -= 2; │ │ │ │ - if (n10 >= height || n11 < 0) { │ │ │ │ - break; │ │ │ │ - } │ │ │ │ - n12 = n8; │ │ │ │ - } │ │ │ │ - n = n10 + 3; │ │ │ │ - n2 = n11 + 1; │ │ │ │ - } │ │ │ │ - if (n >= height && n2 >= width) { │ │ │ │ - break; │ │ │ │ - } │ │ │ │ - n7 = n8; │ │ │ │ - } │ │ │ │ - if (n8 != this.version.getTotalCodewords()) { │ │ │ │ - throw FormatException.getFormatInstance(); │ │ │ │ - } │ │ │ │ - return array; │ │ │ │ - } │ │ │ │ - │ │ │ │ - int readCorner1(final int n, final int n2) { │ │ │ │ + private int readCorner1(final int n, final int n2) { │ │ │ │ final int n3 = 2; │ │ │ │ final int n4 = 1; │ │ │ │ int n5 = 0; │ │ │ │ if (this.readModule(n - 1, 0, n, n2)) { │ │ │ │ - n5 = ((false | true) ? 1 : 0); │ │ │ │ + n5 = 1; │ │ │ │ } │ │ │ │ int n6 = n5 << 1; │ │ │ │ if (this.readModule(n - 1, n4, n, n2)) { │ │ │ │ n6 |= 0x1; │ │ │ │ } │ │ │ │ int n7 = n6 << 1; │ │ │ │ if (this.readModule(n - 1, n3, n, n2)) { │ │ │ │ @@ -181,18 +83,18 @@ │ │ │ │ int n12 = n11 << 1; │ │ │ │ if (this.readModule(3, n2 - 1, n, n2)) { │ │ │ │ n12 |= 0x1; │ │ │ │ } │ │ │ │ return n12; │ │ │ │ } │ │ │ │ │ │ │ │ - int readCorner2(final int n, final int n2) { │ │ │ │ + private int readCorner2(final int n, final int n2) { │ │ │ │ int n3 = 0; │ │ │ │ if (this.readModule(n - 3, 0, n, n2)) { │ │ │ │ - n3 = ((false | true) ? 1 : 0); │ │ │ │ + n3 = 1; │ │ │ │ } │ │ │ │ int n4 = n3 << 1; │ │ │ │ if (this.readModule(n - 2, 0, n, n2)) { │ │ │ │ n4 |= 0x1; │ │ │ │ } │ │ │ │ int n5 = n4 << 1; │ │ │ │ if (this.readModule(n - 1, 0, n, n2)) { │ │ │ │ @@ -217,19 +119,19 @@ │ │ │ │ int n10 = n9 << 1; │ │ │ │ if (this.readModule(1, n2 - 1, n, n2)) { │ │ │ │ n10 |= 0x1; │ │ │ │ } │ │ │ │ return n10; │ │ │ │ } │ │ │ │ │ │ │ │ - int readCorner3(final int n, final int n2) { │ │ │ │ + private int readCorner3(final int n, final int n2) { │ │ │ │ final int n3 = 1; │ │ │ │ int n4 = 0; │ │ │ │ if (this.readModule(n - 1, 0, n, n2)) { │ │ │ │ - n4 = ((false | true) ? 1 : 0); │ │ │ │ + n4 = 1; │ │ │ │ } │ │ │ │ int n5 = n4 << 1; │ │ │ │ if (this.readModule(n - 1, n2 - 1, n, n2)) { │ │ │ │ n5 |= 0x1; │ │ │ │ } │ │ │ │ int n6 = n5 << 1; │ │ │ │ if (this.readModule(0, n2 - 3, n, n2)) { │ │ │ │ @@ -254,18 +156,18 @@ │ │ │ │ int n11 = n10 << 1; │ │ │ │ if (this.readModule(n3, n2 - 1, n, n2)) { │ │ │ │ n11 |= 0x1; │ │ │ │ } │ │ │ │ return n11; │ │ │ │ } │ │ │ │ │ │ │ │ - int readCorner4(final int n, final int n2) { │ │ │ │ + private int readCorner4(final int n, final int n2) { │ │ │ │ int n3 = 0; │ │ │ │ if (this.readModule(n - 3, 0, n, n2)) { │ │ │ │ - n3 = ((false | true) ? 1 : 0); │ │ │ │ + n3 = 1; │ │ │ │ } │ │ │ │ int n4 = n3 << 1; │ │ │ │ if (this.readModule(n - 2, 0, n, n2)) { │ │ │ │ n4 |= 0x1; │ │ │ │ } │ │ │ │ int n5 = n4 << 1; │ │ │ │ if (this.readModule(n - 1, 0, n, n2)) { │ │ │ │ @@ -290,31 +192,31 @@ │ │ │ │ int n10 = n9 << 1; │ │ │ │ if (this.readModule(3, n2 - 1, n, n2)) { │ │ │ │ n10 |= 0x1; │ │ │ │ } │ │ │ │ return n10; │ │ │ │ } │ │ │ │ │ │ │ │ - boolean readModule(int n, int n2, final int n3, final int n4) { │ │ │ │ + private boolean readModule(int n, int n2, final int n3, final int n4) { │ │ │ │ if (n < 0) { │ │ │ │ n += n3; │ │ │ │ n2 += 4 - (n3 + 4 & 0x7); │ │ │ │ } │ │ │ │ if (n2 < 0) { │ │ │ │ n2 += n4; │ │ │ │ n += 4 - (n4 + 4 & 0x7); │ │ │ │ } │ │ │ │ this.readMappingMatrix.set(n2, n); │ │ │ │ return this.mappingBitMatrix.get(n2, n); │ │ │ │ } │ │ │ │ │ │ │ │ - int readUtah(final int n, final int n2, final int n3, final int n4) { │ │ │ │ + private int readUtah(final int n, final int n2, final int n3, final int n4) { │ │ │ │ int n5 = 0; │ │ │ │ if (this.readModule(n - 2, n2 - 2, n3, n4)) { │ │ │ │ - n5 = ((false | true) ? 1 : 0); │ │ │ │ + n5 = 1; │ │ │ │ } │ │ │ │ int n6 = n5 << 1; │ │ │ │ if (this.readModule(n - 2, n2 - 1, n3, n4)) { │ │ │ │ n6 |= 0x1; │ │ │ │ } │ │ │ │ int n7 = n6 << 1; │ │ │ │ if (this.readModule(n - 1, n2 - 2, n3, n4)) { │ │ │ │ @@ -338,8 +240,106 @@ │ │ │ │ } │ │ │ │ int n12 = n11 << 1; │ │ │ │ if (this.readModule(n, n2, n3, n4)) { │ │ │ │ n12 |= 0x1; │ │ │ │ } │ │ │ │ return n12; │ │ │ │ } │ │ │ │ + │ │ │ │ + private static Version readVersion(final BitMatrix bitMatrix) { │ │ │ │ + return Version.getVersionForDimensions(bitMatrix.getHeight(), bitMatrix.getWidth()); │ │ │ │ + } │ │ │ │ + │ │ │ │ + Version getVersion() { │ │ │ │ + return this.version; │ │ │ │ + } │ │ │ │ + │ │ │ │ + byte[] readCodewords() { │ │ │ │ + final byte[] array = new byte[this.version.getTotalCodewords()]; │ │ │ │ + int n = 4; │ │ │ │ + int n2 = 0; │ │ │ │ + final int height = this.mappingBitMatrix.getHeight(); │ │ │ │ + final int width = this.mappingBitMatrix.getWidth(); │ │ │ │ + int n3 = 0; │ │ │ │ + int n4 = 0; │ │ │ │ + int n5 = 0; │ │ │ │ + int n6 = 0; │ │ │ │ + int n7 = 0; │ │ │ │ + int n8; │ │ │ │ + while (true) { │ │ │ │ + if (n == height && n2 == 0 && n3 == 0) { │ │ │ │ + n8 = n7 + 1; │ │ │ │ + array[n7] = (byte)this.readCorner1(height, width); │ │ │ │ + n -= 2; │ │ │ │ + n2 += 2; │ │ │ │ + n3 = 1; │ │ │ │ + } │ │ │ │ + else if (n == height - 2 && n2 == 0 && (width & 0x3) != 0x0 && n4 == 0) { │ │ │ │ + n8 = n7 + 1; │ │ │ │ + array[n7] = (byte)this.readCorner2(height, width); │ │ │ │ + n -= 2; │ │ │ │ + n2 += 2; │ │ │ │ + n4 = 1; │ │ │ │ + } │ │ │ │ + else if (n == height + 4 && n2 == 2 && (width & 0x7) == 0x0 && n5 == 0) { │ │ │ │ + n8 = n7 + 1; │ │ │ │ + array[n7] = (byte)this.readCorner3(height, width); │ │ │ │ + n -= 2; │ │ │ │ + n2 += 2; │ │ │ │ + n5 = 1; │ │ │ │ + } │ │ │ │ + else if (n == height - 2 && n2 == 0 && (width & 0x7) == 0x4 && n6 == 0) { │ │ │ │ + n8 = n7 + 1; │ │ │ │ + array[n7] = (byte)this.readCorner4(height, width); │ │ │ │ + n -= 2; │ │ │ │ + n2 += 2; │ │ │ │ + n6 = 1; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + int n9; │ │ │ │ + while (true) { │ │ │ │ + if (n < height && n2 >= 0 && !this.readMappingMatrix.get(n2, n)) { │ │ │ │ + n9 = n7 + 1; │ │ │ │ + array[n7] = (byte)this.readUtah(n, n2, height, width); │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + n9 = n7; │ │ │ │ + } │ │ │ │ + n -= 2; │ │ │ │ + n2 += 2; │ │ │ │ + if (n < 0 || n2 >= width) { │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + n7 = n9; │ │ │ │ + } │ │ │ │ + int n10 = n + 1; │ │ │ │ + int n11 = n2 + 3; │ │ │ │ + int n12 = n9; │ │ │ │ + while (true) { │ │ │ │ + if (n10 >= 0 && n11 < width && !this.readMappingMatrix.get(n11, n10)) { │ │ │ │ + n8 = n12 + 1; │ │ │ │ + array[n12] = (byte)this.readUtah(n10, n11, height, width); │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + n8 = n12; │ │ │ │ + } │ │ │ │ + n10 += 2; │ │ │ │ + n11 -= 2; │ │ │ │ + if (n10 >= height || n11 < 0) { │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + n12 = n8; │ │ │ │ + } │ │ │ │ + n = n10 + 3; │ │ │ │ + n2 = n11 + 1; │ │ │ │ + } │ │ │ │ + if (n >= height && n2 >= width) { │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + n7 = n8; │ │ │ │ + } │ │ │ │ + if (n8 != this.version.getTotalCodewords()) { │ │ │ │ + throw FormatException.getFormatInstance(); │ │ │ │ + } │ │ │ │ + return array; │ │ │ │ + } │ │ │ │ } │ │ ├── com/google/zxing/datamatrix/decoder/DataBlock.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -85,15 +85,15 @@ │ │ │ │ 11: putfield #16 // Field codewords:[B │ │ │ │ 14: return │ │ │ │ │ │ │ │ static com.google.zxing.datamatrix.decoder.DataBlock[] getDataBlocks(byte[], com.google.zxing.datamatrix.decoder.Version); │ │ │ │ descriptor: ([BLcom/google/zxing/datamatrix/decoder/Version;)[Lcom/google/zxing/datamatrix/decoder/DataBlock; │ │ │ │ flags: ACC_STATIC │ │ │ │ Code: │ │ │ │ - stack=300, locals=31, args_size=2 │ │ │ │ + stack=300, locals=30, args_size=2 │ │ │ │ 0: aload_1 │ │ │ │ 1: invokevirtual #22 // Method com/google/zxing/datamatrix/decoder/Version.getECBlocks:()Lcom/google/zxing/datamatrix/decoder/Version$ECBlocks; │ │ │ │ 4: astore_2 │ │ │ │ 5: iconst_0 │ │ │ │ 6: istore_3 │ │ │ │ 7: aload_2 │ │ │ │ 8: invokevirtual #27 // Method com/google/zxing/datamatrix/decoder/Version$ECBlocks.getECBlocks:()[Lcom/google/zxing/datamatrix/decoder/Version$ECB; │ │ │ │ @@ -215,256 +215,258 @@ │ │ │ │ 226: aload 8 │ │ │ │ 228: getfield #16 // Field codewords:[B │ │ │ │ 231: astore 11 │ │ │ │ 233: aload 11 │ │ │ │ 235: astore 8 │ │ │ │ 237: aload 11 │ │ │ │ 239: arraylength │ │ │ │ - 240: istore 20 │ │ │ │ - 242: aload_2 │ │ │ │ - 243: invokevirtual #39 // Method com/google/zxing/datamatrix/decoder/Version$ECBlocks.getECCodewords:()I │ │ │ │ - 246: istore 7 │ │ │ │ - 248: iload 20 │ │ │ │ - 250: iload 7 │ │ │ │ - 252: isub │ │ │ │ - 253: istore 21 │ │ │ │ - 255: iload 21 │ │ │ │ - 257: iconst_m1 │ │ │ │ - 258: iadd │ │ │ │ - 259: istore 22 │ │ │ │ - 261: iconst_0 │ │ │ │ - 262: istore 23 │ │ │ │ - 264: iconst_0 │ │ │ │ - 265: istore 14 │ │ │ │ - 267: iload 22 │ │ │ │ - 269: istore 5 │ │ │ │ - 271: iload 14 │ │ │ │ - 273: iload 22 │ │ │ │ - 275: if_icmpge 359 │ │ │ │ - 278: iconst_0 │ │ │ │ - 279: istore 24 │ │ │ │ - 281: iload 23 │ │ │ │ - 283: istore 25 │ │ │ │ - 285: iload 24 │ │ │ │ - 287: iload 13 │ │ │ │ - 289: if_icmpge 346 │ │ │ │ - 292: aload 12 │ │ │ │ - 294: iload 24 │ │ │ │ - 296: aaload │ │ │ │ - 297: astore 8 │ │ │ │ - 299: aload 8 │ │ │ │ - 301: astore 11 │ │ │ │ + 240: istore 5 │ │ │ │ + 242: iload 5 │ │ │ │ + 244: istore 7 │ │ │ │ + 246: aload_2 │ │ │ │ + 247: invokevirtual #39 // Method com/google/zxing/datamatrix/decoder/Version$ECBlocks.getECCodewords:()I │ │ │ │ + 250: istore 6 │ │ │ │ + 252: iload 5 │ │ │ │ + 254: iload 6 │ │ │ │ + 256: isub │ │ │ │ + 257: istore 20 │ │ │ │ + 259: iload 20 │ │ │ │ + 261: iconst_m1 │ │ │ │ + 262: iadd │ │ │ │ + 263: istore 21 │ │ │ │ + 265: iconst_0 │ │ │ │ + 266: istore 22 │ │ │ │ + 268: iconst_0 │ │ │ │ + 269: istore 14 │ │ │ │ + 271: iload 21 │ │ │ │ + 273: istore 5 │ │ │ │ + 275: iload 14 │ │ │ │ + 277: iload 21 │ │ │ │ + 279: if_icmpge 363 │ │ │ │ + 282: iconst_0 │ │ │ │ + 283: istore 23 │ │ │ │ + 285: iload 22 │ │ │ │ + 287: istore 24 │ │ │ │ + 289: iload 23 │ │ │ │ + 291: iload 13 │ │ │ │ + 293: if_icmpge 350 │ │ │ │ + 296: aload 12 │ │ │ │ + 298: iload 23 │ │ │ │ + 300: aaload │ │ │ │ + 301: astore 8 │ │ │ │ 303: aload 8 │ │ │ │ - 305: getfield #16 // Field codewords:[B │ │ │ │ - 308: astore 11 │ │ │ │ - 310: aload 11 │ │ │ │ - 312: astore 8 │ │ │ │ - 314: iload 25 │ │ │ │ - 316: iconst_1 │ │ │ │ - 317: iadd │ │ │ │ - 318: istore 23 │ │ │ │ - 320: aload_0 │ │ │ │ - 321: iload 25 │ │ │ │ - 323: baload │ │ │ │ - 324: istore 6 │ │ │ │ - 326: aload 11 │ │ │ │ - 328: iload 14 │ │ │ │ - 330: iload 6 │ │ │ │ - 332: bastore │ │ │ │ - 333: iload 24 │ │ │ │ - 335: iconst_1 │ │ │ │ - 336: iadd │ │ │ │ - 337: istore 24 │ │ │ │ - 339: iload 23 │ │ │ │ - 341: istore 25 │ │ │ │ - 343: goto 285 │ │ │ │ - 346: iload 14 │ │ │ │ - 348: iconst_1 │ │ │ │ - 349: iadd │ │ │ │ - 350: istore 14 │ │ │ │ - 352: iload 25 │ │ │ │ - 354: istore 23 │ │ │ │ - 356: goto 267 │ │ │ │ - 359: aload_1 │ │ │ │ - 360: invokevirtual #45 // Method com/google/zxing/datamatrix/decoder/Version.getVersionNumber:()I │ │ │ │ - 363: istore 7 │ │ │ │ - 365: bipush 24 │ │ │ │ - 367: istore 6 │ │ │ │ - 369: iload 7 │ │ │ │ - 371: istore 5 │ │ │ │ + 305: astore 11 │ │ │ │ + 307: aload 8 │ │ │ │ + 309: getfield #16 // Field codewords:[B │ │ │ │ + 312: astore 11 │ │ │ │ + 314: aload 11 │ │ │ │ + 316: astore 8 │ │ │ │ + 318: iload 24 │ │ │ │ + 320: iconst_1 │ │ │ │ + 321: iadd │ │ │ │ + 322: istore 22 │ │ │ │ + 324: aload_0 │ │ │ │ + 325: iload 24 │ │ │ │ + 327: baload │ │ │ │ + 328: istore 6 │ │ │ │ + 330: aload 11 │ │ │ │ + 332: iload 14 │ │ │ │ + 334: iload 6 │ │ │ │ + 336: bastore │ │ │ │ + 337: iload 23 │ │ │ │ + 339: iconst_1 │ │ │ │ + 340: iadd │ │ │ │ + 341: istore 23 │ │ │ │ + 343: iload 22 │ │ │ │ + 345: istore 24 │ │ │ │ + 347: goto 289 │ │ │ │ + 350: iload 14 │ │ │ │ + 352: iconst_1 │ │ │ │ + 353: iadd │ │ │ │ + 354: istore 14 │ │ │ │ + 356: iload 24 │ │ │ │ + 358: istore 22 │ │ │ │ + 360: goto 271 │ │ │ │ + 363: aload_1 │ │ │ │ + 364: invokevirtual #45 // Method com/google/zxing/datamatrix/decoder/Version.getVersionNumber:()I │ │ │ │ + 367: istore 7 │ │ │ │ + 369: bipush 24 │ │ │ │ + 371: istore 6 │ │ │ │ 373: iload 7 │ │ │ │ - 375: iload 6 │ │ │ │ - 377: if_icmpne 466 │ │ │ │ - 380: iconst_1 │ │ │ │ - 381: istore 26 │ │ │ │ - 383: iload 26 │ │ │ │ - 385: ifeq 472 │ │ │ │ - 388: bipush 8 │ │ │ │ - 390: istore 27 │ │ │ │ - 392: iconst_0 │ │ │ │ - 393: istore 24 │ │ │ │ - 395: iload 23 │ │ │ │ - 397: istore 25 │ │ │ │ - 399: iload 24 │ │ │ │ - 401: iload 27 │ │ │ │ - 403: if_icmpge 479 │ │ │ │ - 406: aload 12 │ │ │ │ - 408: iload 24 │ │ │ │ - 410: aaload │ │ │ │ - 411: astore 8 │ │ │ │ - 413: aload 8 │ │ │ │ - 415: astore 11 │ │ │ │ + 375: istore 5 │ │ │ │ + 377: iload 7 │ │ │ │ + 379: iload 6 │ │ │ │ + 381: if_icmpne 470 │ │ │ │ + 384: iconst_1 │ │ │ │ + 385: istore 25 │ │ │ │ + 387: iload 25 │ │ │ │ + 389: ifeq 476 │ │ │ │ + 392: bipush 8 │ │ │ │ + 394: istore 26 │ │ │ │ + 396: iconst_0 │ │ │ │ + 397: istore 23 │ │ │ │ + 399: iload 22 │ │ │ │ + 401: istore 24 │ │ │ │ + 403: iload 23 │ │ │ │ + 405: iload 26 │ │ │ │ + 407: if_icmpge 483 │ │ │ │ + 410: aload 12 │ │ │ │ + 412: iload 23 │ │ │ │ + 414: aaload │ │ │ │ + 415: astore 8 │ │ │ │ 417: aload 8 │ │ │ │ - 419: getfield #16 // Field codewords:[B │ │ │ │ - 422: astore 11 │ │ │ │ - 424: aload 11 │ │ │ │ - 426: astore 8 │ │ │ │ - 428: iload 21 │ │ │ │ - 430: iconst_m1 │ │ │ │ - 431: iadd │ │ │ │ - 432: istore 6 │ │ │ │ - 434: iload 25 │ │ │ │ - 436: iconst_1 │ │ │ │ - 437: iadd │ │ │ │ - 438: istore 23 │ │ │ │ - 440: aload_0 │ │ │ │ - 441: iload 25 │ │ │ │ - 443: baload │ │ │ │ - 444: istore 10 │ │ │ │ - 446: aload 11 │ │ │ │ - 448: iload 6 │ │ │ │ - 450: iload 10 │ │ │ │ - 452: bastore │ │ │ │ - 453: iload 24 │ │ │ │ - 455: iconst_1 │ │ │ │ - 456: iadd │ │ │ │ - 457: istore 24 │ │ │ │ - 459: iload 23 │ │ │ │ - 461: istore 25 │ │ │ │ - 463: goto 399 │ │ │ │ - 466: iconst_0 │ │ │ │ - 467: istore 26 │ │ │ │ - 469: goto 383 │ │ │ │ - 472: iload 13 │ │ │ │ - 474: istore 27 │ │ │ │ - 476: goto 392 │ │ │ │ - 479: iconst_0 │ │ │ │ - 480: istore 7 │ │ │ │ - 482: aload 12 │ │ │ │ - 484: iconst_0 │ │ │ │ - 485: aaload │ │ │ │ - 486: astore 8 │ │ │ │ - 488: aload 8 │ │ │ │ - 490: astore 11 │ │ │ │ + 419: astore 11 │ │ │ │ + 421: aload 8 │ │ │ │ + 423: getfield #16 // Field codewords:[B │ │ │ │ + 426: astore 11 │ │ │ │ + 428: aload 11 │ │ │ │ + 430: astore 8 │ │ │ │ + 432: iload 20 │ │ │ │ + 434: iconst_m1 │ │ │ │ + 435: iadd │ │ │ │ + 436: istore 6 │ │ │ │ + 438: iload 24 │ │ │ │ + 440: iconst_1 │ │ │ │ + 441: iadd │ │ │ │ + 442: istore 22 │ │ │ │ + 444: aload_0 │ │ │ │ + 445: iload 24 │ │ │ │ + 447: baload │ │ │ │ + 448: istore 10 │ │ │ │ + 450: aload 11 │ │ │ │ + 452: iload 6 │ │ │ │ + 454: iload 10 │ │ │ │ + 456: bastore │ │ │ │ + 457: iload 23 │ │ │ │ + 459: iconst_1 │ │ │ │ + 460: iadd │ │ │ │ + 461: istore 23 │ │ │ │ + 463: iload 22 │ │ │ │ + 465: istore 24 │ │ │ │ + 467: goto 403 │ │ │ │ + 470: iconst_0 │ │ │ │ + 471: istore 25 │ │ │ │ + 473: goto 387 │ │ │ │ + 476: iload 13 │ │ │ │ + 478: istore 26 │ │ │ │ + 480: goto 396 │ │ │ │ + 483: iconst_0 │ │ │ │ + 484: istore 7 │ │ │ │ + 486: aload 12 │ │ │ │ + 488: iconst_0 │ │ │ │ + 489: aaload │ │ │ │ + 490: astore 8 │ │ │ │ 492: aload 8 │ │ │ │ - 494: getfield #16 // Field codewords:[B │ │ │ │ - 497: astore 11 │ │ │ │ - 499: aload 11 │ │ │ │ - 501: astore 8 │ │ │ │ + 494: astore 11 │ │ │ │ + 496: aload 8 │ │ │ │ + 498: getfield #16 // Field codewords:[B │ │ │ │ + 501: astore 11 │ │ │ │ 503: aload 11 │ │ │ │ - 505: arraylength │ │ │ │ - 506: istore 28 │ │ │ │ - 508: iload 21 │ │ │ │ - 510: istore 14 │ │ │ │ - 512: iload 25 │ │ │ │ - 514: istore 23 │ │ │ │ - 516: iload 14 │ │ │ │ - 518: iload 28 │ │ │ │ - 520: if_icmpge 663 │ │ │ │ - 523: iconst_0 │ │ │ │ - 524: istore 24 │ │ │ │ - 526: iload 23 │ │ │ │ - 528: istore 25 │ │ │ │ - 530: iload 24 │ │ │ │ - 532: iload 13 │ │ │ │ - 534: if_icmpge 650 │ │ │ │ - 537: iload 26 │ │ │ │ - 539: ifeq 636 │ │ │ │ - 542: iload 24 │ │ │ │ - 544: bipush 8 │ │ │ │ - 546: iadd │ │ │ │ - 547: istore 7 │ │ │ │ - 549: iload 7 │ │ │ │ - 551: iload 13 │ │ │ │ - 553: irem │ │ │ │ - 554: istore 29 │ │ │ │ - 556: iload 26 │ │ │ │ - 558: ifeq 643 │ │ │ │ - 561: bipush 7 │ │ │ │ - 563: istore 7 │ │ │ │ - 565: iload 7 │ │ │ │ - 567: istore 5 │ │ │ │ - 569: iload 29 │ │ │ │ - 571: iload 7 │ │ │ │ - 573: if_icmple 643 │ │ │ │ - 576: iload 14 │ │ │ │ - 578: iconst_m1 │ │ │ │ - 579: iadd │ │ │ │ - 580: istore 30 │ │ │ │ - 582: aload 12 │ │ │ │ - 584: iload 29 │ │ │ │ - 586: aaload │ │ │ │ - 587: astore 8 │ │ │ │ - 589: aload 8 │ │ │ │ - 591: astore 11 │ │ │ │ + 505: astore 8 │ │ │ │ + 507: aload 11 │ │ │ │ + 509: arraylength │ │ │ │ + 510: istore 27 │ │ │ │ + 512: iload 20 │ │ │ │ + 514: istore 14 │ │ │ │ + 516: iload 24 │ │ │ │ + 518: istore 22 │ │ │ │ + 520: iload 14 │ │ │ │ + 522: iload 27 │ │ │ │ + 524: if_icmpge 667 │ │ │ │ + 527: iconst_0 │ │ │ │ + 528: istore 23 │ │ │ │ + 530: iload 22 │ │ │ │ + 532: istore 24 │ │ │ │ + 534: iload 23 │ │ │ │ + 536: iload 13 │ │ │ │ + 538: if_icmpge 654 │ │ │ │ + 541: iload 25 │ │ │ │ + 543: ifeq 640 │ │ │ │ + 546: iload 23 │ │ │ │ + 548: bipush 8 │ │ │ │ + 550: iadd │ │ │ │ + 551: istore 7 │ │ │ │ + 553: iload 7 │ │ │ │ + 555: iload 13 │ │ │ │ + 557: irem │ │ │ │ + 558: istore 28 │ │ │ │ + 560: iload 25 │ │ │ │ + 562: ifeq 647 │ │ │ │ + 565: bipush 7 │ │ │ │ + 567: istore 7 │ │ │ │ + 569: iload 7 │ │ │ │ + 571: istore 5 │ │ │ │ + 573: iload 28 │ │ │ │ + 575: iload 7 │ │ │ │ + 577: if_icmple 647 │ │ │ │ + 580: iload 14 │ │ │ │ + 582: iconst_m1 │ │ │ │ + 583: iadd │ │ │ │ + 584: istore 29 │ │ │ │ + 586: aload 12 │ │ │ │ + 588: iload 28 │ │ │ │ + 590: aaload │ │ │ │ + 591: astore 8 │ │ │ │ 593: aload 8 │ │ │ │ - 595: getfield #16 // Field codewords:[B │ │ │ │ - 598: astore 11 │ │ │ │ - 600: aload 11 │ │ │ │ - 602: astore 8 │ │ │ │ - 604: iload 25 │ │ │ │ - 606: iconst_1 │ │ │ │ - 607: iadd │ │ │ │ - 608: istore 23 │ │ │ │ - 610: aload_0 │ │ │ │ - 611: iload 25 │ │ │ │ - 613: baload │ │ │ │ - 614: istore 6 │ │ │ │ - 616: aload 11 │ │ │ │ - 618: iload 30 │ │ │ │ - 620: iload 6 │ │ │ │ - 622: bastore │ │ │ │ - 623: iload 24 │ │ │ │ - 625: iconst_1 │ │ │ │ - 626: iadd │ │ │ │ - 627: istore 24 │ │ │ │ - 629: iload 23 │ │ │ │ - 631: istore 25 │ │ │ │ - 633: goto 530 │ │ │ │ - 636: iload 24 │ │ │ │ - 638: istore 29 │ │ │ │ - 640: goto 556 │ │ │ │ - 643: iload 14 │ │ │ │ - 645: istore 30 │ │ │ │ - 647: goto 582 │ │ │ │ - 650: iload 14 │ │ │ │ - 652: iconst_1 │ │ │ │ - 653: iadd │ │ │ │ - 654: istore 14 │ │ │ │ - 656: iload 25 │ │ │ │ - 658: istore 23 │ │ │ │ - 660: goto 516 │ │ │ │ - 663: aload_0 │ │ │ │ - 664: astore 11 │ │ │ │ - 666: aload_0 │ │ │ │ - 667: arraylength │ │ │ │ - 668: istore 7 │ │ │ │ - 670: iload 23 │ │ │ │ - 672: istore 5 │ │ │ │ - 674: iload 23 │ │ │ │ - 676: iload 7 │ │ │ │ - 678: if_icmpeq 694 │ │ │ │ - 681: new #51 // class java/lang/IllegalArgumentException │ │ │ │ - 684: astore 8 │ │ │ │ - 686: aload 8 │ │ │ │ - 688: invokespecial #52 // Method java/lang/IllegalArgumentException."":()V │ │ │ │ - 691: aload 8 │ │ │ │ - 693: athrow │ │ │ │ - 694: aload 12 │ │ │ │ - 696: areturn │ │ │ │ + 595: astore 11 │ │ │ │ + 597: aload 8 │ │ │ │ + 599: getfield #16 // Field codewords:[B │ │ │ │ + 602: astore 11 │ │ │ │ + 604: aload 11 │ │ │ │ + 606: astore 8 │ │ │ │ + 608: iload 24 │ │ │ │ + 610: iconst_1 │ │ │ │ + 611: iadd │ │ │ │ + 612: istore 22 │ │ │ │ + 614: aload_0 │ │ │ │ + 615: iload 24 │ │ │ │ + 617: baload │ │ │ │ + 618: istore 6 │ │ │ │ + 620: aload 11 │ │ │ │ + 622: iload 29 │ │ │ │ + 624: iload 6 │ │ │ │ + 626: bastore │ │ │ │ + 627: iload 23 │ │ │ │ + 629: iconst_1 │ │ │ │ + 630: iadd │ │ │ │ + 631: istore 23 │ │ │ │ + 633: iload 22 │ │ │ │ + 635: istore 24 │ │ │ │ + 637: goto 534 │ │ │ │ + 640: iload 23 │ │ │ │ + 642: istore 28 │ │ │ │ + 644: goto 560 │ │ │ │ + 647: iload 14 │ │ │ │ + 649: istore 29 │ │ │ │ + 651: goto 586 │ │ │ │ + 654: iload 14 │ │ │ │ + 656: iconst_1 │ │ │ │ + 657: iadd │ │ │ │ + 658: istore 14 │ │ │ │ + 660: iload 24 │ │ │ │ + 662: istore 22 │ │ │ │ + 664: goto 520 │ │ │ │ + 667: aload_0 │ │ │ │ + 668: astore 11 │ │ │ │ + 670: aload_0 │ │ │ │ + 671: arraylength │ │ │ │ + 672: istore 7 │ │ │ │ + 674: iload 22 │ │ │ │ + 676: istore 5 │ │ │ │ + 678: iload 22 │ │ │ │ + 680: iload 7 │ │ │ │ + 682: if_icmpeq 698 │ │ │ │ + 685: new #51 // class java/lang/IllegalArgumentException │ │ │ │ + 688: astore 8 │ │ │ │ + 690: aload 8 │ │ │ │ + 692: invokespecial #52 // Method java/lang/IllegalArgumentException."":()V │ │ │ │ + 695: aload 8 │ │ │ │ + 697: athrow │ │ │ │ + 698: aload 12 │ │ │ │ + 700: areturn │ │ │ │ │ │ │ │ byte[] getCodewords(); │ │ │ │ descriptor: ()[B │ │ │ │ flags: │ │ │ │ Code: │ │ │ │ stack=300, locals=1, args_size=1 │ │ │ │ 0: aload_0 │ │ ├── com/google/zxing/datamatrix/decoder/DecodedBitStreamParser.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -204,23 +204,23 @@ │ │ │ │ #199 = Utf8 ISO8859_1 │ │ │ │ #200 = String #199 // ISO8859_1 │ │ │ │ #201 = Utf8 ([BLjava/lang/String;)V │ │ │ │ #202 = NameAndType #24:#201 // "":([BLjava/lang/String;)V │ │ │ │ #203 = Methodref #198.#202 // java/lang/String."":([BLjava/lang/String;)V │ │ │ │ #204 = Utf8 java/lang/IllegalStateException │ │ │ │ #205 = Class #204 // java/lang/IllegalStateException │ │ │ │ - #206 = Methodref #34.#26 // java/lang/StringBuilder."":()V │ │ │ │ - #207 = Utf8 Platform does not support required encoding: │ │ │ │ - #208 = String #207 // Platform does not support required encoding: │ │ │ │ - #209 = Utf8 (Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ - #210 = NameAndType #63:#209 // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ - #211 = Methodref #34.#210 // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ - #212 = Utf8 (Ljava/lang/String;)V │ │ │ │ - #213 = NameAndType #24:#212 // "":(Ljava/lang/String;)V │ │ │ │ - #214 = Methodref #205.#213 // java/lang/IllegalStateException."":(Ljava/lang/String;)V │ │ │ │ + #206 = Utf8 Platform does not support required encoding: │ │ │ │ + #207 = String #206 // Platform does not support required encoding: │ │ │ │ + #208 = Utf8 (Ljava/lang/String;)V │ │ │ │ + #209 = NameAndType #24:#208 // "":(Ljava/lang/String;)V │ │ │ │ + #210 = Methodref #34.#209 // java/lang/StringBuilder."":(Ljava/lang/String;)V │ │ │ │ + #211 = Utf8 (Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ + #212 = NameAndType #63:#211 // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ + #213 = Methodref #34.#212 // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ + #214 = Methodref #205.#209 // java/lang/IllegalStateException."":(Ljava/lang/String;)V │ │ │ │ #215 = Utf8 java/io/UnsupportedEncodingException │ │ │ │ #216 = Class #215 // java/io/UnsupportedEncodingException │ │ │ │ #217 = Float 4.2E-44f │ │ │ │ #218 = Float 2.24E-44f │ │ │ │ #219 = Float 5.6E-45f │ │ │ │ #220 = Float 8.4E-45f │ │ │ │ #221 = Float 4.3E-44f │ │ │ │ @@ -1379,27 +1379,26 @@ │ │ │ │ 244: return │ │ │ │ 245: astore 14 │ │ │ │ 247: new #205 // class java/lang/IllegalStateException │ │ │ │ 250: astore 12 │ │ │ │ 252: new #34 // class java/lang/StringBuilder │ │ │ │ 255: astore 13 │ │ │ │ 257: aload 13 │ │ │ │ - 259: invokespecial #206 // Method java/lang/StringBuilder."":()V │ │ │ │ - 262: aload 13 │ │ │ │ - 264: ldc #208 // String Platform does not support required encoding: │ │ │ │ - 266: invokevirtual #159 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - 269: aload 14 │ │ │ │ - 271: invokevirtual #211 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ - 274: invokevirtual #72 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ - 277: astore 13 │ │ │ │ - 279: aload 12 │ │ │ │ - 281: aload 13 │ │ │ │ - 283: invokespecial #214 // Method java/lang/IllegalStateException."":(Ljava/lang/String;)V │ │ │ │ - 286: aload 12 │ │ │ │ - 288: athrow │ │ │ │ + 259: ldc #207 // String Platform does not support required encoding: │ │ │ │ + 261: invokespecial #210 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V │ │ │ │ + 264: aload 13 │ │ │ │ + 266: aload 14 │ │ │ │ + 268: invokevirtual #213 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ + 271: invokevirtual #72 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ + 274: astore 13 │ │ │ │ + 276: aload 12 │ │ │ │ + 278: aload 13 │ │ │ │ + 280: invokespecial #214 // Method java/lang/IllegalStateException."":(Ljava/lang/String;)V │ │ │ │ + 283: aload 12 │ │ │ │ + 285: athrow │ │ │ │ Exception table: │ │ │ │ from to target type │ │ │ │ 219 222 245 Class java/io/UnsupportedEncodingException │ │ │ │ 232 237 245 Class java/io/UnsupportedEncodingException │ │ │ │ 238 244 245 Class java/io/UnsupportedEncodingException │ │ │ │ │ │ │ │ private static void decodeC40Segment(com.google.zxing.common.BitSource, java.lang.StringBuilder); │ │ ├── com/google/zxing/datamatrix/decoder/Decoder.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -18,42 +18,44 @@ │ │ │ │ │ │ │ │ private void correctErrors(final byte[] array, final int n) { │ │ │ │ final int length = array.length; │ │ │ │ final int[] array2 = new int[length]; │ │ │ │ for (int i = 0; i < length; ++i) { │ │ │ │ array2[i] = (array[i] & 0xFF); │ │ │ │ } │ │ │ │ - final int n2 = array.length - n; │ │ │ │ try { │ │ │ │ - this.rsDecoder.decode(array2, n2); │ │ │ │ - for (int j = 0; j < n; ++j) { │ │ │ │ - array[j] = (byte)array2[j]; │ │ │ │ + final ReedSolomonDecoder rsDecoder = this.rsDecoder; │ │ │ │ + try { │ │ │ │ + rsDecoder.decode(array2, array.length - n); │ │ │ │ + for (int j = 0; j < n; ++j) { │ │ │ │ + array[j] = (byte)array2[j]; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + catch (ReedSolomonException ex) { │ │ │ │ + throw ChecksumException.getChecksumInstance(); │ │ │ │ } │ │ │ │ } │ │ │ │ - catch (ReedSolomonException ex) { │ │ │ │ - throw ChecksumException.getChecksumInstance(); │ │ │ │ - } │ │ │ │ + catch (ReedSolomonException ex2) {} │ │ │ │ } │ │ │ │ │ │ │ │ public DecoderResult decode(final BitMatrix bitMatrix) { │ │ │ │ final BitMatrixParser bitMatrixParser = new BitMatrixParser(bitMatrix); │ │ │ │ final DataBlock[] dataBlocks = DataBlock.getDataBlocks(bitMatrixParser.readCodewords(), bitMatrixParser.getVersion()); │ │ │ │ - final int length = dataBlocks.length; │ │ │ │ int n = 0; │ │ │ │ - for (int length2 = dataBlocks.length, i = 0; i < length2; ++i) { │ │ │ │ + for (int length = dataBlocks.length, i = 0; i < length; ++i) { │ │ │ │ n += dataBlocks[i].getNumDataCodewords(); │ │ │ │ } │ │ │ │ final byte[] array = new byte[n]; │ │ │ │ - for (int j = 0; j < length; ++j) { │ │ │ │ + for (int length2 = dataBlocks.length, j = 0; j < length2; ++j) { │ │ │ │ final DataBlock dataBlock = dataBlocks[j]; │ │ │ │ final byte[] codewords = dataBlock.getCodewords(); │ │ │ │ final int numDataCodewords = dataBlock.getNumDataCodewords(); │ │ │ │ this.correctErrors(codewords, numDataCodewords); │ │ │ │ for (int k = 0; k < numDataCodewords; ++k) { │ │ │ │ - array[k * length + j] = codewords[k]; │ │ │ │ + array[k * length2 + j] = codewords[k]; │ │ │ │ } │ │ │ │ } │ │ │ │ return DecodedBitStreamParser.decode(array); │ │ │ │ } │ │ │ │ │ │ │ │ public DecoderResult decode(final boolean[][] array) { │ │ │ │ final int length = array.length; │ │ ├── com/google/zxing/datamatrix/detector/Detector$ResultPointsAndTransitions.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -19,15 +19,15 @@ │ │ │ │ return this.from; │ │ │ │ } │ │ │ │ │ │ │ │ ResultPoint getTo() { │ │ │ │ return this.to; │ │ │ │ } │ │ │ │ │ │ │ │ - public int getTransitions() { │ │ │ │ + int getTransitions() { │ │ │ │ return this.transitions; │ │ │ │ } │ │ │ │ │ │ │ │ public String toString() { │ │ │ │ return this.from + "/" + this.to + '/' + this.transitions; │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/datamatrix/detector/Detector$ResultPointsAndTransitionsComparator.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,12 +1,12 @@ │ │ │ │ │ │ │ │ package com.google.zxing.datamatrix.detector; │ │ │ │ │ │ │ │ -import java.io.Serializable; │ │ │ │ import java.util.Comparator; │ │ │ │ +import java.io.Serializable; │ │ │ │ │ │ │ │ -final class Detector$ResultPointsAndTransitionsComparator implements Comparator, Serializable │ │ │ │ +final class Detector$ResultPointsAndTransitionsComparator implements Serializable, Comparator │ │ │ │ { │ │ │ │ public int compare(final Detector$ResultPointsAndTransitions detector$ResultPointsAndTransitions, final Detector$ResultPointsAndTransitions detector$ResultPointsAndTransitions2) { │ │ │ │ return detector$ResultPointsAndTransitions.getTransitions() - detector$ResultPointsAndTransitions2.getTransitions(); │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/datamatrix/detector/Detector.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -25,30 +25,30 @@ │ │ │ │ this.image = image; │ │ │ │ this.rectangleDetector = new WhiteRectangleDetector(image); │ │ │ │ } │ │ │ │ │ │ │ │ private ResultPoint correctTopRight(final ResultPoint resultPoint, final ResultPoint resultPoint2, final ResultPoint resultPoint3, final ResultPoint resultPoint4, final int n) { │ │ │ │ final float n2 = distance(resultPoint, resultPoint2) / n; │ │ │ │ final int distance = distance(resultPoint3, resultPoint4); │ │ │ │ - ResultPoint resultPoint5 = new ResultPoint(resultPoint4.getX() + n2 * ((resultPoint4.getX() - resultPoint3.getX()) / distance), resultPoint4.getY() + n2 * ((resultPoint4.getY() - resultPoint3.getY()) / distance)); │ │ │ │ + final ResultPoint resultPoint5 = new ResultPoint(resultPoint4.getX() + n2 * ((resultPoint4.getX() - resultPoint3.getX()) / distance), resultPoint4.getY() + n2 * ((resultPoint4.getY() - resultPoint3.getY()) / distance)); │ │ │ │ final float n3 = distance(resultPoint, resultPoint3) / n; │ │ │ │ final int distance2 = distance(resultPoint2, resultPoint4); │ │ │ │ - final ResultPoint resultPoint6 = new ResultPoint(resultPoint4.getX() + n3 * ((resultPoint4.getX() - resultPoint2.getX()) / distance2), resultPoint4.getY() + n3 * ((resultPoint4.getY() - resultPoint2.getY()) / distance2)); │ │ │ │ + ResultPoint resultPoint6 = new ResultPoint(resultPoint4.getX() + n3 * ((resultPoint4.getX() - resultPoint2.getX()) / distance2), resultPoint4.getY() + n3 * ((resultPoint4.getY() - resultPoint2.getY()) / distance2)); │ │ │ │ if (!this.isValid(resultPoint5)) { │ │ │ │ - if (this.isValid(resultPoint6)) { │ │ │ │ - resultPoint5 = resultPoint6; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - resultPoint5 = null; │ │ │ │ + if (!this.isValid(resultPoint6)) { │ │ │ │ + resultPoint6 = null; │ │ │ │ } │ │ │ │ } │ │ │ │ - else if (this.isValid(resultPoint6) && Math.abs(this.transitionsBetween(resultPoint3, resultPoint5).getTransitions() - this.transitionsBetween(resultPoint2, resultPoint5).getTransitions()) > Math.abs(this.transitionsBetween(resultPoint3, resultPoint6).getTransitions() - this.transitionsBetween(resultPoint2, resultPoint6).getTransitions())) { │ │ │ │ - resultPoint5 = resultPoint6; │ │ │ │ + else if (!this.isValid(resultPoint6)) { │ │ │ │ + resultPoint6 = resultPoint5; │ │ │ │ + } │ │ │ │ + else if (Math.abs(this.transitionsBetween(resultPoint3, resultPoint5).getTransitions() - this.transitionsBetween(resultPoint2, resultPoint5).getTransitions()) <= Math.abs(this.transitionsBetween(resultPoint3, resultPoint6).getTransitions() - this.transitionsBetween(resultPoint2, resultPoint6).getTransitions())) { │ │ │ │ + resultPoint6 = resultPoint5; │ │ │ │ } │ │ │ │ - return resultPoint5; │ │ │ │ + return resultPoint6; │ │ │ │ } │ │ │ │ │ │ │ │ private ResultPoint correctTopRightRectangular(final ResultPoint resultPoint, final ResultPoint resultPoint2, final ResultPoint resultPoint3, final ResultPoint resultPoint4, final int n, final int n2) { │ │ │ │ final float n3 = distance(resultPoint, resultPoint2) / n; │ │ │ │ final int distance = distance(resultPoint3, resultPoint4); │ │ │ │ final ResultPoint resultPoint5 = new ResultPoint(resultPoint4.getX() + n3 * ((resultPoint4.getX() - resultPoint3.getX()) / distance), resultPoint4.getY() + n3 * ((resultPoint4.getY() - resultPoint3.getY()) / distance)); │ │ │ │ final float n4 = distance(resultPoint, resultPoint3) / n2; │ │ ├── com/google/zxing/datamatrix/encoder/DefaultPlacement.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -65,14 +65,18 @@ │ │ │ │ this.module(0, this.numcols - 2, n, 4); │ │ │ │ this.module(0, this.numcols - 1, n, 5); │ │ │ │ this.module(n2, this.numcols - 3, n, 6); │ │ │ │ this.module(n2, this.numcols - 2, n, 7); │ │ │ │ this.module(n2, this.numcols - 1, n, 8); │ │ │ │ } │ │ │ │ │ │ │ │ + private boolean hasBit(final int n, final int n2) { │ │ │ │ + return this.bits[this.numcols * n2 + n] >= 0; │ │ │ │ + } │ │ │ │ + │ │ │ │ private void module(int n, int n2, final int n3, final int n4) { │ │ │ │ int n5 = 1; │ │ │ │ if (n < 0) { │ │ │ │ n += this.numrows; │ │ │ │ n2 += 4 - (this.numrows + 4) % 8; │ │ │ │ } │ │ │ │ if (n2 < 0) { │ │ │ │ @@ -81,14 +85,27 @@ │ │ │ │ } │ │ │ │ if ((this.codewords.charAt(n3) & n5 << 8 - n4) == 0x0) { │ │ │ │ n5 = 0; │ │ │ │ } │ │ │ │ this.setBit(n2, n, n5 != 0); │ │ │ │ } │ │ │ │ │ │ │ │ + private void setBit(final int n, final int n2, final boolean b) { │ │ │ │ + final byte[] bits = this.bits; │ │ │ │ + final int n3 = this.numcols * n2 + n; │ │ │ │ + boolean b2; │ │ │ │ + if (b) { │ │ │ │ + b2 = true; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + b2 = false; │ │ │ │ + } │ │ │ │ + bits[n3] = (byte)(b2 ? 1 : 0); │ │ │ │ + } │ │ │ │ + │ │ │ │ private void utah(final int n, final int n2, final int n3) { │ │ │ │ this.module(n - 2, n2 - 2, n3, 1); │ │ │ │ this.module(n - 2, n2 - 1, n3, 2); │ │ │ │ this.module(n - 1, n2 - 2, n3, 3); │ │ │ │ this.module(n - 1, n2 - 1, n3, 4); │ │ │ │ this.module(n - 1, n2, n3, 5); │ │ │ │ this.module(n, n2 - 2, n3, 6); │ │ │ │ @@ -112,18 +129,14 @@ │ │ │ │ return this.numcols; │ │ │ │ } │ │ │ │ │ │ │ │ final int getNumrows() { │ │ │ │ return this.numrows; │ │ │ │ } │ │ │ │ │ │ │ │ - final boolean hasBit(final int n, final int n2) { │ │ │ │ - return this.bits[this.numcols * n2 + n] >= 0; │ │ │ │ - } │ │ │ │ - │ │ │ │ public final void place() { │ │ │ │ final boolean b = true; │ │ │ │ int n = 0; │ │ │ │ int n2 = 4; │ │ │ │ int n3 = 0; │ │ │ │ do { │ │ │ │ if (n2 == this.numrows && n3 == 0) { │ │ │ │ @@ -177,21 +190,8 @@ │ │ │ │ n3 = n10 + 1; │ │ │ │ } while (n2 < this.numrows || n3 < this.numcols); │ │ │ │ if (!this.hasBit(this.numcols - 1, this.numrows - 1)) { │ │ │ │ this.setBit(this.numcols - 1, this.numrows - 1, b); │ │ │ │ this.setBit(this.numcols - 2, this.numrows - 2, b); │ │ │ │ } │ │ │ │ } │ │ │ │ - │ │ │ │ - final void setBit(final int n, final int n2, final boolean b) { │ │ │ │ - final byte[] bits = this.bits; │ │ │ │ - final int n3 = this.numcols * n2 + n; │ │ │ │ - byte b2; │ │ │ │ - if (b) { │ │ │ │ - b2 = 1; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - b2 = 0; │ │ │ │ - } │ │ │ │ - bits[n3] = b2; │ │ │ │ - } │ │ │ │ } │ │ ├── com/google/zxing/datamatrix/encoder/ErrorCorrection.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -550,15 +550,15 @@ │ │ │ │ FACTORS = factors; │ │ │ │ LOG = new int[256]; │ │ │ │ ALOG = new int[255]; │ │ │ │ int n7 = 1; │ │ │ │ for (int i = 0; i < 255; ++i) { │ │ │ │ ErrorCorrection.ALOG[i] = n7; │ │ │ │ ErrorCorrection.LOG[n7] = i; │ │ │ │ - n7 *= 2; │ │ │ │ + n7 <<= 1; │ │ │ │ if (n7 >= 256) { │ │ │ │ n7 ^= 0x12D; │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ private static String createECCBlock(final CharSequence charSequence, final int n) { │ │ ├── com/google/zxing/datamatrix/encoder/HighLevelEncoder.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -62,20 +62,20 @@ │ │ │ │ array[n] = (Encoder)new Base256Encoder(); │ │ │ │ final EncoderContext encoderContext = new EncoderContext(s); │ │ │ │ encoderContext.setSymbolShape(symbolShape); │ │ │ │ encoderContext.setSizeConstraints(dimension, dimension2); │ │ │ │ if (s.startsWith("[)>\u001e05\u001d") && s.endsWith("\u001e\u0004")) { │ │ │ │ encoderContext.writeCodeword('\u00ec'); │ │ │ │ encoderContext.setSkipAtEnd(n2); │ │ │ │ - encoderContext.pos += "[)>\u001e05\u001d".length(); │ │ │ │ + encoderContext.pos += 7; │ │ │ │ } │ │ │ │ else if (s.startsWith("[)>\u001e06\u001d") && s.endsWith("\u001e\u0004")) { │ │ │ │ encoderContext.writeCodeword('\u00ed'); │ │ │ │ encoderContext.setSkipAtEnd(n2); │ │ │ │ - encoderContext.pos += "[)>\u001e06\u001d".length(); │ │ │ │ + encoderContext.pos += 7; │ │ │ │ } │ │ │ │ int newEncoding = 0; │ │ │ │ while (encoderContext.hasMoreCharacters()) { │ │ │ │ array[newEncoding].encode(encoderContext); │ │ │ │ if (encoderContext.getNewEncoding() >= 0) { │ │ │ │ newEncoding = encoderContext.getNewEncoding(); │ │ │ │ encoderContext.resetEncoderSignal(); │ │ │ │ @@ -179,22 +179,22 @@ │ │ │ │ array[n2] = 0.0f; │ │ │ │ } │ │ │ │ int n3 = 0; │ │ │ │ while (n + n3 != charSequence.length()) { │ │ │ │ final char char1 = charSequence.charAt(n + n3); │ │ │ │ ++n3; │ │ │ │ if (isDigit(char1)) { │ │ │ │ - array[0] += 0.5; │ │ │ │ + array[0] += 0.5f; │ │ │ │ } │ │ │ │ else if (isExtendedASCII(char1)) { │ │ │ │ - array[0] = (int)Math.ceil(array[0]); │ │ │ │ + array[0] = (float)Math.ceil(array[0]); │ │ │ │ array[0] += 2.0f; │ │ │ │ } │ │ │ │ else { │ │ │ │ - array[0] = (int)Math.ceil(array[0]); │ │ │ │ + array[0] = (float)Math.ceil(array[0]); │ │ │ │ ++array[0]; │ │ │ │ } │ │ │ │ if (isNativeC40(char1)) { │ │ │ │ final int n4 = 1; │ │ │ │ array[n4] += 0.6666667f; │ │ │ │ } │ │ │ │ else if (isExtendedASCII(char1)) { │ │ │ │ @@ -321,18 +321,14 @@ │ │ │ │ n2 = 1; │ │ │ │ } │ │ │ │ } │ │ │ │ return n2; │ │ │ │ } │ │ │ │ │ │ │ │ private static char randomize253State(final char c, final int n) { │ │ │ │ - final int n2 = c + (n * 149 % 253 + 1); │ │ │ │ - char c2; │ │ │ │ - if (n2 <= 254) { │ │ │ │ - c2 = (char)n2; │ │ │ │ + int n2 = c + (n * 149 % 253 + 1); │ │ │ │ + if (n2 > 254) { │ │ │ │ + n2 -= 254; │ │ │ │ } │ │ │ │ - else { │ │ │ │ - c2 = (char)(n2 - 254); │ │ │ │ - } │ │ │ │ - return c2; │ │ │ │ + return (char)n2; │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/datamatrix/encoder/SymbolInfo.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -13,16 +13,15 @@ │ │ │ │ public final int matrixHeight; │ │ │ │ public final int matrixWidth; │ │ │ │ private final boolean rectangular; │ │ │ │ private final int rsBlockData; │ │ │ │ private final int rsBlockError; │ │ │ │ │ │ │ │ static { │ │ │ │ - PROD_SYMBOLS = new SymbolInfo[] { new SymbolInfo(false, 3, 5, 8, 8, 1), new SymbolInfo(false, 5, 7, 10, 10, 1), new SymbolInfo(true, 5, 7, 16, 6, 1), new SymbolInfo(false, 8, 10, 12, 12, 1), new SymbolInfo(true, 10, 11, 14, 6, 2), new SymbolInfo(false, 12, 12, 14, 14, 1), new SymbolInfo(true, 16, 14, 24, 10, 1), new SymbolInfo(false, 18, 14, 16, 16, 1), new SymbolInfo(false, 22, 18, 18, 18, 1), new SymbolInfo(true, 22, 18, 16, 10, 2), new SymbolInfo(false, 30, 20, 20, 20, 1), new SymbolInfo(true, 32, 24, 16, 14, 2), new SymbolInfo(false, 36, 24, 22, 22, 1), new SymbolInfo(false, 44, 28, 24, 24, 1), new SymbolInfo(true, 49, 28, 22, 14, 2), new SymbolInfo(false, 62, 36, 14, 14, 4), new SymbolInfo(false, 86, 42, 16, 16, 4), new SymbolInfo(false, 114, 48, 18, 18, 4), new SymbolInfo(false, 144, 56, 20, 20, 4), new SymbolInfo(false, 174, 68, 22, 22, 4), new SymbolInfo(false, 204, 84, 24, 24, 4, 102, 42), new SymbolInfo(false, 280, 112, 14, 14, 16, 140, 56), new SymbolInfo(false, 368, 144, 16, 16, 16, 92, 36), new SymbolInfo(false, 456, 192, 18, 18, 16, 114, 48), new SymbolInfo(false, 576, 224, 20, 20, 16, 144, 56), new SymbolInfo(false, 696, 272, 22, 22, 16, 174, 68), new SymbolInfo(false, 816, 336, 24, 24, 16, 136, 56), new SymbolInfo(false, 1050, 408, 18, 18, 36, 175, 68), new SymbolInfo(false, 1304, 496, 20, 20, 36, 163, 62), new DataMatrixSymbolInfo144() }; │ │ │ │ - SymbolInfo.symbols = SymbolInfo.PROD_SYMBOLS; │ │ │ │ + SymbolInfo.symbols = (PROD_SYMBOLS = new SymbolInfo[] { new SymbolInfo(false, 3, 5, 8, 8, 1), new SymbolInfo(false, 5, 7, 10, 10, 1), new SymbolInfo(true, 5, 7, 16, 6, 1), new SymbolInfo(false, 8, 10, 12, 12, 1), new SymbolInfo(true, 10, 11, 14, 6, 2), new SymbolInfo(false, 12, 12, 14, 14, 1), new SymbolInfo(true, 16, 14, 24, 10, 1), new SymbolInfo(false, 18, 14, 16, 16, 1), new SymbolInfo(false, 22, 18, 18, 18, 1), new SymbolInfo(true, 22, 18, 16, 10, 2), new SymbolInfo(false, 30, 20, 20, 20, 1), new SymbolInfo(true, 32, 24, 16, 14, 2), new SymbolInfo(false, 36, 24, 22, 22, 1), new SymbolInfo(false, 44, 28, 24, 24, 1), new SymbolInfo(true, 49, 28, 22, 14, 2), new SymbolInfo(false, 62, 36, 14, 14, 4), new SymbolInfo(false, 86, 42, 16, 16, 4), new SymbolInfo(false, 114, 48, 18, 18, 4), new SymbolInfo(false, 144, 56, 20, 20, 4), new SymbolInfo(false, 174, 68, 22, 22, 4), new SymbolInfo(false, 204, 84, 24, 24, 4, 102, 42), new SymbolInfo(false, 280, 112, 14, 14, 16, 140, 56), new SymbolInfo(false, 368, 144, 16, 16, 16, 92, 36), new SymbolInfo(false, 456, 192, 18, 18, 16, 114, 48), new SymbolInfo(false, 576, 224, 20, 20, 16, 144, 56), new SymbolInfo(false, 696, 272, 22, 22, 16, 174, 68), new SymbolInfo(false, 816, 336, 24, 24, 16, 136, 56), new SymbolInfo(false, 1050, 408, 18, 18, 36, 175, 68), new SymbolInfo(false, 1304, 496, 20, 20, 36, 163, 62), new DataMatrixSymbolInfo144() }); │ │ │ │ } │ │ │ │ │ │ │ │ public SymbolInfo(final boolean b, final int n, final int n2, final int n3, final int n4, final int n5) { │ │ │ │ this(b, n, n2, n3, n4, n5, n, n2); │ │ │ │ } │ │ │ │ │ │ │ │ SymbolInfo(final boolean rectangular, final int dataCapacity, final int errorCodewords, final int matrixWidth, final int matrixHeight, final int dataRegions, final int rsBlockData, final int rsBlockError) { │ │ │ │ @@ -32,14 +31,68 @@ │ │ │ │ this.matrixWidth = matrixWidth; │ │ │ │ this.matrixHeight = matrixHeight; │ │ │ │ this.dataRegions = dataRegions; │ │ │ │ this.rsBlockData = rsBlockData; │ │ │ │ this.rsBlockError = rsBlockError; │ │ │ │ } │ │ │ │ │ │ │ │ + private int getHorizontalDataRegions() { │ │ │ │ + int n = 0; │ │ │ │ + switch (this.dataRegions) { │ │ │ │ + default: { │ │ │ │ + throw new IllegalStateException("Cannot handle this number of data regions"); │ │ │ │ + } │ │ │ │ + case 1: { │ │ │ │ + n = 1; │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + case 2: │ │ │ │ + case 4: { │ │ │ │ + n = 2; │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + case 16: { │ │ │ │ + n = 4; │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + case 36: { │ │ │ │ + n = 6; │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + return n; │ │ │ │ + } │ │ │ │ + │ │ │ │ + private int getVerticalDataRegions() { │ │ │ │ + int n = 0; │ │ │ │ + switch (this.dataRegions) { │ │ │ │ + default: { │ │ │ │ + throw new IllegalStateException("Cannot handle this number of data regions"); │ │ │ │ + } │ │ │ │ + case 1: │ │ │ │ + case 2: { │ │ │ │ + n = 1; │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + case 4: { │ │ │ │ + n = 2; │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + case 16: { │ │ │ │ + n = 4; │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + case 36: { │ │ │ │ + n = 6; │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + return n; │ │ │ │ + } │ │ │ │ + │ │ │ │ public static SymbolInfo lookup(final int n) { │ │ │ │ return lookup(n, SymbolShapeHint.FORCE_NONE, true); │ │ │ │ } │ │ │ │ │ │ │ │ public static SymbolInfo lookup(final int n, final SymbolShapeHint symbolShapeHint) { │ │ │ │ return lookup(n, symbolShapeHint, true); │ │ │ │ } │ │ │ │ @@ -93,93 +146,40 @@ │ │ │ │ return this.errorCodewords; │ │ │ │ } │ │ │ │ │ │ │ │ public final int getErrorLengthForInterleavedBlock(final int n) { │ │ │ │ return this.rsBlockError; │ │ │ │ } │ │ │ │ │ │ │ │ - final int getHorizontalDataRegions() { │ │ │ │ - int n = 2; │ │ │ │ - switch (this.dataRegions) { │ │ │ │ - default: { │ │ │ │ - throw new IllegalStateException("Cannot handle this number of data regions"); │ │ │ │ - } │ │ │ │ - case 1: { │ │ │ │ - n = 1; │ │ │ │ - return n; │ │ │ │ - } │ │ │ │ - case 36: { │ │ │ │ - n = 6; │ │ │ │ - return n; │ │ │ │ - } │ │ │ │ - case 16: { │ │ │ │ - n = 4; │ │ │ │ - } │ │ │ │ - case 2: │ │ │ │ - case 4: { │ │ │ │ - return n; │ │ │ │ - } │ │ │ │ - } │ │ │ │ - } │ │ │ │ - │ │ │ │ public int getInterleavedBlockCount() { │ │ │ │ return this.dataCapacity / this.rsBlockData; │ │ │ │ } │ │ │ │ │ │ │ │ public final int getSymbolDataHeight() { │ │ │ │ return this.getVerticalDataRegions() * this.matrixHeight; │ │ │ │ } │ │ │ │ │ │ │ │ public final int getSymbolDataWidth() { │ │ │ │ return this.getHorizontalDataRegions() * this.matrixWidth; │ │ │ │ } │ │ │ │ │ │ │ │ public final int getSymbolHeight() { │ │ │ │ - return this.getSymbolDataHeight() + this.getVerticalDataRegions() * 2; │ │ │ │ + return this.getSymbolDataHeight() + (this.getVerticalDataRegions() << 1); │ │ │ │ } │ │ │ │ │ │ │ │ public final int getSymbolWidth() { │ │ │ │ - return this.getSymbolDataWidth() + this.getHorizontalDataRegions() * 2; │ │ │ │ - } │ │ │ │ - │ │ │ │ - final int getVerticalDataRegions() { │ │ │ │ - int n = 1; │ │ │ │ - switch (this.dataRegions) { │ │ │ │ - default: { │ │ │ │ - throw new IllegalStateException("Cannot handle this number of data regions"); │ │ │ │ - } │ │ │ │ - case 4: { │ │ │ │ - n = 2; │ │ │ │ - return n; │ │ │ │ - } │ │ │ │ - case 36: { │ │ │ │ - n = 6; │ │ │ │ - return n; │ │ │ │ - } │ │ │ │ - case 16: { │ │ │ │ - n = 4; │ │ │ │ - } │ │ │ │ - case 1: │ │ │ │ - case 2: { │ │ │ │ - return n; │ │ │ │ - } │ │ │ │ - } │ │ │ │ + return this.getSymbolDataWidth() + (this.getHorizontalDataRegions() << 1); │ │ │ │ } │ │ │ │ │ │ │ │ public final String toString() { │ │ │ │ final char c = 'x'; │ │ │ │ final StringBuilder sb = new StringBuilder(); │ │ │ │ String s; │ │ │ │ if (this.rectangular) { │ │ │ │ s = "Rectangular Symbol:"; │ │ │ │ } │ │ │ │ else { │ │ │ │ s = "Square Symbol:"; │ │ │ │ } │ │ │ │ - sb.append(s); │ │ │ │ - sb.append(" data region ").append(this.matrixWidth).append(c).append(this.matrixHeight); │ │ │ │ - sb.append(", symbol size ").append(this.getSymbolWidth()).append(c).append(this.getSymbolHeight()); │ │ │ │ - sb.append(", symbol data size ").append(this.getSymbolDataWidth()).append(c).append(this.getSymbolDataHeight()); │ │ │ │ - sb.append(", codewords ").append(this.dataCapacity).append('+').append(this.errorCodewords); │ │ │ │ - return sb.toString(); │ │ │ │ + return sb.append(s).append(" data region ").append(this.matrixWidth).append(c).append(this.matrixHeight).append(", symbol size ").append(this.getSymbolWidth()).append(c).append(this.getSymbolHeight()).append(", symbol data size ").append(this.getSymbolDataWidth()).append(c).append(this.getSymbolDataHeight()).append(", codewords ").append(this.dataCapacity).append('+').append(this.errorCodewords).toString(); │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/integration/android/IntentResult.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -39,23 +39,17 @@ │ │ │ │ │ │ │ │ public byte[] getRawBytes() { │ │ │ │ return this.rawBytes; │ │ │ │ } │ │ │ │ │ │ │ │ public String toString() { │ │ │ │ final char c = '\n'; │ │ │ │ - final StringBuilder sb = new StringBuilder(100); │ │ │ │ - sb.append("Format: ").append(this.formatName).append(c); │ │ │ │ - sb.append("Contents: ").append(this.contents).append(c); │ │ │ │ int length; │ │ │ │ if (this.rawBytes == null) { │ │ │ │ length = 0; │ │ │ │ } │ │ │ │ else { │ │ │ │ length = this.rawBytes.length; │ │ │ │ } │ │ │ │ - sb.append("Raw bytes: (").append(length).append(" bytes)\n"); │ │ │ │ - sb.append("Orientation: ").append(this.orientation).append(c); │ │ │ │ - sb.append("EC level: ").append(this.errorCorrectionLevel).append(c); │ │ │ │ - return sb.toString(); │ │ │ │ + return "Format: " + this.formatName + c + "Contents: " + this.contents + c + "Raw bytes: (" + length + " bytes)\nOrientation: " + this.orientation + c + "EC level: " + this.errorCorrectionLevel + c; │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/maxicode/decoder/DecodedBitStreamParser.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -2,43 +2,38 @@ │ │ │ │ package com.google.zxing.maxicode.decoder; │ │ │ │ │ │ │ │ import java.io.ObjectInputStream; │ │ │ │ import java.io.IOException; │ │ │ │ import java.io.ObjectOutputStream; │ │ │ │ import java.io.Serializable; │ │ │ │ import java.util.List; │ │ │ │ -import com.google.zxing.common.DecoderResult; │ │ │ │ import java.text.DecimalFormat; │ │ │ │ -import java.text.NumberFormat; │ │ │ │ +import com.google.zxing.common.DecoderResult; │ │ │ │ │ │ │ │ final class DecodedBitStreamParser │ │ │ │ { │ │ │ │ private static final char ECI = '\ufffa'; │ │ │ │ private static final char FS = '\u001c'; │ │ │ │ private static final char GS = '\u001d'; │ │ │ │ private static final char LATCHA = '\ufff7'; │ │ │ │ private static final char LATCHB = '\ufff8'; │ │ │ │ private static final char LOCK = '\ufff9'; │ │ │ │ - private static final NumberFormat NINE_DIGITS; │ │ │ │ private static final char NS = '\ufffb'; │ │ │ │ private static final char PAD = '\ufffc'; │ │ │ │ private static final char RS = '\u001e'; │ │ │ │ private static final String[] SETS; │ │ │ │ private static final char SHIFTA = '\ufff0'; │ │ │ │ private static final char SHIFTB = '\ufff1'; │ │ │ │ private static final char SHIFTC = '\ufff2'; │ │ │ │ private static final char SHIFTD = '\ufff3'; │ │ │ │ private static final char SHIFTE = '\ufff4'; │ │ │ │ private static final char THREESHIFTA = '\ufff6'; │ │ │ │ - private static final NumberFormat THREE_DIGITS; │ │ │ │ private static final char TWOSHIFTA = '\ufff5'; │ │ │ │ │ │ │ │ static { │ │ │ │ - NINE_DIGITS = new DecimalFormat("000000000"); │ │ │ │ - THREE_DIGITS = new DecimalFormat("000"); │ │ │ │ SETS = new String[] { "\nABCDEFGHIJKLMNOPQRSTUVWXYZ\ufffa\u001c\u001d\u001e\ufffb \ufffc\"#$%&'()*+,-./0123456789:\ufff1\ufff2\ufff3\ufff4\ufff8", "`abcdefghijklmnopqrstuvwxyz\ufffa\u001c\u001d\u001e\ufffb{\ufffc}~\u007f;<=>?[\\]^_ ,./:@!|\ufffc\ufff5\ufff6\ufffc\ufff0\ufff2\ufff3\ufff4\ufff7", "\u00c0\u00c1\u00c2\u00c3\u00c4\u00c5\u00c6\u00c7\u00c8\u00c9\u00ca\u00cb\u00cc\u00cd\u00ce\u00cf\u00d0\u00d1\u00d2\u00d3\u00d4\u00d5\u00d6\u00d7\u00d8\u00d9\u00da\ufffa\u001c\u001d\u001e\u00db\u00dc\u00dd\u00de\u00dfª¬±²³µ¹º¼½¾\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087\u0088\u0089\ufff7 \ufff9\ufff3\ufff4\ufff8", "\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5\u00e6\u00e7\u00e8\u00e9\u00ea\u00eb\u00ec\u00ed\u00ee\u00ef\u00f0\u00f1\u00f2\u00f3\u00f4\u00f5\u00f6\u00f7\u00f8\u00f9\u00fa\ufffa\u001c\u001d\u001e\ufffb\u00fb\u00fc\u00fd\u00fe\u00ff¡¨«¯°´·¸»¿\u008a\u008b\u008c\u008d\u008e\u008f\u0090\u0091\u0092\u0093\u0094\ufff7 \ufff2\ufff9\ufff4\ufff8", "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\ufffa\ufffc\ufffc\u001b\ufffb\u001c\u001d\u001e\u001f\u009f ¢£¤¥¦§©\u00ad®¶\u0095\u0096\u0097\u0098\u0099\u009a\u009b\u009c\u009d\u009e\ufff7 \ufff2\ufff3\ufff9\ufff8", "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?" }; │ │ │ │ } │ │ │ │ │ │ │ │ static DecoderResult decode(final byte[] array, final int n) { │ │ │ │ final int n2 = 1; │ │ │ │ final char c = '\u001d'; │ │ │ │ final StringBuilder sb = new StringBuilder(144); │ │ │ │ @@ -48,16 +43,17 @@ │ │ │ │ String s; │ │ │ │ if (n == 2) { │ │ │ │ s = new DecimalFormat("0000000000".substring(0, getPostCode2Length(array))).format(getPostCode2(array)); │ │ │ │ } │ │ │ │ else { │ │ │ │ s = getPostCode3(array); │ │ │ │ } │ │ │ │ - final String format = DecodedBitStreamParser.THREE_DIGITS.format(getCountry(array)); │ │ │ │ - final String format2 = DecodedBitStreamParser.THREE_DIGITS.format(getServiceClass(array)); │ │ │ │ + final DecimalFormat decimalFormat = new DecimalFormat("000"); │ │ │ │ + final String format = decimalFormat.format(getCountry(array)); │ │ │ │ + final String format2 = decimalFormat.format(getServiceClass(array)); │ │ │ │ sb.append(getMessage(array, 10, 84)); │ │ │ │ if (sb.toString().startsWith("[)>\u001e01\u001d")) { │ │ │ │ sb.insert(9, s + c + format + c + format2 + c); │ │ │ │ break; │ │ │ │ } │ │ │ │ sb.insert(0, s + c + format + c + format2 + c); │ │ │ │ break; │ │ │ │ @@ -162,15 +158,15 @@ │ │ │ │ final int n9 = n7 + 1; │ │ │ │ final int n10 = n8 + (array[n9] << 18); │ │ │ │ final int n11 = n9 + 1; │ │ │ │ final int n12 = n10 + (array[n11] << 12); │ │ │ │ final int n13 = n11 + 1; │ │ │ │ final int n14 = n12 + (array[n13] << 6); │ │ │ │ i = n13 + 1; │ │ │ │ - sb.append(DecodedBitStreamParser.NINE_DIGITS.format((long)(n14 + array[i]))); │ │ │ │ + sb.append(new DecimalFormat("000000000").format((long)(n14 + array[i]))); │ │ │ │ n6 = n3; │ │ │ │ break; │ │ │ │ } │ │ │ │ case 65529: { │ │ │ │ n6 = -1; │ │ │ │ break; │ │ │ │ } │ │ ├── com/google/zxing/maxicode/decoder/Decoder.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -50,35 +50,39 @@ │ │ │ │ } │ │ │ │ │ │ │ │ public DecoderResult decode(final BitMatrix bitMatrix) { │ │ │ │ return this.decode(bitMatrix, null); │ │ │ │ } │ │ │ │ │ │ │ │ public DecoderResult decode(final BitMatrix bitMatrix, final Map map) { │ │ │ │ + final int n = 2; │ │ │ │ + final int n2 = 1; │ │ │ │ + final int n3 = 10; │ │ │ │ + final int n4 = 20; │ │ │ │ final byte[] codewords = new BitMatrixParser(bitMatrix).readCodewords(); │ │ │ │ - this.correctErrors(codewords, 0, 10, 10, 0); │ │ │ │ + this.correctErrors(codewords, 0, n3, n3, 0); │ │ │ │ final byte b = (byte)(codewords[0] & 0xF); │ │ │ │ byte[] array = null; │ │ │ │ switch (b) { │ │ │ │ default: { │ │ │ │ throw FormatException.getFormatInstance(); │ │ │ │ } │ │ │ │ case 2: │ │ │ │ case 3: │ │ │ │ case 4: { │ │ │ │ - this.correctErrors(codewords, 20, 84, 40, 1); │ │ │ │ - this.correctErrors(codewords, 20, 84, 40, 2); │ │ │ │ + this.correctErrors(codewords, n4, 84, 40, n2); │ │ │ │ + this.correctErrors(codewords, n4, 84, 40, n); │ │ │ │ array = new byte[94]; │ │ │ │ break; │ │ │ │ } │ │ │ │ case 5: { │ │ │ │ - this.correctErrors(codewords, 20, 68, 56, 1); │ │ │ │ - this.correctErrors(codewords, 20, 68, 56, 2); │ │ │ │ + this.correctErrors(codewords, n4, 68, 56, n2); │ │ │ │ + this.correctErrors(codewords, n4, 68, 56, n); │ │ │ │ array = new byte[78]; │ │ │ │ break; │ │ │ │ } │ │ │ │ } │ │ │ │ - System.arraycopy(codewords, 0, array, 0, 10); │ │ │ │ - System.arraycopy(codewords, 20, array, 10, array.length - 10); │ │ │ │ + System.arraycopy(codewords, 0, array, 0, n3); │ │ │ │ + System.arraycopy(codewords, n4, array, n3, array.length - 10); │ │ │ │ return DecodedBitStreamParser.decode(array, (int)b); │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/multi/qrcode/QRCodeMultiReader$SAComparator.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,16 +1,16 @@ │ │ │ │ │ │ │ │ package com.google.zxing.multi.qrcode; │ │ │ │ │ │ │ │ import com.google.zxing.ResultMetadataType; │ │ │ │ import com.google.zxing.Result; │ │ │ │ -import java.io.Serializable; │ │ │ │ import java.util.Comparator; │ │ │ │ +import java.io.Serializable; │ │ │ │ │ │ │ │ -final class QRCodeMultiReader$SAComparator implements Comparator, Serializable │ │ │ │ +final class QRCodeMultiReader$SAComparator implements Serializable, Comparator │ │ │ │ { │ │ │ │ public int compare(final Result result, final Result result2) { │ │ │ │ final int intValue = (int)result.getResultMetadata().get(ResultMetadataType.STRUCTURED_APPEND_SEQUENCE); │ │ │ │ final int intValue2 = (int)result2.getResultMetadata().get(ResultMetadataType.STRUCTURED_APPEND_SEQUENCE); │ │ │ │ int n; │ │ │ │ if (intValue < intValue2) { │ │ │ │ n = -1; │ │ ├── com/google/zxing/multi/qrcode/detector/MultiFinderPatternFinder$ModuleSizeComparator.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ package com.google.zxing.multi.qrcode.detector; │ │ │ │ │ │ │ │ import com.google.zxing.qrcode.detector.FinderPattern; │ │ │ │ -import java.io.Serializable; │ │ │ │ import java.util.Comparator; │ │ │ │ +import java.io.Serializable; │ │ │ │ │ │ │ │ -final class MultiFinderPatternFinder$ModuleSizeComparator implements Comparator, Serializable │ │ │ │ +final class MultiFinderPatternFinder$ModuleSizeComparator implements Serializable, Comparator │ │ │ │ { │ │ │ │ public int compare(final FinderPattern finderPattern, final FinderPattern finderPattern2) { │ │ │ │ final double n = 0.0; │ │ │ │ final float n2 = finderPattern2.getEstimatedModuleSize() - finderPattern.getEstimatedModuleSize(); │ │ │ │ int n3; │ │ │ │ if (n2 < n) { │ │ │ │ n3 = -1; │ │ ├── com/google/zxing/oned/UPCEANExtension2Support.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -4,43 +4,31 @@ │ │ │ │ import java.io.ObjectInputStream; │ │ │ │ import java.io.IOException; │ │ │ │ import java.io.ObjectOutputStream; │ │ │ │ import java.io.Serializable; │ │ │ │ import com.google.zxing.BarcodeFormat; │ │ │ │ import com.google.zxing.ResultPoint; │ │ │ │ import com.google.zxing.Result; │ │ │ │ -import com.google.zxing.NotFoundException; │ │ │ │ -import com.google.zxing.common.BitArray; │ │ │ │ import java.util.EnumMap; │ │ │ │ import com.google.zxing.ResultMetadataType; │ │ │ │ import java.util.Map; │ │ │ │ +import com.google.zxing.NotFoundException; │ │ │ │ +import com.google.zxing.common.BitArray; │ │ │ │ │ │ │ │ final class UPCEANExtension2Support │ │ │ │ { │ │ │ │ private final int[] decodeMiddleCounters; │ │ │ │ private final StringBuilder decodeRowStringBuffer; │ │ │ │ │ │ │ │ UPCEANExtension2Support() { │ │ │ │ this.decodeMiddleCounters = new int[4]; │ │ │ │ this.decodeRowStringBuffer = new StringBuilder(); │ │ │ │ } │ │ │ │ │ │ │ │ - private static Map parseExtensionString(final String s) { │ │ │ │ - Map map; │ │ │ │ - if (s.length() != 2) { │ │ │ │ - map = null; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - map = new EnumMap(ResultMetadataType.class); │ │ │ │ - map.put(ResultMetadataType.ISSUE_NUMBER, Integer.valueOf(s)); │ │ │ │ - } │ │ │ │ - return map; │ │ │ │ - } │ │ │ │ - │ │ │ │ - int decodeMiddle(final BitArray bitArray, final int[] array, final StringBuilder sb) { │ │ │ │ + private int decodeMiddle(final BitArray bitArray, final int[] array, final StringBuilder sb) { │ │ │ │ final int n = 2; │ │ │ │ final int n2 = 1; │ │ │ │ final int[] decodeMiddleCounters = this.decodeMiddleCounters; │ │ │ │ decodeMiddleCounters[n2] = (decodeMiddleCounters[0] = 0); │ │ │ │ decodeMiddleCounters[3] = (decodeMiddleCounters[n] = 0); │ │ │ │ final int size = bitArray.getSize(); │ │ │ │ int nextUnset = array[n2]; │ │ │ │ @@ -63,14 +51,26 @@ │ │ │ │ } │ │ │ │ if (Integer.parseInt(sb.toString()) % 4 != n3) { │ │ │ │ throw NotFoundException.getNotFoundInstance(); │ │ │ │ } │ │ │ │ return nextUnset; │ │ │ │ } │ │ │ │ │ │ │ │ + private static Map parseExtensionString(final String s) { │ │ │ │ + Map map; │ │ │ │ + if (s.length() != 2) { │ │ │ │ + map = null; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + map = new EnumMap(ResultMetadataType.class); │ │ │ │ + map.put(ResultMetadataType.ISSUE_NUMBER, Integer.valueOf(s)); │ │ │ │ + } │ │ │ │ + return map; │ │ │ │ + } │ │ │ │ + │ │ │ │ Result decodeRow(final int n, final BitArray bitArray, final int[] array) { │ │ │ │ final int n2 = 1; │ │ │ │ final StringBuilder decodeRowStringBuffer = this.decodeRowStringBuffer; │ │ │ │ decodeRowStringBuffer.setLength(0); │ │ │ │ final int decodeMiddle = this.decodeMiddle(bitArray, array, decodeRowStringBuffer); │ │ │ │ final String string = decodeRowStringBuffer.toString(); │ │ │ │ final Map extensionString = parseExtensionString(string); │ │ ├── com/google/zxing/oned/UPCEANExtension5Support.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -4,19 +4,19 @@ │ │ │ │ import java.io.ObjectInputStream; │ │ │ │ import java.io.IOException; │ │ │ │ import java.io.ObjectOutputStream; │ │ │ │ import java.io.Serializable; │ │ │ │ import com.google.zxing.BarcodeFormat; │ │ │ │ import com.google.zxing.ResultPoint; │ │ │ │ import com.google.zxing.Result; │ │ │ │ -import com.google.zxing.common.BitArray; │ │ │ │ import java.util.EnumMap; │ │ │ │ import com.google.zxing.ResultMetadataType; │ │ │ │ import java.util.Map; │ │ │ │ import com.google.zxing.NotFoundException; │ │ │ │ +import com.google.zxing.common.BitArray; │ │ │ │ │ │ │ │ final class UPCEANExtension5Support │ │ │ │ { │ │ │ │ private static final int[] CHECK_DIGIT_ENCODINGS; │ │ │ │ private final int[] decodeMiddleCounters; │ │ │ │ private final StringBuilder decodeRowStringBuffer; │ │ │ │ │ │ │ │ @@ -35,14 +35,43 @@ │ │ │ │ } │ │ │ │ │ │ │ │ UPCEANExtension5Support() { │ │ │ │ this.decodeMiddleCounters = new int[4]; │ │ │ │ this.decodeRowStringBuffer = new StringBuilder(); │ │ │ │ } │ │ │ │ │ │ │ │ + private int decodeMiddle(final BitArray bitArray, final int[] array, final StringBuilder sb) { │ │ │ │ + final int[] decodeMiddleCounters = this.decodeMiddleCounters; │ │ │ │ + decodeMiddleCounters[1] = (decodeMiddleCounters[0] = 0); │ │ │ │ + decodeMiddleCounters[3] = (decodeMiddleCounters[2] = 0); │ │ │ │ + final int size = bitArray.getSize(); │ │ │ │ + int nextUnset = array[1]; │ │ │ │ + int n = 0; │ │ │ │ + for (int n2 = 0; n2 < 5 && nextUnset < size; ++n2) { │ │ │ │ + final int decodeDigit = UPCEANReader.decodeDigit(bitArray, decodeMiddleCounters, nextUnset, UPCEANReader.L_AND_G_PATTERNS); │ │ │ │ + sb.append((char)(decodeDigit % 10 + 48)); │ │ │ │ + for (int length = decodeMiddleCounters.length, i = 0; i < length; ++i) { │ │ │ │ + nextUnset += decodeMiddleCounters[i]; │ │ │ │ + } │ │ │ │ + if (decodeDigit >= 10) { │ │ │ │ + n |= 1 << 4 - n2; │ │ │ │ + } │ │ │ │ + if (n2 != 4) { │ │ │ │ + nextUnset = bitArray.getNextUnset(bitArray.getNextSet(nextUnset)); │ │ │ │ + } │ │ │ │ + } │ │ │ │ + if (sb.length() != 5) { │ │ │ │ + throw NotFoundException.getNotFoundInstance(); │ │ │ │ + } │ │ │ │ + if (extensionChecksum(sb.toString()) != determineCheckDigit(n)) { │ │ │ │ + throw NotFoundException.getNotFoundInstance(); │ │ │ │ + } │ │ │ │ + return nextUnset; │ │ │ │ + } │ │ │ │ + │ │ │ │ private static int determineCheckDigit(final int n) { │ │ │ │ for (int i = 0; i < 10; ++i) { │ │ │ │ if (n == UPCEANExtension5Support.CHECK_DIGIT_ENCODINGS[i]) { │ │ │ │ return i; │ │ │ │ } │ │ │ │ } │ │ │ │ throw NotFoundException.getNotFoundInstance(); │ │ │ │ @@ -111,43 +140,14 @@ │ │ │ │ map = new EnumMap(ResultMetadataType.class); │ │ │ │ map.put(ResultMetadataType.SUGGESTED_PRICE, extension5String); │ │ │ │ } │ │ │ │ } │ │ │ │ return map; │ │ │ │ } │ │ │ │ │ │ │ │ - int decodeMiddle(final BitArray bitArray, final int[] array, final StringBuilder sb) { │ │ │ │ - final int[] decodeMiddleCounters = this.decodeMiddleCounters; │ │ │ │ - decodeMiddleCounters[1] = (decodeMiddleCounters[0] = 0); │ │ │ │ - decodeMiddleCounters[3] = (decodeMiddleCounters[2] = 0); │ │ │ │ - final int size = bitArray.getSize(); │ │ │ │ - int nextUnset = array[1]; │ │ │ │ - int n = 0; │ │ │ │ - for (int n2 = 0; n2 < 5 && nextUnset < size; ++n2) { │ │ │ │ - final int decodeDigit = UPCEANReader.decodeDigit(bitArray, decodeMiddleCounters, nextUnset, UPCEANReader.L_AND_G_PATTERNS); │ │ │ │ - sb.append((char)(decodeDigit % 10 + 48)); │ │ │ │ - for (int length = decodeMiddleCounters.length, i = 0; i < length; ++i) { │ │ │ │ - nextUnset += decodeMiddleCounters[i]; │ │ │ │ - } │ │ │ │ - if (decodeDigit >= 10) { │ │ │ │ - n |= 1 << 4 - n2; │ │ │ │ - } │ │ │ │ - if (n2 != 4) { │ │ │ │ - nextUnset = bitArray.getNextUnset(bitArray.getNextSet(nextUnset)); │ │ │ │ - } │ │ │ │ - } │ │ │ │ - if (sb.length() != 5) { │ │ │ │ - throw NotFoundException.getNotFoundInstance(); │ │ │ │ - } │ │ │ │ - if (extensionChecksum(sb.toString()) != determineCheckDigit(n)) { │ │ │ │ - throw NotFoundException.getNotFoundInstance(); │ │ │ │ - } │ │ │ │ - return nextUnset; │ │ │ │ - } │ │ │ │ - │ │ │ │ Result decodeRow(final int n, final BitArray bitArray, final int[] array) { │ │ │ │ final int n2 = 1; │ │ │ │ final StringBuilder decodeRowStringBuffer = this.decodeRowStringBuffer; │ │ │ │ decodeRowStringBuffer.setLength(0); │ │ │ │ final int decodeMiddle = this.decodeMiddle(bitArray, array, decodeRowStringBuffer); │ │ │ │ final String string = decodeRowStringBuffer.toString(); │ │ │ │ final Map extensionString = parseExtensionString(string); │ │ ├── com/google/zxing/oned/UPCEANExtensionSupport.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -128,21 +128,21 @@ │ │ │ │ 26: iload_1 │ │ │ │ 27: aload_2 │ │ │ │ 28: aload 6 │ │ │ │ 30: invokevirtual #37 // Method com/google/zxing/oned/UPCEANExtension5Support.decodeRow:(ILcom/google/zxing/common/BitArray;[I)Lcom/google/zxing/Result; │ │ │ │ 33: astore 4 │ │ │ │ 35: aload 4 │ │ │ │ 37: areturn │ │ │ │ - 38: pop │ │ │ │ - 39: aload_0 │ │ │ │ - 40: getfield #22 // Field twoSupport:Lcom/google/zxing/oned/UPCEANExtension2Support; │ │ │ │ - 43: iload_1 │ │ │ │ - 44: aload_2 │ │ │ │ - 45: aload 6 │ │ │ │ - 47: invokevirtual #38 // Method com/google/zxing/oned/UPCEANExtension2Support.decodeRow:(ILcom/google/zxing/common/BitArray;[I)Lcom/google/zxing/Result; │ │ │ │ - 50: astore 4 │ │ │ │ - 52: goto 35 │ │ │ │ + 38: astore 4 │ │ │ │ + 40: aload_0 │ │ │ │ + 41: getfield #22 // Field twoSupport:Lcom/google/zxing/oned/UPCEANExtension2Support; │ │ │ │ + 44: iload_1 │ │ │ │ + 45: aload_2 │ │ │ │ + 46: aload 6 │ │ │ │ + 48: invokevirtual #38 // Method com/google/zxing/oned/UPCEANExtension2Support.decodeRow:(ILcom/google/zxing/common/BitArray;[I)Lcom/google/zxing/Result; │ │ │ │ + 51: astore 4 │ │ │ │ + 53: goto 35 │ │ │ │ Exception table: │ │ │ │ from to target type │ │ │ │ 18 22 38 Class com/google/zxing/ReaderException │ │ │ │ 28 33 38 Class com/google/zxing/ReaderException │ │ │ │ } │ │ ├── com/google/zxing/oned/rss/RSSUtils.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -28,34 +28,33 @@ │ │ │ │ ++i; │ │ │ │ } │ │ │ │ return n5; │ │ │ │ } │ │ │ │ │ │ │ │ public static int getRSSvalue(final int[] array, final int n, final boolean b) { │ │ │ │ final int n2 = 1; │ │ │ │ - final int length = array.length; │ │ │ │ int n3 = 0; │ │ │ │ - for (int length2 = array.length, i = 0; i < length2; ++i) { │ │ │ │ + for (int length = array.length, i = 0; i < length; ++i) { │ │ │ │ n3 += array[i]; │ │ │ │ } │ │ │ │ int n4 = 0; │ │ │ │ int n5 = 0; │ │ │ │ - for (int j = 0; j < length - 1; ++j) { │ │ │ │ + for (int length2 = array.length, j = 0; j < length2 - 1; ++j) { │ │ │ │ int k; │ │ │ │ for (k = 1, n5 |= n2 << j; k < array[j]; ++k, n5 &= ~(n2 << j)) { │ │ │ │ - int combins = combins(n3 - k - 1, length - j - 2); │ │ │ │ - if (b && n5 == 0 && n3 - k - (length - j - 1) >= length - j - 1) { │ │ │ │ - combins -= combins(n3 - k - (length - j), length - j - 2); │ │ │ │ + int combins = combins(n3 - k - 1, length2 - j - 2); │ │ │ │ + if (b && n5 == 0 && n3 - k - (length2 - j - 1) >= length2 - j - 1) { │ │ │ │ + combins -= combins(n3 - k - (length2 - j), length2 - j - 2); │ │ │ │ } │ │ │ │ - if (length - j - 1 > n2) { │ │ │ │ + if (length2 - j - 1 > n2) { │ │ │ │ int n6 = 0; │ │ │ │ - for (int l = n3 - k - (length - j - 2); l > n; --l) { │ │ │ │ - n6 += combins(n3 - k - l - 1, length - j - 3); │ │ │ │ + for (int l = n3 - k - (length2 - j - 2); l > n; --l) { │ │ │ │ + n6 += combins(n3 - k - l - 1, length2 - j - 3); │ │ │ │ } │ │ │ │ - combins -= (length - 1 - j) * n6; │ │ │ │ + combins -= (length2 - 1 - j) * n6; │ │ │ │ } │ │ │ │ else if (n3 - k > n) { │ │ │ │ --combins; │ │ │ │ } │ │ │ │ n4 += combins; │ │ │ │ } │ │ │ │ n3 -= k; │ │ ├── com/google/zxing/oned/rss/expanded/BitArrayBuilder.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -4,15 +4,15 @@ │ │ │ │ import com.google.zxing.common.BitArray; │ │ │ │ import java.util.List; │ │ │ │ │ │ │ │ final class BitArrayBuilder │ │ │ │ { │ │ │ │ static BitArray buildBitArray(final List list) { │ │ │ │ final int n = 1; │ │ │ │ - int n2 = list.size() * 2 - 1; │ │ │ │ + int n2 = (list.size() << 1) - 1; │ │ │ │ if (((ExpandedPair)list.get(list.size() - 1)).getRightChar() == null) { │ │ │ │ --n2; │ │ │ │ } │ │ │ │ final BitArray bitArray = new BitArray(n2 * 12); │ │ │ │ int n3 = 0; │ │ │ │ final int value = ((ExpandedPair)list.get(0)).getRightChar().getValue(); │ │ │ │ for (int i = 11; i >= 0; --i) { │ │ ├── com/google/zxing/oned/rss/expanded/ExpandedPair.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -73,15 +73,15 @@ │ │ │ │ } │ │ │ │ │ │ │ │ public boolean mustBeLast() { │ │ │ │ return this.rightChar == null; │ │ │ │ } │ │ │ │ │ │ │ │ public String toString() { │ │ │ │ - final StringBuilder append = new StringBuilder().append("[ ").append(this.leftChar).append(" , ").append(this.rightChar).append(" : "); │ │ │ │ + final StringBuilder append = new StringBuilder("[ ").append(this.leftChar).append(" , ").append(this.rightChar).append(" : "); │ │ │ │ Serializable value; │ │ │ │ if (this.finderPattern == null) { │ │ │ │ value = "null"; │ │ │ │ } │ │ │ │ else { │ │ │ │ value = this.finderPattern.getValue(); │ │ │ │ } │ │ ├── com/google/zxing/oned/rss/expanded/ExpandedRow.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -48,37 +48,39 @@ │ │ │ │ #43 = Utf8 valueOf │ │ │ │ #44 = Utf8 (Z)Ljava/lang/Boolean; │ │ │ │ #45 = NameAndType #43:#44 // valueOf:(Z)Ljava/lang/Boolean; │ │ │ │ #46 = Methodref #42.#45 // java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean; │ │ │ │ #47 = Methodref #42.#39 // java/lang/Boolean.hashCode:()I │ │ │ │ #48 = Utf8 java/lang/StringBuilder │ │ │ │ #49 = Class #48 // java/lang/StringBuilder │ │ │ │ - #50 = Methodref #49.#13 // java/lang/StringBuilder."":()V │ │ │ │ - #51 = Utf8 { │ │ │ │ - #52 = String #51 // { │ │ │ │ - #53 = Utf8 append │ │ │ │ - #54 = Utf8 (Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - #55 = NameAndType #53:#54 // append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - #56 = Methodref #49.#55 // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - #57 = Utf8 (Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ - #58 = NameAndType #53:#57 // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ - #59 = Methodref #49.#58 // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ - #60 = Utf8 } │ │ │ │ - #61 = String #60 // } │ │ │ │ - #62 = Utf8 toString │ │ │ │ - #63 = Utf8 ()Ljava/lang/String; │ │ │ │ - #64 = NameAndType #62:#63 // toString:()Ljava/lang/String; │ │ │ │ - #65 = Methodref #49.#64 // java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ - #66 = Utf8 Code │ │ │ │ - #67 = Utf8 (Ljava/util/List;IZ)V │ │ │ │ - #68 = Utf8 getRowNumber │ │ │ │ - #69 = Utf8 isEquivalent │ │ │ │ - #70 = Utf8 (Ljava/util/List;)Z │ │ │ │ - #71 = Utf8 isReversed │ │ │ │ - #72 = Utf8 ()Z │ │ │ │ + #50 = Utf8 { │ │ │ │ + #51 = String #50 // { │ │ │ │ + #52 = Utf8 (Ljava/lang/String;)V │ │ │ │ + #53 = NameAndType #11:#52 // "":(Ljava/lang/String;)V │ │ │ │ + #54 = Methodref #49.#53 // java/lang/StringBuilder."":(Ljava/lang/String;)V │ │ │ │ + #55 = Utf8 append │ │ │ │ + #56 = Utf8 (Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ + #57 = NameAndType #55:#56 // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ + #58 = Methodref #49.#57 // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ + #59 = Utf8 } │ │ │ │ + #60 = String #59 // } │ │ │ │ + #61 = Utf8 (Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ + #62 = NameAndType #55:#61 // append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ + #63 = Methodref #49.#62 // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ + #64 = Utf8 toString │ │ │ │ + #65 = Utf8 ()Ljava/lang/String; │ │ │ │ + #66 = NameAndType #64:#65 // toString:()Ljava/lang/String; │ │ │ │ + #67 = Methodref #49.#66 // java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ + #68 = Utf8 Code │ │ │ │ + #69 = Utf8 (Ljava/util/List;IZ)V │ │ │ │ + #70 = Utf8 getRowNumber │ │ │ │ + #71 = Utf8 isEquivalent │ │ │ │ + #72 = Utf8 (Ljava/util/List;)Z │ │ │ │ + #73 = Utf8 isReversed │ │ │ │ + #74 = Utf8 ()Z │ │ │ │ { │ │ │ │ private final java.util.List pairs; │ │ │ │ descriptor: Ljava/util/List; │ │ │ │ flags: ACC_PRIVATE, ACC_FINAL │ │ │ │ │ │ │ │ private final int rowNumber; │ │ │ │ descriptor: I │ │ │ │ @@ -216,23 +218,20 @@ │ │ │ │ descriptor: ()Ljava/lang/String; │ │ │ │ flags: ACC_PUBLIC │ │ │ │ Code: │ │ │ │ stack=300, locals=3, args_size=1 │ │ │ │ 0: new #49 // class java/lang/StringBuilder │ │ │ │ 3: astore_1 │ │ │ │ 4: aload_1 │ │ │ │ - 5: invokespecial #50 // Method java/lang/StringBuilder."":()V │ │ │ │ - 8: aload_1 │ │ │ │ - 9: ldc #52 // String { │ │ │ │ - 11: invokevirtual #56 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - 14: astore_1 │ │ │ │ - 15: aload_0 │ │ │ │ - 16: getfield #21 // Field pairs:Ljava/util/List; │ │ │ │ - 19: astore_2 │ │ │ │ - 20: aload_1 │ │ │ │ - 21: aload_2 │ │ │ │ - 22: invokevirtual #59 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ - 25: ldc #61 // String } │ │ │ │ - 27: invokevirtual #56 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - 30: invokevirtual #65 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ - 33: areturn │ │ │ │ + 5: ldc #51 // String { │ │ │ │ + 7: invokespecial #54 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V │ │ │ │ + 10: aload_0 │ │ │ │ + 11: getfield #21 // Field pairs:Ljava/util/List; │ │ │ │ + 14: astore_2 │ │ │ │ + 15: aload_1 │ │ │ │ + 16: aload_2 │ │ │ │ + 17: invokevirtual #58 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ + 20: ldc #60 // String } │ │ │ │ + 22: invokevirtual #63 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ + 25: invokevirtual #67 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ + 28: areturn │ │ │ │ } │ │ ├── com/google/zxing/oned/rss/expanded/decoders/AbstractExpandedDecoder.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -1,112 +1,109 @@ │ │ │ │ public abstract class com.google.zxing.oned.rss.expanded.decoders.AbstractExpandedDecoder │ │ │ │ minor version: 0 │ │ │ │ major version: 49 │ │ │ │ flags: ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT │ │ │ │ Constant pool: │ │ │ │ - #1 = Utf8 com/google/zxing/oned/rss/expanded/decoders/AbstractExpandedDecoder │ │ │ │ - #2 = Class #1 // com/google/zxing/oned/rss/expanded/decoders/AbstractExpandedDecoder │ │ │ │ - #3 = Utf8 java/lang/Object │ │ │ │ - #4 = Class #3 // java/lang/Object │ │ │ │ - #5 = Utf8 generalDecoder │ │ │ │ - #6 = Utf8 Lcom/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder; │ │ │ │ - #7 = Utf8 information │ │ │ │ - #8 = Utf8 Lcom/google/zxing/common/BitArray; │ │ │ │ - #9 = Utf8 │ │ │ │ - #10 = Utf8 ()V │ │ │ │ - #11 = NameAndType #9:#10 // "":()V │ │ │ │ - #12 = Methodref #4.#11 // java/lang/Object."":()V │ │ │ │ - #13 = NameAndType #7:#8 // information:Lcom/google/zxing/common/BitArray; │ │ │ │ - #14 = Fieldref #2.#13 // com/google/zxing/oned/rss/expanded/decoders/AbstractExpandedDecoder.information:Lcom/google/zxing/common/BitArray; │ │ │ │ - #15 = Utf8 com/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder │ │ │ │ - #16 = Class #15 // com/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder │ │ │ │ - #17 = Utf8 (Lcom/google/zxing/common/BitArray;)V │ │ │ │ - #18 = NameAndType #9:#17 // "":(Lcom/google/zxing/common/BitArray;)V │ │ │ │ - #19 = Methodref #16.#18 // com/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder."":(Lcom/google/zxing/common/BitArray;)V │ │ │ │ - #20 = NameAndType #5:#6 // generalDecoder:Lcom/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder; │ │ │ │ - #21 = Fieldref #2.#20 // com/google/zxing/oned/rss/expanded/decoders/AbstractExpandedDecoder.generalDecoder:Lcom/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder; │ │ │ │ - #22 = Float 1.4E-45f │ │ │ │ - #23 = Utf8 com/google/zxing/common/BitArray │ │ │ │ - #24 = Class #23 // com/google/zxing/common/BitArray │ │ │ │ - #25 = Utf8 get │ │ │ │ - #26 = Utf8 (I)Z │ │ │ │ - #27 = NameAndType #25:#26 // get:(I)Z │ │ │ │ - #28 = Methodref #24.#27 // com/google/zxing/common/BitArray.get:(I)Z │ │ │ │ - #29 = Utf8 com/google/zxing/oned/rss/expanded/decoders/AI01AndOtherAIs │ │ │ │ - #30 = Class #29 // com/google/zxing/oned/rss/expanded/decoders/AI01AndOtherAIs │ │ │ │ - #31 = Methodref #30.#18 // com/google/zxing/oned/rss/expanded/decoders/AI01AndOtherAIs."":(Lcom/google/zxing/common/BitArray;)V │ │ │ │ - #32 = Float 2.8E-45f │ │ │ │ - #33 = Utf8 com/google/zxing/oned/rss/expanded/decoders/AnyAIDecoder │ │ │ │ - #34 = Class #33 // com/google/zxing/oned/rss/expanded/decoders/AnyAIDecoder │ │ │ │ - #35 = Methodref #34.#18 // com/google/zxing/oned/rss/expanded/decoders/AnyAIDecoder."":(Lcom/google/zxing/common/BitArray;)V │ │ │ │ - #36 = Float 5.6E-45f │ │ │ │ - #37 = Utf8 extractNumericValueFromBitArray │ │ │ │ - #38 = Utf8 (Lcom/google/zxing/common/BitArray;II)I │ │ │ │ - #39 = NameAndType #37:#38 // extractNumericValueFromBitArray:(Lcom/google/zxing/common/BitArray;II)I │ │ │ │ - #40 = Methodref #16.#39 // com/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder.extractNumericValueFromBitArray:(Lcom/google/zxing/common/BitArray;II)I │ │ │ │ - #41 = Float 7.0E-45f │ │ │ │ - #42 = Float 9.8E-45f │ │ │ │ - #43 = Utf8 java/lang/IllegalStateException │ │ │ │ - #44 = Class #43 // java/lang/IllegalStateException │ │ │ │ - #45 = Utf8 java/lang/StringBuilder │ │ │ │ - #46 = Class #45 // java/lang/StringBuilder │ │ │ │ - #47 = Methodref #46.#11 // java/lang/StringBuilder."":()V │ │ │ │ - #48 = Utf8 unknown decoder: │ │ │ │ - #49 = String #48 // unknown decoder: │ │ │ │ - #50 = Utf8 append │ │ │ │ - #51 = Utf8 (Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - #52 = NameAndType #50:#51 // append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - #53 = Methodref #46.#52 // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - #54 = Utf8 (Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ - #55 = NameAndType #50:#54 // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ - #56 = Methodref #46.#55 // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ - #57 = Utf8 toString │ │ │ │ - #58 = Utf8 ()Ljava/lang/String; │ │ │ │ - #59 = NameAndType #57:#58 // toString:()Ljava/lang/String; │ │ │ │ - #60 = Methodref #46.#59 // java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ - #61 = Utf8 (Ljava/lang/String;)V │ │ │ │ - #62 = NameAndType #9:#61 // "":(Ljava/lang/String;)V │ │ │ │ - #63 = Methodref #44.#62 // java/lang/IllegalStateException."":(Ljava/lang/String;)V │ │ │ │ - #64 = Utf8 com/google/zxing/oned/rss/expanded/decoders/AI013103decoder │ │ │ │ - #65 = Class #64 // com/google/zxing/oned/rss/expanded/decoders/AI013103decoder │ │ │ │ - #66 = Methodref #65.#18 // com/google/zxing/oned/rss/expanded/decoders/AI013103decoder."":(Lcom/google/zxing/common/BitArray;)V │ │ │ │ - #67 = Utf8 com/google/zxing/oned/rss/expanded/decoders/AI01320xDecoder │ │ │ │ - #68 = Class #67 // com/google/zxing/oned/rss/expanded/decoders/AI01320xDecoder │ │ │ │ - #69 = Methodref #68.#18 // com/google/zxing/oned/rss/expanded/decoders/AI01320xDecoder."":(Lcom/google/zxing/common/BitArray;)V │ │ │ │ - #70 = Utf8 com/google/zxing/oned/rss/expanded/decoders/AI01392xDecoder │ │ │ │ - #71 = Class #70 // com/google/zxing/oned/rss/expanded/decoders/AI01392xDecoder │ │ │ │ - #72 = Methodref #71.#18 // com/google/zxing/oned/rss/expanded/decoders/AI01392xDecoder."":(Lcom/google/zxing/common/BitArray;)V │ │ │ │ - #73 = Utf8 com/google/zxing/oned/rss/expanded/decoders/AI01393xDecoder │ │ │ │ - #74 = Class #73 // com/google/zxing/oned/rss/expanded/decoders/AI01393xDecoder │ │ │ │ - #75 = Methodref #74.#18 // com/google/zxing/oned/rss/expanded/decoders/AI01393xDecoder."":(Lcom/google/zxing/common/BitArray;)V │ │ │ │ - #76 = Utf8 com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder │ │ │ │ - #77 = Class #76 // com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder │ │ │ │ - #78 = Utf8 310 │ │ │ │ - #79 = String #78 // 310 │ │ │ │ - #80 = Utf8 11 │ │ │ │ - #81 = String #80 // 11 │ │ │ │ - #82 = Utf8 (Lcom/google/zxing/common/BitArray;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ - #83 = NameAndType #9:#82 // "":(Lcom/google/zxing/common/BitArray;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ - #84 = Methodref #77.#83 // com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder."":(Lcom/google/zxing/common/BitArray;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ - #85 = Utf8 320 │ │ │ │ - #86 = String #85 // 320 │ │ │ │ - #87 = Utf8 13 │ │ │ │ - #88 = String #87 // 13 │ │ │ │ - #89 = Utf8 15 │ │ │ │ - #90 = String #89 // 15 │ │ │ │ - #91 = Utf8 17 │ │ │ │ - #92 = String #91 // 17 │ │ │ │ - #93 = Utf8 Code │ │ │ │ - #94 = Utf8 createDecoder │ │ │ │ - #95 = Utf8 (Lcom/google/zxing/common/BitArray;)Lcom/google/zxing/oned/rss/expanded/decoders/AbstractExpandedDecoder; │ │ │ │ - #96 = Utf8 getGeneralDecoder │ │ │ │ - #97 = Utf8 ()Lcom/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder; │ │ │ │ - #98 = Utf8 getInformation │ │ │ │ - #99 = Utf8 ()Lcom/google/zxing/common/BitArray; │ │ │ │ - #100 = Utf8 parseInformation │ │ │ │ + #1 = Utf8 com/google/zxing/oned/rss/expanded/decoders/AbstractExpandedDecoder │ │ │ │ + #2 = Class #1 // com/google/zxing/oned/rss/expanded/decoders/AbstractExpandedDecoder │ │ │ │ + #3 = Utf8 java/lang/Object │ │ │ │ + #4 = Class #3 // java/lang/Object │ │ │ │ + #5 = Utf8 generalDecoder │ │ │ │ + #6 = Utf8 Lcom/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder; │ │ │ │ + #7 = Utf8 information │ │ │ │ + #8 = Utf8 Lcom/google/zxing/common/BitArray; │ │ │ │ + #9 = Utf8 │ │ │ │ + #10 = Utf8 ()V │ │ │ │ + #11 = NameAndType #9:#10 // "":()V │ │ │ │ + #12 = Methodref #4.#11 // java/lang/Object."":()V │ │ │ │ + #13 = NameAndType #7:#8 // information:Lcom/google/zxing/common/BitArray; │ │ │ │ + #14 = Fieldref #2.#13 // com/google/zxing/oned/rss/expanded/decoders/AbstractExpandedDecoder.information:Lcom/google/zxing/common/BitArray; │ │ │ │ + #15 = Utf8 com/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder │ │ │ │ + #16 = Class #15 // com/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder │ │ │ │ + #17 = Utf8 (Lcom/google/zxing/common/BitArray;)V │ │ │ │ + #18 = NameAndType #9:#17 // "":(Lcom/google/zxing/common/BitArray;)V │ │ │ │ + #19 = Methodref #16.#18 // com/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder."":(Lcom/google/zxing/common/BitArray;)V │ │ │ │ + #20 = NameAndType #5:#6 // generalDecoder:Lcom/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder; │ │ │ │ + #21 = Fieldref #2.#20 // com/google/zxing/oned/rss/expanded/decoders/AbstractExpandedDecoder.generalDecoder:Lcom/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder; │ │ │ │ + #22 = Float 1.4E-45f │ │ │ │ + #23 = Utf8 com/google/zxing/common/BitArray │ │ │ │ + #24 = Class #23 // com/google/zxing/common/BitArray │ │ │ │ + #25 = Utf8 get │ │ │ │ + #26 = Utf8 (I)Z │ │ │ │ + #27 = NameAndType #25:#26 // get:(I)Z │ │ │ │ + #28 = Methodref #24.#27 // com/google/zxing/common/BitArray.get:(I)Z │ │ │ │ + #29 = Utf8 com/google/zxing/oned/rss/expanded/decoders/AI01AndOtherAIs │ │ │ │ + #30 = Class #29 // com/google/zxing/oned/rss/expanded/decoders/AI01AndOtherAIs │ │ │ │ + #31 = Methodref #30.#18 // com/google/zxing/oned/rss/expanded/decoders/AI01AndOtherAIs."":(Lcom/google/zxing/common/BitArray;)V │ │ │ │ + #32 = Float 2.8E-45f │ │ │ │ + #33 = Utf8 com/google/zxing/oned/rss/expanded/decoders/AnyAIDecoder │ │ │ │ + #34 = Class #33 // com/google/zxing/oned/rss/expanded/decoders/AnyAIDecoder │ │ │ │ + #35 = Methodref #34.#18 // com/google/zxing/oned/rss/expanded/decoders/AnyAIDecoder."":(Lcom/google/zxing/common/BitArray;)V │ │ │ │ + #36 = Float 5.6E-45f │ │ │ │ + #37 = Utf8 extractNumericValueFromBitArray │ │ │ │ + #38 = Utf8 (Lcom/google/zxing/common/BitArray;II)I │ │ │ │ + #39 = NameAndType #37:#38 // extractNumericValueFromBitArray:(Lcom/google/zxing/common/BitArray;II)I │ │ │ │ + #40 = Methodref #16.#39 // com/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder.extractNumericValueFromBitArray:(Lcom/google/zxing/common/BitArray;II)I │ │ │ │ + #41 = Float 7.0E-45f │ │ │ │ + #42 = Float 9.8E-45f │ │ │ │ + #43 = Utf8 java/lang/IllegalStateException │ │ │ │ + #44 = Class #43 // java/lang/IllegalStateException │ │ │ │ + #45 = Utf8 java/lang/StringBuilder │ │ │ │ + #46 = Class #45 // java/lang/StringBuilder │ │ │ │ + #47 = Utf8 unknown decoder: │ │ │ │ + #48 = String #47 // unknown decoder: │ │ │ │ + #49 = Utf8 (Ljava/lang/String;)V │ │ │ │ + #50 = NameAndType #9:#49 // "":(Ljava/lang/String;)V │ │ │ │ + #51 = Methodref #46.#50 // java/lang/StringBuilder."":(Ljava/lang/String;)V │ │ │ │ + #52 = Utf8 append │ │ │ │ + #53 = Utf8 (Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ + #54 = NameAndType #52:#53 // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ + #55 = Methodref #46.#54 // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ + #56 = Utf8 toString │ │ │ │ + #57 = Utf8 ()Ljava/lang/String; │ │ │ │ + #58 = NameAndType #56:#57 // toString:()Ljava/lang/String; │ │ │ │ + #59 = Methodref #46.#58 // java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ + #60 = Methodref #44.#50 // java/lang/IllegalStateException."":(Ljava/lang/String;)V │ │ │ │ + #61 = Utf8 com/google/zxing/oned/rss/expanded/decoders/AI013103decoder │ │ │ │ + #62 = Class #61 // com/google/zxing/oned/rss/expanded/decoders/AI013103decoder │ │ │ │ + #63 = Methodref #62.#18 // com/google/zxing/oned/rss/expanded/decoders/AI013103decoder."":(Lcom/google/zxing/common/BitArray;)V │ │ │ │ + #64 = Utf8 com/google/zxing/oned/rss/expanded/decoders/AI01320xDecoder │ │ │ │ + #65 = Class #64 // com/google/zxing/oned/rss/expanded/decoders/AI01320xDecoder │ │ │ │ + #66 = Methodref #65.#18 // com/google/zxing/oned/rss/expanded/decoders/AI01320xDecoder."":(Lcom/google/zxing/common/BitArray;)V │ │ │ │ + #67 = Utf8 com/google/zxing/oned/rss/expanded/decoders/AI01392xDecoder │ │ │ │ + #68 = Class #67 // com/google/zxing/oned/rss/expanded/decoders/AI01392xDecoder │ │ │ │ + #69 = Methodref #68.#18 // com/google/zxing/oned/rss/expanded/decoders/AI01392xDecoder."":(Lcom/google/zxing/common/BitArray;)V │ │ │ │ + #70 = Utf8 com/google/zxing/oned/rss/expanded/decoders/AI01393xDecoder │ │ │ │ + #71 = Class #70 // com/google/zxing/oned/rss/expanded/decoders/AI01393xDecoder │ │ │ │ + #72 = Methodref #71.#18 // com/google/zxing/oned/rss/expanded/decoders/AI01393xDecoder."":(Lcom/google/zxing/common/BitArray;)V │ │ │ │ + #73 = Utf8 com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder │ │ │ │ + #74 = Class #73 // com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder │ │ │ │ + #75 = Utf8 310 │ │ │ │ + #76 = String #75 // 310 │ │ │ │ + #77 = Utf8 11 │ │ │ │ + #78 = String #77 // 11 │ │ │ │ + #79 = Utf8 (Lcom/google/zxing/common/BitArray;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ + #80 = NameAndType #9:#79 // "":(Lcom/google/zxing/common/BitArray;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ + #81 = Methodref #74.#80 // com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder."":(Lcom/google/zxing/common/BitArray;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ + #82 = Utf8 320 │ │ │ │ + #83 = String #82 // 320 │ │ │ │ + #84 = Utf8 13 │ │ │ │ + #85 = String #84 // 13 │ │ │ │ + #86 = Utf8 15 │ │ │ │ + #87 = String #86 // 15 │ │ │ │ + #88 = Utf8 17 │ │ │ │ + #89 = String #88 // 17 │ │ │ │ + #90 = Utf8 Code │ │ │ │ + #91 = Utf8 createDecoder │ │ │ │ + #92 = Utf8 (Lcom/google/zxing/common/BitArray;)Lcom/google/zxing/oned/rss/expanded/decoders/AbstractExpandedDecoder; │ │ │ │ + #93 = Utf8 getGeneralDecoder │ │ │ │ + #94 = Utf8 ()Lcom/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder; │ │ │ │ + #95 = Utf8 getInformation │ │ │ │ + #96 = Utf8 ()Lcom/google/zxing/common/BitArray; │ │ │ │ + #97 = Utf8 parseInformation │ │ │ │ { │ │ │ │ private final com.google.zxing.oned.rss.expanded.decoders.GeneralAppIdDecoder generalDecoder; │ │ │ │ descriptor: Lcom/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder; │ │ │ │ flags: ACC_PRIVATE, ACC_FINAL │ │ │ │ │ │ │ │ private final com.google.zxing.common.BitArray information; │ │ │ │ descriptor: Lcom/google/zxing/common/BitArray; │ │ │ │ @@ -132,15 +129,15 @@ │ │ │ │ 20: putfield #21 // Field generalDecoder:Lcom/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder; │ │ │ │ 23: return │ │ │ │ │ │ │ │ public static com.google.zxing.oned.rss.expanded.decoders.AbstractExpandedDecoder createDecoder(com.google.zxing.common.BitArray); │ │ │ │ descriptor: (Lcom/google/zxing/common/BitArray;)Lcom/google/zxing/oned/rss/expanded/decoders/AbstractExpandedDecoder; │ │ │ │ flags: ACC_PUBLIC, ACC_STATIC │ │ │ │ Code: │ │ │ │ - stack=300, locals=9, args_size=1 │ │ │ │ + stack=300, locals=6, args_size=1 │ │ │ │ 0: iconst_1 │ │ │ │ 1: istore_1 │ │ │ │ 2: aload_0 │ │ │ │ 3: iload_1 │ │ │ │ 4: invokevirtual #28 // Method com/google/zxing/common/BitArray.get:(I)Z │ │ │ │ 7: istore_2 │ │ │ │ 8: iload_2 │ │ │ │ @@ -160,197 +157,190 @@ │ │ │ │ 30: ifne 45 │ │ │ │ 33: new #34 // class com/google/zxing/oned/rss/expanded/decoders/AnyAIDecoder │ │ │ │ 36: astore_3 │ │ │ │ 37: aload_3 │ │ │ │ 38: aload_0 │ │ │ │ 39: invokespecial #35 // Method com/google/zxing/oned/rss/expanded/decoders/AnyAIDecoder."":(Lcom/google/zxing/common/BitArray;)V │ │ │ │ 42: goto 21 │ │ │ │ - 45: iconst_4 │ │ │ │ - 46: istore_2 │ │ │ │ - 47: aload_0 │ │ │ │ - 48: iload_1 │ │ │ │ - 49: iload_2 │ │ │ │ - 50: invokestatic #40 // Method com/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder.extractNumericValueFromBitArray:(Lcom/google/zxing/common/BitArray;II)I │ │ │ │ - 53: istore 4 │ │ │ │ - 55: iload 4 │ │ │ │ - 57: tableswitch { // 4 to 5 │ │ │ │ - 4: 214 │ │ │ │ - 5: 226 │ │ │ │ - default: 80 │ │ │ │ + 45: aload_0 │ │ │ │ + 46: iload_1 │ │ │ │ + 47: iconst_4 │ │ │ │ + 48: invokestatic #40 // Method com/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder.extractNumericValueFromBitArray:(Lcom/google/zxing/common/BitArray;II)I │ │ │ │ + 51: istore_2 │ │ │ │ + 52: iload_2 │ │ │ │ + 53: tableswitch { // 4 to 5 │ │ │ │ + 4: 199 │ │ │ │ + 5: 211 │ │ │ │ + default: 76 │ │ │ │ } │ │ │ │ - 80: iconst_5 │ │ │ │ - 81: istore_2 │ │ │ │ - 82: aload_0 │ │ │ │ - 83: iload_1 │ │ │ │ - 84: iload_2 │ │ │ │ - 85: invokestatic #40 // Method com/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder.extractNumericValueFromBitArray:(Lcom/google/zxing/common/BitArray;II)I │ │ │ │ - 88: istore 5 │ │ │ │ - 90: iload 5 │ │ │ │ - 92: tableswitch { // 12 to 13 │ │ │ │ - 12: 238 │ │ │ │ - 13: 250 │ │ │ │ - default: 116 │ │ │ │ + 76: aload_0 │ │ │ │ + 77: iload_1 │ │ │ │ + 78: iconst_5 │ │ │ │ + 79: invokestatic #40 // Method com/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder.extractNumericValueFromBitArray:(Lcom/google/zxing/common/BitArray;II)I │ │ │ │ + 82: istore_2 │ │ │ │ + 83: iload_2 │ │ │ │ + 84: tableswitch { // 12 to 13 │ │ │ │ + 12: 223 │ │ │ │ + 13: 235 │ │ │ │ + default: 108 │ │ │ │ } │ │ │ │ - 116: bipush 7 │ │ │ │ - 118: istore_2 │ │ │ │ - 119: aload_0 │ │ │ │ - 120: iload_1 │ │ │ │ - 121: iload_2 │ │ │ │ - 122: invokestatic #40 // Method com/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder.extractNumericValueFromBitArray:(Lcom/google/zxing/common/BitArray;II)I │ │ │ │ - 125: istore 6 │ │ │ │ - 127: iload 6 │ │ │ │ - 129: tableswitch { // 56 to 63 │ │ │ │ - 56: 262 │ │ │ │ - 57: 286 │ │ │ │ - 58: 310 │ │ │ │ - 59: 334 │ │ │ │ - 60: 358 │ │ │ │ - 61: 382 │ │ │ │ - 62: 406 │ │ │ │ - 63: 430 │ │ │ │ - default: 176 │ │ │ │ + 108: aload_0 │ │ │ │ + 109: iload_1 │ │ │ │ + 110: bipush 7 │ │ │ │ + 112: invokestatic #40 // Method com/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder.extractNumericValueFromBitArray:(Lcom/google/zxing/common/BitArray;II)I │ │ │ │ + 115: istore_2 │ │ │ │ + 116: iload_2 │ │ │ │ + 117: tableswitch { // 56 to 63 │ │ │ │ + 56: 247 │ │ │ │ + 57: 271 │ │ │ │ + 58: 295 │ │ │ │ + 59: 319 │ │ │ │ + 60: 343 │ │ │ │ + 61: 367 │ │ │ │ + 62: 391 │ │ │ │ + 63: 415 │ │ │ │ + default: 164 │ │ │ │ } │ │ │ │ - 176: new #44 // class java/lang/IllegalStateException │ │ │ │ - 179: astore_3 │ │ │ │ - 180: new #46 // class java/lang/StringBuilder │ │ │ │ - 183: astore 7 │ │ │ │ - 185: aload 7 │ │ │ │ - 187: invokespecial #47 // Method java/lang/StringBuilder."":()V │ │ │ │ - 190: aload 7 │ │ │ │ - 192: ldc #49 // String unknown decoder: │ │ │ │ - 194: invokevirtual #53 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - 197: aload_0 │ │ │ │ - 198: invokevirtual #56 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ - 201: invokevirtual #60 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ - 204: astore 7 │ │ │ │ - 206: aload_3 │ │ │ │ - 207: aload 7 │ │ │ │ - 209: invokespecial #63 // Method java/lang/IllegalStateException."":(Ljava/lang/String;)V │ │ │ │ - 212: aload_3 │ │ │ │ - 213: athrow │ │ │ │ - 214: new #65 // class com/google/zxing/oned/rss/expanded/decoders/AI013103decoder │ │ │ │ - 217: astore_3 │ │ │ │ - 218: aload_3 │ │ │ │ - 219: aload_0 │ │ │ │ - 220: invokespecial #66 // Method com/google/zxing/oned/rss/expanded/decoders/AI013103decoder."":(Lcom/google/zxing/common/BitArray;)V │ │ │ │ - 223: goto 21 │ │ │ │ - 226: new #68 // class com/google/zxing/oned/rss/expanded/decoders/AI01320xDecoder │ │ │ │ - 229: astore_3 │ │ │ │ - 230: aload_3 │ │ │ │ - 231: aload_0 │ │ │ │ - 232: invokespecial #69 // Method com/google/zxing/oned/rss/expanded/decoders/AI01320xDecoder."":(Lcom/google/zxing/common/BitArray;)V │ │ │ │ - 235: goto 21 │ │ │ │ - 238: new #71 // class com/google/zxing/oned/rss/expanded/decoders/AI01392xDecoder │ │ │ │ - 241: astore_3 │ │ │ │ - 242: aload_3 │ │ │ │ - 243: aload_0 │ │ │ │ - 244: invokespecial #72 // Method com/google/zxing/oned/rss/expanded/decoders/AI01392xDecoder."":(Lcom/google/zxing/common/BitArray;)V │ │ │ │ - 247: goto 21 │ │ │ │ - 250: new #74 // class com/google/zxing/oned/rss/expanded/decoders/AI01393xDecoder │ │ │ │ - 253: astore_3 │ │ │ │ - 254: aload_3 │ │ │ │ - 255: aload_0 │ │ │ │ - 256: invokespecial #75 // Method com/google/zxing/oned/rss/expanded/decoders/AI01393xDecoder."":(Lcom/google/zxing/common/BitArray;)V │ │ │ │ - 259: goto 21 │ │ │ │ - 262: new #77 // class com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder │ │ │ │ - 265: astore_3 │ │ │ │ - 266: ldc #79 // String 310 │ │ │ │ - 268: astore 7 │ │ │ │ - 270: ldc #81 // String 11 │ │ │ │ - 272: astore 8 │ │ │ │ - 274: aload_3 │ │ │ │ - 275: aload_0 │ │ │ │ - 276: aload 7 │ │ │ │ - 278: aload 8 │ │ │ │ - 280: invokespecial #84 // Method com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder."":(Lcom/google/zxing/common/BitArray;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ - 283: goto 21 │ │ │ │ - 286: new #77 // class com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder │ │ │ │ - 289: astore_3 │ │ │ │ - 290: ldc #86 // String 320 │ │ │ │ - 292: astore 7 │ │ │ │ - 294: ldc #81 // String 11 │ │ │ │ - 296: astore 8 │ │ │ │ - 298: aload_3 │ │ │ │ - 299: aload_0 │ │ │ │ - 300: aload 7 │ │ │ │ - 302: aload 8 │ │ │ │ - 304: invokespecial #84 // Method com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder."":(Lcom/google/zxing/common/BitArray;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ - 307: goto 21 │ │ │ │ - 310: new #77 // class com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder │ │ │ │ - 313: astore_3 │ │ │ │ - 314: ldc #79 // String 310 │ │ │ │ - 316: astore 7 │ │ │ │ - 318: ldc #88 // String 13 │ │ │ │ - 320: astore 8 │ │ │ │ - 322: aload_3 │ │ │ │ - 323: aload_0 │ │ │ │ - 324: aload 7 │ │ │ │ - 326: aload 8 │ │ │ │ - 328: invokespecial #84 // Method com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder."":(Lcom/google/zxing/common/BitArray;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ - 331: goto 21 │ │ │ │ - 334: new #77 // class com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder │ │ │ │ - 337: astore_3 │ │ │ │ - 338: ldc #86 // String 320 │ │ │ │ - 340: astore 7 │ │ │ │ - 342: ldc #88 // String 13 │ │ │ │ - 344: astore 8 │ │ │ │ - 346: aload_3 │ │ │ │ - 347: aload_0 │ │ │ │ - 348: aload 7 │ │ │ │ - 350: aload 8 │ │ │ │ - 352: invokespecial #84 // Method com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder."":(Lcom/google/zxing/common/BitArray;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ - 355: goto 21 │ │ │ │ - 358: new #77 // class com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder │ │ │ │ - 361: astore_3 │ │ │ │ - 362: ldc #79 // String 310 │ │ │ │ - 364: astore 7 │ │ │ │ - 366: ldc #90 // String 15 │ │ │ │ - 368: astore 8 │ │ │ │ - 370: aload_3 │ │ │ │ - 371: aload_0 │ │ │ │ - 372: aload 7 │ │ │ │ - 374: aload 8 │ │ │ │ - 376: invokespecial #84 // Method com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder."":(Lcom/google/zxing/common/BitArray;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ - 379: goto 21 │ │ │ │ - 382: new #77 // class com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder │ │ │ │ - 385: astore_3 │ │ │ │ - 386: ldc #86 // String 320 │ │ │ │ - 388: astore 7 │ │ │ │ - 390: ldc #90 // String 15 │ │ │ │ - 392: astore 8 │ │ │ │ - 394: aload_3 │ │ │ │ - 395: aload_0 │ │ │ │ - 396: aload 7 │ │ │ │ - 398: aload 8 │ │ │ │ - 400: invokespecial #84 // Method com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder."":(Lcom/google/zxing/common/BitArray;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ - 403: goto 21 │ │ │ │ - 406: new #77 // class com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder │ │ │ │ - 409: astore_3 │ │ │ │ - 410: ldc #79 // String 310 │ │ │ │ - 412: astore 7 │ │ │ │ - 414: ldc #92 // String 17 │ │ │ │ - 416: astore 8 │ │ │ │ - 418: aload_3 │ │ │ │ - 419: aload_0 │ │ │ │ - 420: aload 7 │ │ │ │ - 422: aload 8 │ │ │ │ - 424: invokespecial #84 // Method com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder."":(Lcom/google/zxing/common/BitArray;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ - 427: goto 21 │ │ │ │ - 430: new #77 // class com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder │ │ │ │ - 433: astore_3 │ │ │ │ - 434: ldc #86 // String 320 │ │ │ │ - 436: astore 7 │ │ │ │ - 438: ldc #92 // String 17 │ │ │ │ - 440: astore 8 │ │ │ │ - 442: aload_3 │ │ │ │ - 443: aload_0 │ │ │ │ - 444: aload 7 │ │ │ │ - 446: aload 8 │ │ │ │ - 448: invokespecial #84 // Method com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder."":(Lcom/google/zxing/common/BitArray;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ - 451: goto 21 │ │ │ │ + 164: new #44 // class java/lang/IllegalStateException │ │ │ │ + 167: astore_3 │ │ │ │ + 168: new #46 // class java/lang/StringBuilder │ │ │ │ + 171: astore 4 │ │ │ │ + 173: aload 4 │ │ │ │ + 175: ldc #48 // String unknown decoder: │ │ │ │ + 177: invokespecial #51 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V │ │ │ │ + 180: aload 4 │ │ │ │ + 182: aload_0 │ │ │ │ + 183: invokevirtual #55 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ + 186: invokevirtual #59 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ + 189: astore 4 │ │ │ │ + 191: aload_3 │ │ │ │ + 192: aload 4 │ │ │ │ + 194: invokespecial #60 // Method java/lang/IllegalStateException."":(Ljava/lang/String;)V │ │ │ │ + 197: aload_3 │ │ │ │ + 198: athrow │ │ │ │ + 199: new #62 // class com/google/zxing/oned/rss/expanded/decoders/AI013103decoder │ │ │ │ + 202: astore_3 │ │ │ │ + 203: aload_3 │ │ │ │ + 204: aload_0 │ │ │ │ + 205: invokespecial #63 // Method com/google/zxing/oned/rss/expanded/decoders/AI013103decoder."":(Lcom/google/zxing/common/BitArray;)V │ │ │ │ + 208: goto 21 │ │ │ │ + 211: new #65 // class com/google/zxing/oned/rss/expanded/decoders/AI01320xDecoder │ │ │ │ + 214: astore_3 │ │ │ │ + 215: aload_3 │ │ │ │ + 216: aload_0 │ │ │ │ + 217: invokespecial #66 // Method com/google/zxing/oned/rss/expanded/decoders/AI01320xDecoder."":(Lcom/google/zxing/common/BitArray;)V │ │ │ │ + 220: goto 21 │ │ │ │ + 223: new #68 // class com/google/zxing/oned/rss/expanded/decoders/AI01392xDecoder │ │ │ │ + 226: astore_3 │ │ │ │ + 227: aload_3 │ │ │ │ + 228: aload_0 │ │ │ │ + 229: invokespecial #69 // Method com/google/zxing/oned/rss/expanded/decoders/AI01392xDecoder."":(Lcom/google/zxing/common/BitArray;)V │ │ │ │ + 232: goto 21 │ │ │ │ + 235: new #71 // class com/google/zxing/oned/rss/expanded/decoders/AI01393xDecoder │ │ │ │ + 238: astore_3 │ │ │ │ + 239: aload_3 │ │ │ │ + 240: aload_0 │ │ │ │ + 241: invokespecial #72 // Method com/google/zxing/oned/rss/expanded/decoders/AI01393xDecoder."":(Lcom/google/zxing/common/BitArray;)V │ │ │ │ + 244: goto 21 │ │ │ │ + 247: new #74 // class com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder │ │ │ │ + 250: astore_3 │ │ │ │ + 251: ldc #76 // String 310 │ │ │ │ + 253: astore 4 │ │ │ │ + 255: ldc #78 // String 11 │ │ │ │ + 257: astore 5 │ │ │ │ + 259: aload_3 │ │ │ │ + 260: aload_0 │ │ │ │ + 261: aload 4 │ │ │ │ + 263: aload 5 │ │ │ │ + 265: invokespecial #81 // Method com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder."":(Lcom/google/zxing/common/BitArray;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ + 268: goto 21 │ │ │ │ + 271: new #74 // class com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder │ │ │ │ + 274: astore_3 │ │ │ │ + 275: ldc #83 // String 320 │ │ │ │ + 277: astore 4 │ │ │ │ + 279: ldc #78 // String 11 │ │ │ │ + 281: astore 5 │ │ │ │ + 283: aload_3 │ │ │ │ + 284: aload_0 │ │ │ │ + 285: aload 4 │ │ │ │ + 287: aload 5 │ │ │ │ + 289: invokespecial #81 // Method com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder."":(Lcom/google/zxing/common/BitArray;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ + 292: goto 21 │ │ │ │ + 295: new #74 // class com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder │ │ │ │ + 298: astore_3 │ │ │ │ + 299: ldc #76 // String 310 │ │ │ │ + 301: astore 4 │ │ │ │ + 303: ldc #85 // String 13 │ │ │ │ + 305: astore 5 │ │ │ │ + 307: aload_3 │ │ │ │ + 308: aload_0 │ │ │ │ + 309: aload 4 │ │ │ │ + 311: aload 5 │ │ │ │ + 313: invokespecial #81 // Method com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder."":(Lcom/google/zxing/common/BitArray;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ + 316: goto 21 │ │ │ │ + 319: new #74 // class com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder │ │ │ │ + 322: astore_3 │ │ │ │ + 323: ldc #83 // String 320 │ │ │ │ + 325: astore 4 │ │ │ │ + 327: ldc #85 // String 13 │ │ │ │ + 329: astore 5 │ │ │ │ + 331: aload_3 │ │ │ │ + 332: aload_0 │ │ │ │ + 333: aload 4 │ │ │ │ + 335: aload 5 │ │ │ │ + 337: invokespecial #81 // Method com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder."":(Lcom/google/zxing/common/BitArray;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ + 340: goto 21 │ │ │ │ + 343: new #74 // class com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder │ │ │ │ + 346: astore_3 │ │ │ │ + 347: ldc #76 // String 310 │ │ │ │ + 349: astore 4 │ │ │ │ + 351: ldc #87 // String 15 │ │ │ │ + 353: astore 5 │ │ │ │ + 355: aload_3 │ │ │ │ + 356: aload_0 │ │ │ │ + 357: aload 4 │ │ │ │ + 359: aload 5 │ │ │ │ + 361: invokespecial #81 // Method com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder."":(Lcom/google/zxing/common/BitArray;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ + 364: goto 21 │ │ │ │ + 367: new #74 // class com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder │ │ │ │ + 370: astore_3 │ │ │ │ + 371: ldc #83 // String 320 │ │ │ │ + 373: astore 4 │ │ │ │ + 375: ldc #87 // String 15 │ │ │ │ + 377: astore 5 │ │ │ │ + 379: aload_3 │ │ │ │ + 380: aload_0 │ │ │ │ + 381: aload 4 │ │ │ │ + 383: aload 5 │ │ │ │ + 385: invokespecial #81 // Method com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder."":(Lcom/google/zxing/common/BitArray;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ + 388: goto 21 │ │ │ │ + 391: new #74 // class com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder │ │ │ │ + 394: astore_3 │ │ │ │ + 395: ldc #76 // String 310 │ │ │ │ + 397: astore 4 │ │ │ │ + 399: ldc #89 // String 17 │ │ │ │ + 401: astore 5 │ │ │ │ + 403: aload_3 │ │ │ │ + 404: aload_0 │ │ │ │ + 405: aload 4 │ │ │ │ + 407: aload 5 │ │ │ │ + 409: invokespecial #81 // Method com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder."":(Lcom/google/zxing/common/BitArray;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ + 412: goto 21 │ │ │ │ + 415: new #74 // class com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder │ │ │ │ + 418: astore_3 │ │ │ │ + 419: ldc #83 // String 320 │ │ │ │ + 421: astore 4 │ │ │ │ + 423: ldc #89 // String 17 │ │ │ │ + 425: astore 5 │ │ │ │ + 427: aload_3 │ │ │ │ + 428: aload_0 │ │ │ │ + 429: aload 4 │ │ │ │ + 431: aload 5 │ │ │ │ + 433: invokespecial #81 // Method com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder."":(Lcom/google/zxing/common/BitArray;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ + 436: goto 21 │ │ │ │ │ │ │ │ protected final com.google.zxing.oned.rss.expanded.decoders.GeneralAppIdDecoder getGeneralDecoder(); │ │ │ │ descriptor: ()Lcom/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder; │ │ │ │ flags: ACC_PROTECTED, ACC_FINAL │ │ │ │ Code: │ │ │ │ stack=300, locals=1, args_size=1 │ │ │ │ 0: aload_0 │ │ ├── com/google/zxing/oned/rss/expanded/decoders/FieldParser.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -658,15 +658,15 @@ │ │ │ │ } │ │ │ │ final String substring = s.substring(0, n); │ │ │ │ if (s.length() < n + n2) { │ │ │ │ throw NotFoundException.getNotFoundInstance(); │ │ │ │ } │ │ │ │ final String substring2 = s.substring(n, n + n2); │ │ │ │ final String substring3 = s.substring(n + n2); │ │ │ │ - String s2 = '(' + substring + ')' + substring2; │ │ │ │ + String s2 = "(" + substring + ')' + substring2; │ │ │ │ final String fieldsInGeneralPurpose = parseFieldsInGeneralPurpose(substring3); │ │ │ │ if (fieldsInGeneralPurpose != null) { │ │ │ │ s2 += fieldsInGeneralPurpose; │ │ │ │ } │ │ │ │ return s2; │ │ │ │ } │ │ │ │ │ │ │ │ @@ -677,15 +677,15 @@ │ │ │ │ length = s.length(); │ │ │ │ } │ │ │ │ else { │ │ │ │ length = n + n2; │ │ │ │ } │ │ │ │ final String substring2 = s.substring(n, length); │ │ │ │ final String substring3 = s.substring(length); │ │ │ │ - String s2 = '(' + substring + ')' + substring2; │ │ │ │ + String s2 = "(" + substring + ')' + substring2; │ │ │ │ final String fieldsInGeneralPurpose = parseFieldsInGeneralPurpose(substring3); │ │ │ │ if (fieldsInGeneralPurpose != null) { │ │ │ │ s2 += fieldsInGeneralPurpose; │ │ │ │ } │ │ │ │ return s2; │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -258,52 +258,50 @@ │ │ │ │ } │ │ │ │ return b; │ │ │ │ } │ │ │ │ │ │ │ │ private boolean isStillAlpha(final int n) { │ │ │ │ final int n2 = 16; │ │ │ │ final int n3 = 5; │ │ │ │ - boolean b = true; │ │ │ │ + final boolean b = true; │ │ │ │ boolean b2 = false; │ │ │ │ if (n + 5 <= this.information.getSize()) { │ │ │ │ final int numericValueFromBitArray = this.extractNumericValueFromBitArray(n, n3); │ │ │ │ if (numericValueFromBitArray >= n3 && numericValueFromBitArray < n2) { │ │ │ │ b2 = b; │ │ │ │ } │ │ │ │ else if (n + 6 <= this.information.getSize()) { │ │ │ │ final int numericValueFromBitArray2 = this.extractNumericValueFromBitArray(n, 6); │ │ │ │ - if (numericValueFromBitArray2 < n2 || numericValueFromBitArray2 >= 63) { │ │ │ │ - b = false; │ │ │ │ + if (numericValueFromBitArray2 >= n2 && numericValueFromBitArray2 < 63) { │ │ │ │ + b2 = b; │ │ │ │ } │ │ │ │ - b2 = b; │ │ │ │ } │ │ │ │ } │ │ │ │ return b2; │ │ │ │ } │ │ │ │ │ │ │ │ private boolean isStillIsoIec646(final int n) { │ │ │ │ final int n2 = 5; │ │ │ │ - boolean b = true; │ │ │ │ + final boolean b = true; │ │ │ │ boolean b2 = false; │ │ │ │ if (n + 5 <= this.information.getSize()) { │ │ │ │ final int numericValueFromBitArray = this.extractNumericValueFromBitArray(n, n2); │ │ │ │ if (numericValueFromBitArray >= n2 && numericValueFromBitArray < 16) { │ │ │ │ b2 = b; │ │ │ │ } │ │ │ │ else if (n + 7 <= this.information.getSize()) { │ │ │ │ final int numericValueFromBitArray2 = this.extractNumericValueFromBitArray(n, 7); │ │ │ │ if (numericValueFromBitArray2 >= 64 && numericValueFromBitArray2 < 116) { │ │ │ │ b2 = b; │ │ │ │ } │ │ │ │ else if (n + 8 <= this.information.getSize()) { │ │ │ │ final int numericValueFromBitArray3 = this.extractNumericValueFromBitArray(n, 8); │ │ │ │ - if (numericValueFromBitArray3 < 232 || numericValueFromBitArray3 >= 253) { │ │ │ │ - b = false; │ │ │ │ + if (numericValueFromBitArray3 >= 232 && numericValueFromBitArray3 < 253) { │ │ │ │ + b2 = b; │ │ │ │ } │ │ │ │ - b2 = b; │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ return b2; │ │ │ │ } │ │ │ │ │ │ │ │ private boolean isStillNumeric(final int n) { │ │ ├── com/google/zxing/pdf417/PDF417Common.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,13 +1,14 @@ │ │ │ │ │ │ │ │ package com.google.zxing.pdf417; │ │ │ │ │ │ │ │ import java.util.Iterator; │ │ │ │ import java.util.Collection; │ │ │ │ import java.util.Arrays; │ │ │ │ +import com.google.zxing.common.detector.MathUtils; │ │ │ │ │ │ │ │ public final class PDF417Common │ │ │ │ { │ │ │ │ public static final int BARS_IN_MODULE = 8; │ │ │ │ private static final int[] CODEWORD_TABLE; │ │ │ │ private static final int[] EMPTY_INT_ARRAY; │ │ │ │ public static final int MAX_CODEWORDS_IN_BARCODE = 928; │ │ │ │ @@ -5599,19 +5600,15 @@ │ │ │ │ array2[2784] = 1478; │ │ │ │ array2[2785] = 1491; │ │ │ │ array2[2786] = 1700; │ │ │ │ CODEWORD_TABLE = codeword_TABLE; │ │ │ │ } │ │ │ │ │ │ │ │ public static int getBitCountSum(final int[] array) { │ │ │ │ - int n = 0; │ │ │ │ - for (int length = array.length, i = 0; i < length; ++i) { │ │ │ │ - n += array[i]; │ │ │ │ - } │ │ │ │ - return n; │ │ │ │ + return MathUtils.sum(array); │ │ │ │ } │ │ │ │ │ │ │ │ public static int getCodeword(final int n) { │ │ │ │ final int binarySearch = Arrays.binarySearch(PDF417Common.SYMBOL_TABLE, 0x3FFFF & n); │ │ │ │ int n2; │ │ │ │ if (binarySearch < 0) { │ │ │ │ n2 = -1; │ │ ├── com/google/zxing/pdf417/decoder/DecodedBitStreamParser.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -39,74 +39,16 @@ │ │ │ │ private static final int PAL = 29; │ │ │ │ private static final int PL = 25; │ │ │ │ private static final int PS = 29; │ │ │ │ private static final char[] PUNCT_CHARS; │ │ │ │ private static final int TEXT_COMPACTION_MODE_LATCH = 900; │ │ │ │ │ │ │ │ static { │ │ │ │ - final char[] array; │ │ │ │ - final char[] punct_CHARS = array = new char[29]; │ │ │ │ - array[0] = ';'; │ │ │ │ - array[1] = '<'; │ │ │ │ - array[2] = '>'; │ │ │ │ - array[3] = '@'; │ │ │ │ - array[4] = '['; │ │ │ │ - array[5] = '\\'; │ │ │ │ - array[6] = ']'; │ │ │ │ - array[7] = '_'; │ │ │ │ - array[8] = '`'; │ │ │ │ - array[9] = '~'; │ │ │ │ - array[10] = '!'; │ │ │ │ - array[11] = '\r'; │ │ │ │ - array[12] = '\t'; │ │ │ │ - array[13] = ','; │ │ │ │ - array[14] = ':'; │ │ │ │ - array[15] = '\n'; │ │ │ │ - array[16] = '-'; │ │ │ │ - array[17] = '.'; │ │ │ │ - array[18] = '$'; │ │ │ │ - array[19] = '/'; │ │ │ │ - array[20] = '\"'; │ │ │ │ - array[21] = '|'; │ │ │ │ - array[22] = '*'; │ │ │ │ - array[23] = '('; │ │ │ │ - array[24] = ')'; │ │ │ │ - array[25] = '?'; │ │ │ │ - array[26] = '{'; │ │ │ │ - array[27] = '}'; │ │ │ │ - array[28] = '\''; │ │ │ │ - PUNCT_CHARS = punct_CHARS; │ │ │ │ - final char[] array2; │ │ │ │ - final char[] mixed_CHARS = array2 = new char[25]; │ │ │ │ - array2[0] = '0'; │ │ │ │ - array2[1] = '1'; │ │ │ │ - array2[2] = '2'; │ │ │ │ - array2[3] = '3'; │ │ │ │ - array2[4] = '4'; │ │ │ │ - array2[5] = '5'; │ │ │ │ - array2[6] = '6'; │ │ │ │ - array2[7] = '7'; │ │ │ │ - array2[8] = '8'; │ │ │ │ - array2[9] = '9'; │ │ │ │ - array2[10] = '&'; │ │ │ │ - array2[11] = '\r'; │ │ │ │ - array2[12] = '\t'; │ │ │ │ - array2[13] = ','; │ │ │ │ - array2[14] = ':'; │ │ │ │ - array2[15] = '#'; │ │ │ │ - array2[16] = '-'; │ │ │ │ - array2[17] = '.'; │ │ │ │ - array2[18] = '$'; │ │ │ │ - array2[19] = '/'; │ │ │ │ - array2[20] = '+'; │ │ │ │ - array2[21] = '%'; │ │ │ │ - array2[22] = '*'; │ │ │ │ - array2[23] = '='; │ │ │ │ - array2[24] = '^'; │ │ │ │ - MIXED_CHARS = mixed_CHARS; │ │ │ │ + PUNCT_CHARS = ";<>@[\\]_`~!\r\t,:\n-.$/\"|*()?{}'".toCharArray(); │ │ │ │ + MIXED_CHARS = "0123456789&\r\t,:#-.$/+%*=^".toCharArray(); │ │ │ │ DEFAULT_ENCODING = Charset.forName("ISO-8859-1"); │ │ │ │ (EXP900 = new BigInteger[16])[0] = BigInteger.ONE; │ │ │ │ final BigInteger value = BigInteger.valueOf(900L); │ │ │ │ DecodedBitStreamParser.EXP900[1] = value; │ │ │ │ for (int i = 2; i < DecodedBitStreamParser.EXP900.length; ++i) { │ │ │ │ DecodedBitStreamParser.EXP900[i] = DecodedBitStreamParser.EXP900[i - 1].multiply(value); │ │ │ │ } │ │ │ │ @@ -184,75 +126,75 @@ │ │ │ │ } │ │ │ │ } │ │ │ │ sb.append(new String(byteArrayOutputStream.toByteArray(), charset)); │ │ │ │ return n2; │ │ │ │ } │ │ │ │ │ │ │ │ static DecoderResult decode(final int[] array, final String s) { │ │ │ │ - final StringBuilder sb = new StringBuilder(array.length * 2); │ │ │ │ + final StringBuilder sb = new StringBuilder(array.length << 1); │ │ │ │ Charset charset = DecodedBitStreamParser.DEFAULT_ENCODING; │ │ │ │ final int n = 1; │ │ │ │ - final int n2 = n + 1; │ │ │ │ - int n3 = array[n]; │ │ │ │ + int i = 1 + 1; │ │ │ │ + int n2 = array[n]; │ │ │ │ final PDF417ResultMetadata other = new PDF417ResultMetadata(); │ │ │ │ - int n7; │ │ │ │ - for (int i = n2; i < array[0]; i = n7) { │ │ │ │ - int n4 = 0; │ │ │ │ - switch (n3) { │ │ │ │ + while (i < array[0]) { │ │ │ │ + int n3 = 0; │ │ │ │ + switch (n2) { │ │ │ │ default: { │ │ │ │ - n4 = textCompaction(array, i - 1, sb); │ │ │ │ + n3 = textCompaction(array, i - 1, sb); │ │ │ │ break; │ │ │ │ } │ │ │ │ case 900: { │ │ │ │ - n4 = textCompaction(array, i, sb); │ │ │ │ + n3 = textCompaction(array, i, sb); │ │ │ │ break; │ │ │ │ } │ │ │ │ case 901: │ │ │ │ case 924: { │ │ │ │ - n4 = byteCompaction(n3, array, charset, i, sb); │ │ │ │ + n3 = byteCompaction(n2, array, charset, i, sb); │ │ │ │ break; │ │ │ │ } │ │ │ │ case 913: { │ │ │ │ - final int n5 = i + 1; │ │ │ │ + final int n4 = i + 1; │ │ │ │ sb.append((char)array[i]); │ │ │ │ - n4 = n5; │ │ │ │ + n3 = n4; │ │ │ │ break; │ │ │ │ } │ │ │ │ case 902: { │ │ │ │ - n4 = numericCompaction(array, i, sb); │ │ │ │ + n3 = numericCompaction(array, i, sb); │ │ │ │ break; │ │ │ │ } │ │ │ │ case 927: { │ │ │ │ - final int n6 = i + 1; │ │ │ │ + final int n5 = i + 1; │ │ │ │ charset = Charset.forName(CharacterSetECI.getCharacterSetECIByValue(array[i]).name()); │ │ │ │ - n4 = n6; │ │ │ │ + n3 = n5; │ │ │ │ break; │ │ │ │ } │ │ │ │ case 926: { │ │ │ │ - n4 = i + 2; │ │ │ │ + n3 = i + 2; │ │ │ │ break; │ │ │ │ } │ │ │ │ case 925: { │ │ │ │ - n4 = i + 1; │ │ │ │ + n3 = i + 1; │ │ │ │ break; │ │ │ │ } │ │ │ │ case 928: { │ │ │ │ - n4 = decodeMacroBlock(array, i, other); │ │ │ │ + n3 = decodeMacroBlock(array, i, other); │ │ │ │ break; │ │ │ │ } │ │ │ │ case 922: │ │ │ │ case 923: { │ │ │ │ throw FormatException.getFormatInstance(); │ │ │ │ } │ │ │ │ } │ │ │ │ - if (n4 >= array.length) { │ │ │ │ + if (n3 >= array.length) { │ │ │ │ throw FormatException.getFormatInstance(); │ │ │ │ } │ │ │ │ - n7 = n4 + 1; │ │ │ │ - n3 = array[n4]; │ │ │ │ + final int n6 = n3 + 1; │ │ │ │ + n2 = array[n3]; │ │ │ │ + i = n6; │ │ │ │ } │ │ │ │ if (sb.length() == 0) { │ │ │ │ throw FormatException.getFormatInstance(); │ │ │ │ } │ │ │ │ final DecoderResult decoderResult = new DecoderResult((byte[])null, sb.toString(), (List)null, s); │ │ │ │ decoderResult.setOther((Object)other); │ │ │ │ return decoderResult; │ │ │ │ @@ -523,16 +465,16 @@ │ │ │ │ } │ │ │ │ } │ │ │ │ return n; │ │ │ │ } │ │ │ │ │ │ │ │ private static int textCompaction(final int[] array, int n, final StringBuilder sb) { │ │ │ │ final int n2 = 900; │ │ │ │ - final int[] array2 = new int[(array[0] - n) * 2]; │ │ │ │ - final int[] array3 = new int[(array[0] - n) * 2]; │ │ │ │ + final int[] array2 = new int[array[0] - n << 1]; │ │ │ │ + final int[] array3 = new int[array[0] - n << 1]; │ │ │ │ int n3 = 0; │ │ │ │ int n4 = 0; │ │ │ │ while (n < array[0] && n4 == 0) { │ │ │ │ final int n5 = n + 1; │ │ │ │ final int n6 = array[n]; │ │ │ │ if (n6 < n2) { │ │ │ │ array2[n3] = n6 / 30; │ │ ├── com/google/zxing/pdf417/decoder/DetectionResult.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -68,53 +68,54 @@ │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ return adjustRowNumbersByRow; │ │ │ │ } │ │ │ │ │ │ │ │ private void adjustRowNumbers(final int n, final int n2, final Codeword[] array) { │ │ │ │ - final int n3 = 1; │ │ │ │ - int n4 = 0; │ │ │ │ + final int n3 = 14; │ │ │ │ + final int n4 = 1; │ │ │ │ + int n5 = 0; │ │ │ │ final Codeword codeword = array[n2]; │ │ │ │ Codeword[] array3; │ │ │ │ final Codeword[] array2 = array3 = this.detectionResultColumns[n - 1].getCodewords(); │ │ │ │ if (this.detectionResultColumns[n + 1] != null) { │ │ │ │ array3 = this.detectionResultColumns[n + 1].getCodewords(); │ │ │ │ } │ │ │ │ - final Codeword[] array4 = new Codeword[14]; │ │ │ │ + final Codeword[] array4 = new Codeword[n3]; │ │ │ │ array4[2] = array2[n2]; │ │ │ │ array4[3] = array3[n2]; │ │ │ │ if (n2 > 0) { │ │ │ │ array4[0] = array[n2 - 1]; │ │ │ │ array4[4] = array2[n2 - 1]; │ │ │ │ array4[5] = array3[n2 - 1]; │ │ │ │ } │ │ │ │ - if (n2 > n3) { │ │ │ │ + if (n2 > n4) { │ │ │ │ array4[8] = array[n2 - 2]; │ │ │ │ array4[10] = array2[n2 - 2]; │ │ │ │ array4[11] = array3[n2 - 2]; │ │ │ │ } │ │ │ │ if (n2 < array.length - 1) { │ │ │ │ - array4[n3] = array[n2 + 1]; │ │ │ │ + array4[n4] = array[n2 + 1]; │ │ │ │ array4[6] = array2[n2 + 1]; │ │ │ │ array4[7] = array3[n2 + 1]; │ │ │ │ } │ │ │ │ if (n2 < array.length - 2) { │ │ │ │ array4[9] = array[n2 + 2]; │ │ │ │ array4[12] = array2[n2 + 2]; │ │ │ │ array4[13] = array3[n2 + 2]; │ │ │ │ } │ │ │ │ - while (n4 < array4.length && !adjustRowNumber(codeword, array4[n4])) { │ │ │ │ - ++n4; │ │ │ │ + while (n5 < n3 && !adjustRowNumber(codeword, array4[n5])) { │ │ │ │ + ++n5; │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ private int adjustRowNumbersByRow() { │ │ │ │ this.adjustRowNumbersFromBothRI(); │ │ │ │ - return this.adjustRowNumbersFromRRI() + this.adjustRowNumbersFromLRI(); │ │ │ │ + return this.adjustRowNumbersFromLRI() + this.adjustRowNumbersFromRRI(); │ │ │ │ } │ │ │ │ │ │ │ │ private void adjustRowNumbersFromBothRI() { │ │ │ │ if (this.detectionResultColumns[0] != null && this.detectionResultColumns[this.barcodeColumnCount + 1] != null) { │ │ │ │ final Codeword[] codewords = this.detectionResultColumns[0].getCodewords(); │ │ │ │ final Codeword[] codewords2 = this.detectionResultColumns[this.barcodeColumnCount + 1].getCodewords(); │ │ │ │ for (int i = 0; i < codewords.length; ++i) { │ │ ├── com/google/zxing/pdf417/decoder/PDF417CodewordDecoder.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,10 +1,11 @@ │ │ │ │ │ │ │ │ package com.google.zxing.pdf417.decoder; │ │ │ │ │ │ │ │ +import com.google.zxing.common.detector.MathUtils; │ │ │ │ import java.lang.reflect.Array; │ │ │ │ import com.google.zxing.pdf417.PDF417Common; │ │ │ │ │ │ │ │ final class PDF417CodewordDecoder │ │ │ │ { │ │ │ │ private static final float[][] RATIOS_TABLE; │ │ │ │ │ │ │ │ @@ -43,18 +44,18 @@ │ │ │ │ } │ │ │ │ } │ │ │ │ return (int)n2; │ │ │ │ } │ │ │ │ │ │ │ │ private static int getClosestDecodedValue(final int[] array) { │ │ │ │ final int n = 8; │ │ │ │ - final int bitCountSum = PDF417Common.getBitCountSum(array); │ │ │ │ + final int sum = MathUtils.sum(array); │ │ │ │ final float[] array2 = new float[n]; │ │ │ │ - for (int i = 0; i < array2.length; ++i) { │ │ │ │ - array2[i] = array[i] / bitCountSum; │ │ │ │ + for (int i = 0; i < n; ++i) { │ │ │ │ + array2[i] = array[i] / sum; │ │ │ │ } │ │ │ │ float n2 = Float.MAX_VALUE; │ │ │ │ int n3 = -1; │ │ │ │ for (int j = 0; j < PDF417CodewordDecoder.RATIOS_TABLE.length; ++j) { │ │ │ │ float n4 = 0.0f; │ │ │ │ final float[] array3 = PDF417CodewordDecoder.RATIOS_TABLE[j]; │ │ │ │ for (int k = 0; k < n; ++k) { │ │ │ │ @@ -86,15 +87,15 @@ │ │ │ │ if (n == -1) { │ │ │ │ n = getClosestDecodedValue(array); │ │ │ │ } │ │ │ │ return n; │ │ │ │ } │ │ │ │ │ │ │ │ private static int[] sampleBitCounts(final int[] array) { │ │ │ │ - final float n = (float)PDF417Common.getBitCountSum(array); │ │ │ │ + final float n = (float)MathUtils.sum(array); │ │ │ │ final int[] array2 = new int[8]; │ │ │ │ int n2 = 0; │ │ │ │ int n3 = 0; │ │ │ │ for (int i = 0; i < 17; ++i) { │ │ │ │ if (array[n2] + n3 <= n / 34.0f + i * n / 17.0f) { │ │ │ │ n3 += array[n2]; │ │ │ │ ++n2; │ │ ├── com/google/zxing/pdf417/decoder/PDF417ScanningDecoder.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,17 +1,18 @@ │ │ │ │ │ │ │ │ package com.google.zxing.pdf417.decoder; │ │ │ │ │ │ │ │ import java.util.Formatter; │ │ │ │ +import com.google.zxing.common.detector.MathUtils; │ │ │ │ +import com.google.zxing.FormatException; │ │ │ │ import com.google.zxing.ResultPoint; │ │ │ │ import java.util.Collection; │ │ │ │ import com.google.zxing.pdf417.PDF417Common; │ │ │ │ import java.util.ArrayList; │ │ │ │ import com.google.zxing.common.DecoderResult; │ │ │ │ -import com.google.zxing.FormatException; │ │ │ │ import java.lang.reflect.Array; │ │ │ │ import com.google.zxing.ChecksumException; │ │ │ │ import com.google.zxing.common.BitMatrix; │ │ │ │ import com.google.zxing.NotFoundException; │ │ │ │ import com.google.zxing.pdf417.decoder.ec.ErrorCorrection; │ │ │ │ │ │ │ │ public final class PDF417ScanningDecoder │ │ │ │ @@ -56,15 +57,15 @@ │ │ │ │ } │ │ │ │ │ │ │ │ private static void adjustCodewordCount(final DetectionResult detectionResult, final BarcodeValue[][] array) { │ │ │ │ final int n = 1; │ │ │ │ final int[] value = array[0][n].getValue(); │ │ │ │ final int n2 = detectionResult.getBarcodeColumnCount() * detectionResult.getBarcodeRowCount() - getNumberOfECCodeWords(detectionResult.getBarcodeECLevel()); │ │ │ │ if (value.length == 0) { │ │ │ │ - if (n2 < n || n2 > 928) { │ │ │ │ + if (n2 <= 0 || n2 > 928) { │ │ │ │ throw NotFoundException.getNotFoundInstance(); │ │ │ │ } │ │ │ │ array[0][n].setValue(n2); │ │ │ │ } │ │ │ │ else if (value[0] != n2) { │ │ │ │ array[0][n].setValue(n2); │ │ │ │ } │ │ │ │ @@ -78,15 +79,26 @@ │ │ │ │ if (b) { │ │ │ │ n8 = -1; │ │ │ │ } │ │ │ │ else { │ │ │ │ n8 = n6; │ │ │ │ } │ │ │ │ for (int i = 0; i < n5; ++i) { │ │ │ │ - while (((b && n7 >= n) || (!b && n7 < n2)) && b == bitMatrix.get(n7, n4)) { │ │ │ │ + while (true) { │ │ │ │ + if (b) { │ │ │ │ + if (n7 < n) { │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + else if (n7 >= n2) { │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + if (b != bitMatrix.get(n7, n4)) { │ │ │ │ + break; │ │ │ │ + } │ │ │ │ if (Math.abs(n3 - n7) > n5) { │ │ │ │ return n3; │ │ │ │ } │ │ │ │ n7 += n8; │ │ │ │ } │ │ │ │ n8 = -n8; │ │ │ │ if (!b) { │ │ │ │ @@ -124,18 +136,15 @@ │ │ │ │ final DetectionResultColumn detectionResultColumn = detectionResultColumns[k]; │ │ │ │ if (detectionResultColumn != null) { │ │ │ │ final Codeword[] codewords = detectionResultColumn.getCodewords(); │ │ │ │ for (int length2 = codewords.length, l = 0; l < length2; ++l) { │ │ │ │ final Codeword codeword = codewords[l]; │ │ │ │ if (codeword != null) { │ │ │ │ final int rowNumber = codeword.getRowNumber(); │ │ │ │ - if (rowNumber >= 0) { │ │ │ │ - if (rowNumber >= array.length) { │ │ │ │ - throw FormatException.getFormatInstance(); │ │ │ │ - } │ │ │ │ + if (rowNumber >= 0 && rowNumber < array.length) { │ │ │ │ array[rowNumber][n].setValue(codeword.getValue()); │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ ++n; │ │ │ │ } │ │ │ │ @@ -171,14 +180,15 @@ │ │ │ │ } │ │ │ │ return createDecoderResultFromAmbiguousValues(detectionResult.getBarcodeECLevel(), array, PDF417Common.toIntArray((Collection)list), PDF417Common.toIntArray((Collection)list3), array2); │ │ │ │ } │ │ │ │ │ │ │ │ private static DecoderResult createDecoderResultFromAmbiguousValues(final int n, final int[] array, final int[] array2, final int[] array3, final int[][] array4) { │ │ │ │ final int[] array5 = new int[array3.length]; │ │ │ │ int n2 = 100; │ │ │ │ + Label_0018: │ │ │ │ while (true) { │ │ │ │ final int n3 = n2 - 1; │ │ │ │ if (n2 > 0) { │ │ │ │ for (int i = 0; i < array5.length; ++i) { │ │ │ │ array[array3[i]] = array4[i][array5[i]]; │ │ │ │ } │ │ │ │ try { │ │ │ │ @@ -187,15 +197,16 @@ │ │ │ │ catch (ChecksumException ex) { │ │ │ │ if (array5.length == 0) { │ │ │ │ throw ChecksumException.getChecksumInstance(); │ │ │ │ } │ │ │ │ for (int j = 0; j < array5.length; ++j) { │ │ │ │ if (array5[j] < array4[j].length - 1) { │ │ │ │ ++array5[j]; │ │ │ │ - break; │ │ │ │ + n2 = n3; │ │ │ │ + continue Label_0018; │ │ │ │ } │ │ │ │ array5[j] = 0; │ │ │ │ if (j == array5.length - 1) { │ │ │ │ throw ChecksumException.getChecksumInstance(); │ │ │ │ } │ │ │ │ } │ │ │ │ n2 = n3; │ │ │ │ @@ -248,38 +259,28 @@ │ │ │ │ o = new DetectionResultRowIndicatorColumn(boundingBox, n2 == 0); │ │ │ │ } │ │ │ │ else { │ │ │ │ o = new DetectionResultColumn(boundingBox); │ │ │ │ } │ │ │ │ merge.setDetectionResultColumn(n2, (DetectionResultColumn)o); │ │ │ │ int n3 = -1; │ │ │ │ - int k = boundingBox.getMinY(); │ │ │ │ - Label_0431_Outer: │ │ │ │ - while (k <= boundingBox.getMaxY()) { │ │ │ │ + for (int k = boundingBox.getMinY(); k <= boundingBox.getMaxY(); ++k) { │ │ │ │ int startColumn = getStartColumn(merge, n2, k, b); │ │ │ │ - while (true) { │ │ │ │ - Label_0468: { │ │ │ │ - if (startColumn >= 0 && startColumn <= boundingBox.getMaxX()) { │ │ │ │ - break Label_0468; │ │ │ │ - } │ │ │ │ - if (n3 != -1) { │ │ │ │ - startColumn = n3; │ │ │ │ - break Label_0468; │ │ │ │ - } │ │ │ │ - ++k; │ │ │ │ - continue Label_0431_Outer; │ │ │ │ - } │ │ │ │ - final Codeword detectCodeword = detectCodeword(bitMatrix, boundingBox.getMinX(), boundingBox.getMaxX(), b, startColumn, k, min, max); │ │ │ │ - if (detectCodeword != null) { │ │ │ │ - ((DetectionResultColumn)o).setCodeword(k, detectCodeword); │ │ │ │ - n3 = startColumn; │ │ │ │ - min = Math.min(min, detectCodeword.getWidth()); │ │ │ │ - max = Math.max(max, detectCodeword.getWidth()); │ │ │ │ + if (startColumn < 0 || startColumn > boundingBox.getMaxX()) { │ │ │ │ + if (n3 == -1) { │ │ │ │ + continue; │ │ │ │ } │ │ │ │ - continue; │ │ │ │ + startColumn = n3; │ │ │ │ + } │ │ │ │ + final Codeword detectCodeword = detectCodeword(bitMatrix, boundingBox.getMinX(), boundingBox.getMaxX(), b, startColumn, k, min, max); │ │ │ │ + if (detectCodeword != null) { │ │ │ │ + ((DetectionResultColumn)o).setCodeword(k, detectCodeword); │ │ │ │ + n3 = startColumn; │ │ │ │ + min = Math.min(min, detectCodeword.getWidth()); │ │ │ │ + max = Math.max(max, detectCodeword.getWidth()); │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ return createDecoderResult(merge); │ │ │ │ } │ │ │ │ │ │ │ │ @@ -300,29 +301,29 @@ │ │ │ │ adjustCodewordStartColumn = adjustCodewordStartColumn(bitMatrix, n, n2, b, adjustCodewordStartColumn, n3); │ │ │ │ final int[] moduleBitCount = getModuleBitCount(bitMatrix, n, n2, b, adjustCodewordStartColumn, n3); │ │ │ │ Codeword codeword; │ │ │ │ if (moduleBitCount == null) { │ │ │ │ codeword = null; │ │ │ │ } │ │ │ │ else { │ │ │ │ - final int bitCountSum = PDF417Common.getBitCountSum(moduleBitCount); │ │ │ │ + final int sum = MathUtils.sum(moduleBitCount); │ │ │ │ int n6; │ │ │ │ if (b) { │ │ │ │ - n6 = adjustCodewordStartColumn + bitCountSum; │ │ │ │ + n6 = adjustCodewordStartColumn + sum; │ │ │ │ } │ │ │ │ else { │ │ │ │ for (int i = 0; i < moduleBitCount.length / 2; ++i) { │ │ │ │ final int n7 = moduleBitCount[i]; │ │ │ │ moduleBitCount[i] = moduleBitCount[moduleBitCount.length - 1 - i]; │ │ │ │ moduleBitCount[moduleBitCount.length - 1 - i] = n7; │ │ │ │ } │ │ │ │ n6 = adjustCodewordStartColumn; │ │ │ │ - adjustCodewordStartColumn -= bitCountSum; │ │ │ │ + adjustCodewordStartColumn -= sum; │ │ │ │ } │ │ │ │ - if (!checkCodewordSkew(bitCountSum, n4, n5)) { │ │ │ │ + if (!checkCodewordSkew(sum, n4, n5)) { │ │ │ │ codeword = null; │ │ │ │ } │ │ │ │ else { │ │ │ │ final int decodedValue = PDF417CodewordDecoder.getDecodedValue(moduleBitCount); │ │ │ │ final int codeword2 = PDF417Common.getCodeword(decodedValue); │ │ │ │ if (codeword2 == -1) { │ │ │ │ codeword = null; │ │ │ │ @@ -332,42 +333,42 @@ │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ return codeword; │ │ │ │ } │ │ │ │ │ │ │ │ private static BarcodeMetadata getBarcodeMetadata(final DetectionResultRowIndicatorColumn detectionResultRowIndicatorColumn, final DetectionResultRowIndicatorColumn detectionResultRowIndicatorColumn2) { │ │ │ │ - BarcodeMetadata barcodeMetadata = null; │ │ │ │ if (detectionResultRowIndicatorColumn != null) { │ │ │ │ - final BarcodeMetadata barcodeMetadata2 = detectionResultRowIndicatorColumn.getBarcodeMetadata(); │ │ │ │ - if (barcodeMetadata2 != null) { │ │ │ │ - if (detectionResultRowIndicatorColumn2 != null) { │ │ │ │ - final BarcodeMetadata barcodeMetadata3 = detectionResultRowIndicatorColumn2.getBarcodeMetadata(); │ │ │ │ - if (barcodeMetadata3 != null) { │ │ │ │ - if (barcodeMetadata2.getColumnCount() == barcodeMetadata3.getColumnCount() || barcodeMetadata2.getErrorCorrectionLevel() == barcodeMetadata3.getErrorCorrectionLevel() || barcodeMetadata2.getRowCount() == barcodeMetadata3.getRowCount()) { │ │ │ │ - barcodeMetadata = barcodeMetadata2; │ │ │ │ - return barcodeMetadata; │ │ │ │ - } │ │ │ │ - return barcodeMetadata; │ │ │ │ - } │ │ │ │ + BarcodeMetadata barcodeMetadata = detectionResultRowIndicatorColumn.getBarcodeMetadata(); │ │ │ │ + if (barcodeMetadata != null) { │ │ │ │ + if (detectionResultRowIndicatorColumn2 == null) { │ │ │ │ + return barcodeMetadata; │ │ │ │ + } │ │ │ │ + final BarcodeMetadata barcodeMetadata2 = detectionResultRowIndicatorColumn2.getBarcodeMetadata(); │ │ │ │ + if (barcodeMetadata2 != null && barcodeMetadata.getColumnCount() != barcodeMetadata2.getColumnCount() && barcodeMetadata.getErrorCorrectionLevel() != barcodeMetadata2.getErrorCorrectionLevel() && barcodeMetadata.getRowCount() != barcodeMetadata2.getRowCount()) { │ │ │ │ + barcodeMetadata = null; │ │ │ │ + return barcodeMetadata; │ │ │ │ } │ │ │ │ - barcodeMetadata = barcodeMetadata2; │ │ │ │ return barcodeMetadata; │ │ │ │ } │ │ │ │ } │ │ │ │ - if (detectionResultRowIndicatorColumn2 != null) { │ │ │ │ + BarcodeMetadata barcodeMetadata; │ │ │ │ + if (detectionResultRowIndicatorColumn2 == null) { │ │ │ │ + barcodeMetadata = null; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ barcodeMetadata = detectionResultRowIndicatorColumn2.getBarcodeMetadata(); │ │ │ │ } │ │ │ │ return barcodeMetadata; │ │ │ │ } │ │ │ │ │ │ │ │ private static int[] getBitCountForCodeword(int n) { │ │ │ │ final int[] array = new int[8]; │ │ │ │ int n2 = 0; │ │ │ │ - int n3 = array.length - 1; │ │ │ │ + int n3 = 7; │ │ │ │ while (true) { │ │ │ │ if ((n & 0x1) != n2) { │ │ │ │ n2 = (n & 0x1); │ │ │ │ --n3; │ │ │ │ if (n3 < 0) { │ │ │ │ break; │ │ │ │ } │ │ │ │ @@ -390,39 +391,56 @@ │ │ │ │ int max = -1; │ │ │ │ for (int length = array.length, i = 0; i < length; ++i) { │ │ │ │ max = Math.max(max, array[i]); │ │ │ │ } │ │ │ │ return max; │ │ │ │ } │ │ │ │ │ │ │ │ - private static int[] getModuleBitCount(final BitMatrix bitMatrix, final int n, final int n2, final boolean b, final int n3, final int n4) { │ │ │ │ + private static int[] getModuleBitCount(final BitMatrix bitMatrix, final int n, int n2, final boolean b, final int n3, final int n4) { │ │ │ │ final boolean b2 = true; │ │ │ │ - int n5 = n3; │ │ │ │ - int[] array = new int[8]; │ │ │ │ - int n6 = 0; │ │ │ │ - int n7; │ │ │ │ + final int n5 = 8; │ │ │ │ + int n6 = n3; │ │ │ │ + int[] array = new int[n5]; │ │ │ │ + int n7 = 0; │ │ │ │ + int n8; │ │ │ │ if (b) { │ │ │ │ - n7 = (b2 ? 1 : 0); │ │ │ │ + n8 = (b2 ? 1 : 0); │ │ │ │ } │ │ │ │ else { │ │ │ │ - n7 = -1; │ │ │ │ + n8 = -1; │ │ │ │ } │ │ │ │ boolean b3 = b; │ │ │ │ - while (((b && n5 < n2) || (!b && n5 >= n)) && n6 < array.length) { │ │ │ │ - if (bitMatrix.get(n5, n4) == b3) { │ │ │ │ - ++array[n6]; │ │ │ │ - n5 += n7; │ │ │ │ + while (true) { │ │ │ │ + if (b) { │ │ │ │ + if (n6 >= n2) { │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + else if (n6 < n) { │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + if (n7 >= n5) { │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + if (bitMatrix.get(n6, n4) == b3) { │ │ │ │ + ++array[n7]; │ │ │ │ + n6 += n8; │ │ │ │ } │ │ │ │ else { │ │ │ │ - ++n6; │ │ │ │ + ++n7; │ │ │ │ b3 = (!b3 && b2); │ │ │ │ } │ │ │ │ } │ │ │ │ - if (n6 != array.length && (((b || n5 != n2) && (b || n5 != n)) || n6 != array.length - 1)) { │ │ │ │ - array = null; │ │ │ │ + if (n7 != n5) { │ │ │ │ + if (!b) { │ │ │ │ + n2 = n; │ │ │ │ + } │ │ │ │ + if (n6 != n2 || n7 != 7) { │ │ │ │ + array = null; │ │ │ │ + } │ │ │ │ } │ │ │ │ return array; │ │ │ │ } │ │ │ │ │ │ │ │ private static int getNumberOfECCodeWords(final int n) { │ │ │ │ return 2 << n; │ │ │ │ } │ │ │ │ @@ -552,23 +570,21 @@ │ │ │ │ final String s = "Row %2d: "; │ │ │ │ final Object[] array2 = new Object[n]; │ │ │ │ array2[0] = i; │ │ │ │ formatter.format(s, array2); │ │ │ │ for (int j = 0; j < array[i].length; ++j) { │ │ │ │ final BarcodeValue barcodeValue = array[i][j]; │ │ │ │ if (barcodeValue.getValue().length == 0) { │ │ │ │ - final String s2 = " "; │ │ │ │ - final Object[] array3 = (Object[])null; │ │ │ │ - formatter.format(s2, (Object[])null); │ │ │ │ + formatter.format(" ", (Object[])null); │ │ │ │ } │ │ │ │ else { │ │ │ │ - final String s3 = "%4d(%2d)"; │ │ │ │ - final Object[] array4 = { barcodeValue.getValue()[0], null }; │ │ │ │ - array4[n] = barcodeValue.getConfidence(barcodeValue.getValue()[0]); │ │ │ │ - formatter.format(s3, array4); │ │ │ │ + final String s2 = "%4d(%2d)"; │ │ │ │ + final Object[] array3 = { barcodeValue.getValue()[0], null }; │ │ │ │ + array3[n] = barcodeValue.getConfidence(barcodeValue.getValue()[0]); │ │ │ │ + formatter.format(s2, array3); │ │ │ │ } │ │ │ │ } │ │ │ │ formatter.format("%n", new Object[0]); │ │ │ │ } │ │ │ │ final String string = formatter.toString(); │ │ │ │ formatter.close(); │ │ │ │ return string; │ │ ├── com/google/zxing/pdf417/decoder/ec/ModulusPoly.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -59,53 +59,30 @@ │ │ │ │ } │ │ │ │ o = new ModulusPoly(this.field, array2); │ │ │ │ } │ │ │ │ } │ │ │ │ return (ModulusPoly)o; │ │ │ │ } │ │ │ │ │ │ │ │ - ModulusPoly[] divide(final ModulusPoly modulusPoly) { │ │ │ │ - if (!this.field.equals(modulusPoly.field)) { │ │ │ │ - throw new IllegalArgumentException("ModulusPolys do not have same ModulusGF field"); │ │ │ │ - } │ │ │ │ - if (modulusPoly.isZero()) { │ │ │ │ - throw new IllegalArgumentException("Divide by 0"); │ │ │ │ - } │ │ │ │ - ModulusPoly modulusPoly2 = this.field.getZero(); │ │ │ │ - ModulusPoly subtract = this; │ │ │ │ - final int inverse = this.field.inverse(modulusPoly.getCoefficient(modulusPoly.getDegree())); │ │ │ │ - while (subtract.getDegree() >= modulusPoly.getDegree() && !subtract.isZero()) { │ │ │ │ - final int n = subtract.getDegree() - modulusPoly.getDegree(); │ │ │ │ - final int multiply = this.field.multiply(subtract.getCoefficient(subtract.getDegree()), inverse); │ │ │ │ - final ModulusPoly multiplyByMonomial = modulusPoly.multiplyByMonomial(n, multiply); │ │ │ │ - modulusPoly2 = modulusPoly2.add(this.field.buildMonomial(n, multiply)); │ │ │ │ - subtract = subtract.subtract(multiplyByMonomial); │ │ │ │ - } │ │ │ │ - return new ModulusPoly[] { modulusPoly2, subtract }; │ │ │ │ - } │ │ │ │ - │ │ │ │ int evaluateAt(final int n) { │ │ │ │ int i = 0; │ │ │ │ int n2; │ │ │ │ if (n == 0) { │ │ │ │ n2 = this.getCoefficient(0); │ │ │ │ } │ │ │ │ - else { │ │ │ │ - final int length = this.coefficients.length; │ │ │ │ - if (n == 1) { │ │ │ │ - n2 = 0; │ │ │ │ - for (int[] coefficients = this.coefficients; i < coefficients.length; ++i) { │ │ │ │ - n2 = this.field.add(n2, coefficients[i]); │ │ │ │ - } │ │ │ │ + else if (n == 1) { │ │ │ │ + n2 = 0; │ │ │ │ + for (int[] coefficients = this.coefficients; i < coefficients.length; ++i) { │ │ │ │ + n2 = this.field.add(n2, coefficients[i]); │ │ │ │ } │ │ │ │ - else { │ │ │ │ - n2 = this.coefficients[0]; │ │ │ │ - for (int j = 1; j < length; ++j) { │ │ │ │ - n2 = this.field.add(this.field.multiply(n, n2), this.coefficients[j]); │ │ │ │ - } │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + n2 = this.coefficients[0]; │ │ │ │ + for (int length = this.coefficients.length, j = 1; j < length; ++j) { │ │ │ │ + n2 = this.field.add(this.field.multiply(n, n2), this.coefficients[j]); │ │ │ │ } │ │ │ │ } │ │ │ │ return n2; │ │ │ │ } │ │ │ │ │ │ │ │ int getCoefficient(final int n) { │ │ │ │ return this.coefficients[this.coefficients.length - 1 - n]; │ │ ├── com/google/zxing/pdf417/detector/Detector.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -120,28 +120,28 @@ │ │ │ │ } │ │ │ │ } │ │ │ │ return list; │ │ │ │ } │ │ │ │ │ │ │ │ private static int[] findGuardPattern(final BitMatrix bitMatrix, final int n, final int n2, final int n3, final boolean b, final int[] array, final int[] array2) { │ │ │ │ Arrays.fill(array2, 0, array2.length, 0); │ │ │ │ - final int length = array.length; │ │ │ │ - boolean b2 = b; │ │ │ │ int n4 = n; │ │ │ │ int n5 = 0; │ │ │ │ while (bitMatrix.get(n4, n2) && n4 > 0) { │ │ │ │ final int n6 = n5 + 1; │ │ │ │ if (n5 >= 3) { │ │ │ │ break; │ │ │ │ } │ │ │ │ --n4; │ │ │ │ n5 = n6; │ │ │ │ } │ │ │ │ int i = n4; │ │ │ │ int n7 = 0; │ │ │ │ + final int length = array.length; │ │ │ │ + boolean b2 = b; │ │ │ │ while (i < n3) { │ │ │ │ if (bitMatrix.get(i, n2) ^ b2) { │ │ │ │ ++array2[n7]; │ │ │ │ } │ │ │ │ else { │ │ │ │ if (n7 == length - 1) { │ │ │ │ if (patternMatchVariance(array2, array, 0.8f) < 0.42f) { │ │ │ │ @@ -152,15 +152,15 @@ │ │ │ │ array2[length - 1] = (array2[length - 2] = 0); │ │ │ │ --n7; │ │ │ │ } │ │ │ │ else { │ │ │ │ ++n7; │ │ │ │ } │ │ │ │ array2[n7] = 1; │ │ │ │ - b2 = (!b2 && true); │ │ │ │ + b2 = !b2; │ │ │ │ } │ │ │ │ ++i; │ │ │ │ } │ │ │ │ if (n7 == length - 1 && patternMatchVariance(array2, array, 0.8f) < 0.42f) { │ │ │ │ return new int[] { n4, i - 1 }; │ │ │ │ } │ │ │ │ return null; │ │ │ │ @@ -208,15 +208,15 @@ │ │ │ │ ++j; │ │ │ │ } │ │ │ │ j -= n4 + 1; │ │ │ │ array2[2] = new ResultPoint((float)array4[0], (float)j); │ │ │ │ array2[3] = new ResultPoint((float)array4[1], (float)j); │ │ │ │ } │ │ │ │ if (j - i < 10) { │ │ │ │ - for (int k = 0; k < array2.length; ++k) { │ │ │ │ + for (int k = 0; k < 4; ++k) { │ │ │ │ array2[k] = null; │ │ │ │ } │ │ │ │ } │ │ │ │ return array2; │ │ │ │ } │ │ │ │ │ │ │ │ private static ResultPoint[] findVertices(final BitMatrix bitMatrix, int n, int n2) { │ │ ├── com/google/zxing/pdf417/encoder/BarcodeRow.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -7,14 +7,26 @@ │ │ │ │ private final byte[] row; │ │ │ │ │ │ │ │ BarcodeRow(final int n) { │ │ │ │ this.row = new byte[n]; │ │ │ │ this.currentLocation = 0; │ │ │ │ } │ │ │ │ │ │ │ │ + private void set(final int n, final boolean b) { │ │ │ │ + final byte[] row = this.row; │ │ │ │ + boolean b2; │ │ │ │ + if (b) { │ │ │ │ + b2 = true; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + b2 = false; │ │ │ │ + } │ │ │ │ + row[n] = (byte)(b2 ? 1 : 0); │ │ │ │ + } │ │ │ │ + │ │ │ │ void addBar(final boolean b, final int n) { │ │ │ │ for (int i = 0; i < n; ++i) { │ │ │ │ this.set(this.currentLocation++, b); │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ byte[] getScaledRow(final int n) { │ │ │ │ @@ -24,20 +36,8 @@ │ │ │ │ } │ │ │ │ return array; │ │ │ │ } │ │ │ │ │ │ │ │ void set(final int n, final byte b) { │ │ │ │ this.row[n] = b; │ │ │ │ } │ │ │ │ - │ │ │ │ - void set(final int n, final boolean b) { │ │ │ │ - final byte[] row = this.row; │ │ │ │ - boolean b2; │ │ │ │ - if (b) { │ │ │ │ - b2 = true; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - b2 = false; │ │ │ │ - } │ │ │ │ - row[n] = (byte)(b2 ? 1 : 0); │ │ │ │ - } │ │ │ │ } │ │ ├── com/google/zxing/pdf417/encoder/PDF417.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -2963,25 +2963,27 @@ │ │ │ │ final String encodeHighLevel = PDF417HighLevelEncoder.encodeHighLevel(s, this.compaction, this.encoding); │ │ │ │ final int length = encodeHighLevel.length(); │ │ │ │ final int[] determineDimensions = this.determineDimensions(length, errorCorrectionCodewordCount); │ │ │ │ final int n2 = determineDimensions[0]; │ │ │ │ final int n3 = determineDimensions[1]; │ │ │ │ final int numberOfPadCodewords = getNumberOfPadCodewords(length, errorCorrectionCodewordCount, n2, n3); │ │ │ │ if (length + errorCorrectionCodewordCount + 1 > 929) { │ │ │ │ - throw new WriterException("Encoded message contains to many code words, message to big (" + s.length() + " bytes)"); │ │ │ │ + throw new WriterException("Encoded message contains too many code words, message too big (" + s.length() + " bytes)"); │ │ │ │ } │ │ │ │ final int n4 = length + numberOfPadCodewords + 1; │ │ │ │ final StringBuilder sb = new StringBuilder(n4); │ │ │ │ sb.append((char)n4); │ │ │ │ sb.append(encodeHighLevel); │ │ │ │ for (int i = 0; i < numberOfPadCodewords; ++i) { │ │ │ │ sb.append('\u0384'); │ │ │ │ } │ │ │ │ final String string = sb.toString(); │ │ │ │ - this.encodeLowLevel(string + PDF417ErrorCorrection.generateErrorCorrection((CharSequence)string, n), n2, n3, n, this.barcodeMatrix = new BarcodeMatrix(n3, n2)); │ │ │ │ + final String generateErrorCorrection = PDF417ErrorCorrection.generateErrorCorrection((CharSequence)string, n); │ │ │ │ + this.barcodeMatrix = new BarcodeMatrix(n3, n2); │ │ │ │ + this.encodeLowLevel(string + generateErrorCorrection, n2, n3, n, this.barcodeMatrix); │ │ │ │ } │ │ │ │ │ │ │ │ public BarcodeMatrix getBarcodeMatrix() { │ │ │ │ return this.barcodeMatrix; │ │ │ │ } │ │ │ │ │ │ │ │ public void setCompact(final boolean compact) { │ │ ├── com/google/zxing/pdf417/encoder/PDF417ErrorCorrection.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1064,16 +1064,16 @@ │ │ │ │ EC_COEFFICIENTS = ec_COEFFICIENTS; │ │ │ │ } │ │ │ │ │ │ │ │ static String generateErrorCorrection(final CharSequence charSequence, final int n) { │ │ │ │ final int errorCorrectionCodewordCount = getErrorCorrectionCodewordCount(n); │ │ │ │ final char[] array = new char[errorCorrectionCodewordCount]; │ │ │ │ for (int length = charSequence.length(), i = 0; i < length; ++i) { │ │ │ │ - final char c = (char)((charSequence.charAt(i) + array[array.length - 1]) % '\u03a1'); │ │ │ │ - for (int j = errorCorrectionCodewordCount - 1; j >= 1; --j) { │ │ │ │ + final char c = (char)((charSequence.charAt(i) + array[errorCorrectionCodewordCount - 1]) % '\u03a1'); │ │ │ │ + for (int j = errorCorrectionCodewordCount - 1; j > 0; --j) { │ │ │ │ array[j] = (char)((array[j - 1] + (929 - PDF417ErrorCorrection.EC_COEFFICIENTS[n][j] * c % 929)) % 929); │ │ │ │ } │ │ │ │ array[0] = (char)((929 - PDF417ErrorCorrection.EC_COEFFICIENTS[n][0] * c % 929) % 929); │ │ │ │ } │ │ │ │ final StringBuilder sb = new StringBuilder(errorCorrectionCodewordCount); │ │ │ │ for (int k = errorCorrectionCodewordCount - 1; k >= 0; --k) { │ │ │ │ if (array[k] != '\0') { │ │ ├── com/google/zxing/pdf417/encoder/PDF417HighLevelEncoder.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -104,25 +104,25 @@ │ │ │ │ array2[28] = 39; │ │ │ │ array2[29] = 0; │ │ │ │ TEXT_PUNCTUATION_RAW = text_PUNCTUATION_RAW; │ │ │ │ MIXED = new byte[n]; │ │ │ │ PUNCTUATION = new byte[n]; │ │ │ │ DEFAULT_ENCODING = Charset.forName("ISO-8859-1"); │ │ │ │ Arrays.fill(PDF417HighLevelEncoder.MIXED, b); │ │ │ │ - for (byte b2 = 0; b2 < PDF417HighLevelEncoder.TEXT_MIXED_RAW.length; ++b2) { │ │ │ │ - final byte b3 = PDF417HighLevelEncoder.TEXT_MIXED_RAW[b2]; │ │ │ │ - if (b3 > 0) { │ │ │ │ - PDF417HighLevelEncoder.MIXED[b3] = b2; │ │ │ │ + for (int i = 0; i < PDF417HighLevelEncoder.TEXT_MIXED_RAW.length; ++i) { │ │ │ │ + final byte b2 = PDF417HighLevelEncoder.TEXT_MIXED_RAW[i]; │ │ │ │ + if (b2 > 0) { │ │ │ │ + PDF417HighLevelEncoder.MIXED[b2] = (byte)i; │ │ │ │ } │ │ │ │ } │ │ │ │ Arrays.fill(PDF417HighLevelEncoder.PUNCTUATION, b); │ │ │ │ - for (byte b4 = 0; b4 < PDF417HighLevelEncoder.TEXT_PUNCTUATION_RAW.length; ++b4) { │ │ │ │ - final byte b5 = PDF417HighLevelEncoder.TEXT_PUNCTUATION_RAW[b4]; │ │ │ │ - if (b5 > 0) { │ │ │ │ - PDF417HighLevelEncoder.PUNCTUATION[b5] = b4; │ │ │ │ + for (int j = 0; j < PDF417HighLevelEncoder.TEXT_PUNCTUATION_RAW.length; ++j) { │ │ │ │ + final byte b3 = PDF417HighLevelEncoder.TEXT_PUNCTUATION_RAW[j]; │ │ │ │ + if (b3 > 0) { │ │ │ │ + PDF417HighLevelEncoder.PUNCTUATION[b3] = (byte)j; │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ private static int determineConsecutiveBinaryCount(final String s, final int n, final Charset charset) { │ │ │ │ final int n2 = 13; │ │ │ │ final CharsetEncoder encoder = charset.newEncoder(); │ │ │ │ @@ -190,48 +190,39 @@ │ │ │ │ return i - n; │ │ │ │ } │ │ │ │ │ │ │ │ private static void encodeBinary(final byte[] array, final int n, final int n2, final int n3, final StringBuilder sb) { │ │ │ │ if (n2 == 1 && n3 == 0) { │ │ │ │ sb.append('\u0391'); │ │ │ │ } │ │ │ │ + else if (n2 % 6 == 0) { │ │ │ │ + sb.append('\u039c'); │ │ │ │ + } │ │ │ │ else { │ │ │ │ - int n4; │ │ │ │ - if (n2 % 6 == 0) { │ │ │ │ - n4 = 1; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - n4 = 0; │ │ │ │ - } │ │ │ │ - if (n4 != 0) { │ │ │ │ - sb.append('\u039c'); │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - sb.append('\u0385'); │ │ │ │ - } │ │ │ │ + sb.append('\u0385'); │ │ │ │ } │ │ │ │ - int n5 = n; │ │ │ │ + int n4 = n; │ │ │ │ if (n2 >= 6) { │ │ │ │ final char[] array2 = new char[5]; │ │ │ │ - while (n + n2 - n5 >= 6) { │ │ │ │ - long n6 = 0L; │ │ │ │ + while (n + n2 - n4 >= 6) { │ │ │ │ + long n5 = 0L; │ │ │ │ for (int i = 0; i < 6; ++i) { │ │ │ │ - n6 = (n6 << 8) + (array[n5 + i] & 0xFF); │ │ │ │ + n5 = (n5 << 8) + (array[n4 + i] & 0xFF); │ │ │ │ } │ │ │ │ for (int j = 0; j < 5; ++j) { │ │ │ │ - array2[j] = (char)(n6 % 900L); │ │ │ │ - n6 /= 900L; │ │ │ │ + array2[j] = (char)(n5 % 900L); │ │ │ │ + n5 /= 900L; │ │ │ │ } │ │ │ │ - for (int k = array2.length - 1; k >= 0; --k) { │ │ │ │ + for (int k = 4; k >= 0; --k) { │ │ │ │ sb.append(array2[k]); │ │ │ │ } │ │ │ │ - n5 += 6; │ │ │ │ + n4 += 6; │ │ │ │ } │ │ │ │ } │ │ │ │ - for (int l = n5; l < n + n2; ++l) { │ │ │ │ + for (int l = n4; l < n + n2; ++l) { │ │ │ │ sb.append((char)(array[l] & 0xFF)); │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ static String encodeHighLevel(final String s, final Compaction compaction, Charset default_ENCODING) { │ │ │ │ final StringBuilder sb = new StringBuilder(s.length()); │ │ │ │ if (default_ENCODING == null) { │ │ │ │ @@ -305,15 +296,15 @@ │ │ │ │ int i = 0; │ │ │ │ final StringBuilder sb2 = new StringBuilder(n2 / 3 + 1); │ │ │ │ final BigInteger value = BigInteger.valueOf(900L); │ │ │ │ final BigInteger value2 = BigInteger.valueOf(0L); │ │ │ │ while (i < n2) { │ │ │ │ sb2.setLength(0); │ │ │ │ final int min = Math.min(44, n2 - i); │ │ │ │ - BigInteger divide = new BigInteger('1' + s.substring(n + i, n + i + min)); │ │ │ │ + BigInteger divide = new BigInteger("1" + s.substring(n + i, n + i + min)); │ │ │ │ do { │ │ │ │ sb2.append((char)divide.mod(value).intValue()); │ │ │ │ divide = divide.divide(value); │ │ │ │ } while (!divide.equals(value2)); │ │ │ │ for (int j = sb2.length() - 1; j >= 0; --j) { │ │ │ │ sb.append(sb2.charAt(j)); │ │ │ │ } │ │ ├── com/google/zxing/qrcode/decoder/BitMatrixParser.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -47,17 +47,17 @@ │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ byte[] readCodewords() { │ │ │ │ final FormatInformation formatInformation = this.readFormatInformation(); │ │ │ │ final Version version = this.readVersion(); │ │ │ │ - final DataMask forReference = DataMask.forReference((int)formatInformation.getDataMask()); │ │ │ │ + final DataMask dataMask = DataMask.values()[formatInformation.getDataMask()]; │ │ │ │ final int height = this.bitMatrix.getHeight(); │ │ │ │ - forReference.unmaskBitMatrix(this.bitMatrix, height); │ │ │ │ + dataMask.unmaskBitMatrix(this.bitMatrix, height); │ │ │ │ final BitMatrix buildFunctionPattern = version.buildFunctionPattern(); │ │ │ │ int n = 1; │ │ │ │ final byte[] array = new byte[version.getTotalCodewords()]; │ │ │ │ int n2 = 0; │ │ │ │ int n3 = 0; │ │ │ │ int n4 = 0; │ │ │ │ for (int i = height - 1; i > 0; i -= 2) { │ │ │ │ @@ -71,36 +71,36 @@ │ │ │ │ n5 = height - 1 - j; │ │ │ │ } │ │ │ │ else { │ │ │ │ n5 = j; │ │ │ │ } │ │ │ │ int k = 0; │ │ │ │ n6 = n2; │ │ │ │ - Label_0286_Outer: │ │ │ │ + Label_0304_Outer: │ │ │ │ while (k < 2) { │ │ │ │ while (true) { │ │ │ │ - Label_0359: { │ │ │ │ + Label_0377: { │ │ │ │ if (buildFunctionPattern.get(i - k, n5)) { │ │ │ │ - break Label_0359; │ │ │ │ + break Label_0377; │ │ │ │ } │ │ │ │ ++n4; │ │ │ │ n3 <<= 1; │ │ │ │ if (this.bitMatrix.get(i - k, n5)) { │ │ │ │ n3 |= 0x1; │ │ │ │ } │ │ │ │ if (n4 != 8) { │ │ │ │ - break Label_0359; │ │ │ │ + break Label_0377; │ │ │ │ } │ │ │ │ final int n7 = n6 + 1; │ │ │ │ array[n6] = (byte)n3; │ │ │ │ n4 = 0; │ │ │ │ n3 = 0; │ │ │ │ ++k; │ │ │ │ n6 = n7; │ │ │ │ - continue Label_0286_Outer; │ │ │ │ + continue Label_0304_Outer; │ │ │ │ } │ │ │ │ final int n7 = n6; │ │ │ │ continue; │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ n ^= 0x1; │ │ │ │ @@ -183,15 +183,15 @@ │ │ │ │ } │ │ │ │ } │ │ │ │ return version; │ │ │ │ } │ │ │ │ │ │ │ │ void remask() { │ │ │ │ if (this.parsedFormatInfo != null) { │ │ │ │ - DataMask.forReference((int)this.parsedFormatInfo.getDataMask()).unmaskBitMatrix(this.bitMatrix, this.bitMatrix.getHeight()); │ │ │ │ + DataMask.values()[this.parsedFormatInfo.getDataMask()].unmaskBitMatrix(this.bitMatrix, this.bitMatrix.getHeight()); │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ void setMirror(final boolean mirror) { │ │ │ │ this.parsedVersion = null; │ │ │ │ this.parsedFormatInfo = null; │ │ │ │ this.mirror = mirror; │ │ ├── com/google/zxing/qrcode/decoder/DataBlock.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -31,62 +31,62 @@ │ │ │ │ final int n3 = ecBlocksForLevel.getECCodewordsPerBlock() + dataCodewords; │ │ │ │ n4 = n2 + 1; │ │ │ │ array2[n2] = new DataBlock(dataCodewords, new byte[n3]); │ │ │ │ } │ │ │ │ } │ │ │ │ int length3; │ │ │ │ int n5; │ │ │ │ - int n6; │ │ │ │ - for (length3 = array2[0].codewords.length, n5 = array2.length - 1; n5 >= 0 && array2[n5].codewords.length != (n6 = length3); --n5) {} │ │ │ │ - final int n7 = n5 + 1; │ │ │ │ - final int n8 = length3 - ecBlocksForLevel.getECCodewordsPerBlock(); │ │ │ │ - int n9 = 0; │ │ │ │ - int n11; │ │ │ │ - for (int l = 0; l < n8; ++l, n9 = n11) { │ │ │ │ - int n10 = 0; │ │ │ │ - n11 = n9; │ │ │ │ - while (n10 < n2) { │ │ │ │ - final byte[] codewords = array2[n10].codewords; │ │ │ │ - final int n12 = n11 + 1; │ │ │ │ - codewords[l] = array[n11]; │ │ │ │ - ++n10; │ │ │ │ - n11 = n12; │ │ │ │ + int length4; │ │ │ │ + for (length3 = array2[0].codewords.length, n5 = array2.length - 1; n5 >= 0 && (length4 = array2[n5].codewords.length) != length3; --n5) {} │ │ │ │ + final int n6 = n5 + 1; │ │ │ │ + final int n7 = length3 - ecBlocksForLevel.getECCodewordsPerBlock(); │ │ │ │ + int n8 = 0; │ │ │ │ + int n10; │ │ │ │ + for (int l = 0; l < n7; ++l, n8 = n10) { │ │ │ │ + int n9 = 0; │ │ │ │ + n10 = n8; │ │ │ │ + while (n9 < n2) { │ │ │ │ + final byte[] codewords = array2[n9].codewords; │ │ │ │ + final int n11 = n10 + 1; │ │ │ │ + codewords[l] = array[n10]; │ │ │ │ + ++n9; │ │ │ │ + n10 = n11; │ │ │ │ } │ │ │ │ } │ │ │ │ - int n13 = n7; │ │ │ │ - int n14 = n9; │ │ │ │ - while (n13 < n2) { │ │ │ │ - final byte[] codewords2 = array2[n13].codewords; │ │ │ │ - final int n15 = n14 + 1; │ │ │ │ - codewords2[n8] = array[n14]; │ │ │ │ - ++n13; │ │ │ │ - n14 = n15; │ │ │ │ + int n12 = n6; │ │ │ │ + int n13 = n8; │ │ │ │ + while (n12 < n2) { │ │ │ │ + final byte[] codewords2 = array2[n12].codewords; │ │ │ │ + final int n14 = n13 + 1; │ │ │ │ + codewords2[n7] = array[n13]; │ │ │ │ + ++n12; │ │ │ │ + n13 = n14; │ │ │ │ } │ │ │ │ - final int length4 = array2[0].codewords.length; │ │ │ │ - int n16 = n8; │ │ │ │ - int n17 = n14; │ │ │ │ - while (n16 < length4) { │ │ │ │ - int n18 = 0; │ │ │ │ - int n19 = n17; │ │ │ │ - while (n18 < n2) { │ │ │ │ - int n20; │ │ │ │ - if (n18 < n7) { │ │ │ │ - n20 = n16; │ │ │ │ + final int length5 = array2[0].codewords.length; │ │ │ │ + int n15 = n7; │ │ │ │ + int n16 = n13; │ │ │ │ + while (n15 < length5) { │ │ │ │ + int n17 = 0; │ │ │ │ + int n18 = n16; │ │ │ │ + while (n17 < n2) { │ │ │ │ + int n19; │ │ │ │ + if (n17 < n6) { │ │ │ │ + n19 = n15; │ │ │ │ } │ │ │ │ else { │ │ │ │ - n20 = n16 + 1; │ │ │ │ + n19 = n15 + 1; │ │ │ │ } │ │ │ │ - final byte[] codewords3 = array2[n18].codewords; │ │ │ │ - final int n21 = n19 + 1; │ │ │ │ - codewords3[n20] = array[n19]; │ │ │ │ - ++n18; │ │ │ │ - n19 = n21; │ │ │ │ + final byte[] codewords3 = array2[n17].codewords; │ │ │ │ + final int n20 = n18 + 1; │ │ │ │ + codewords3[n19] = array[n18]; │ │ │ │ + ++n17; │ │ │ │ + n18 = n20; │ │ │ │ } │ │ │ │ - ++n16; │ │ │ │ - n17 = n19; │ │ │ │ + ++n15; │ │ │ │ + n16 = n18; │ │ │ │ } │ │ │ │ return array2; │ │ │ │ } │ │ │ │ │ │ │ │ byte[] getCodewords() { │ │ │ │ return this.codewords; │ │ │ │ } │ │ ├── com/google/zxing/qrcode/decoder/DataMask$1.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,6 +1,12 @@ │ │ │ │ │ │ │ │ package com.google.zxing.qrcode.decoder; │ │ │ │ │ │ │ │ -class DataMask$1 │ │ │ │ +enum DataMask$1 │ │ │ │ { │ │ │ │ + DataMask$1(final String s, final int n) { │ │ │ │ + } │ │ │ │ + │ │ │ │ + boolean isMasked(final int n, final int n2) { │ │ │ │ + return (n + n2 & 0x1) == 0x0; │ │ │ │ + } │ │ │ │ } │ │ ├── com/google/zxing/qrcode/decoder/DataMask.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,25 +1,41 @@ │ │ │ │ │ │ │ │ package com.google.zxing.qrcode.decoder; │ │ │ │ │ │ │ │ import com.google.zxing.common.BitMatrix; │ │ │ │ │ │ │ │ -abstract class DataMask │ │ │ │ +enum DataMask │ │ │ │ { │ │ │ │ - private static final DataMask[] DATA_MASKS; │ │ │ │ + DATA_MASK_000("DATA_MASK_000", 0), │ │ │ │ + DATA_MASK_001("DATA_MASK_001", n4), │ │ │ │ + DATA_MASK_010("DATA_MASK_010", n3), │ │ │ │ + DATA_MASK_011("DATA_MASK_011", n2), │ │ │ │ + DATA_MASK_100("DATA_MASK_100", n), │ │ │ │ + DATA_MASK_101("DATA_MASK_101", 5), │ │ │ │ + DATA_MASK_110("DATA_MASK_110", 6), │ │ │ │ + DATA_MASK_111("DATA_MASK_111", 7); │ │ │ │ │ │ │ │ static { │ │ │ │ - DATA_MASKS = new DataMask[] { new DataMask$DataMask000((DataMask$1)null), new DataMask$DataMask001((DataMask$1)null), new DataMask$DataMask010((DataMask$1)null), new DataMask$DataMask011((DataMask$1)null), new DataMask$DataMask100((DataMask$1)null), new DataMask$DataMask101((DataMask$1)null), new DataMask$DataMask110((DataMask$1)null), new DataMask$DataMask111((DataMask$1)null) }; │ │ │ │ + final int n = 4; │ │ │ │ + final int n2 = 3; │ │ │ │ + final int n3 = 2; │ │ │ │ + final int n4 = 1; │ │ │ │ + final DataMask[] $values = new DataMask[8]; │ │ │ │ + $values[0] = DataMask.DATA_MASK_000; │ │ │ │ + $values[n4] = DataMask.DATA_MASK_001; │ │ │ │ + $values[n3] = DataMask.DATA_MASK_010; │ │ │ │ + $values[n2] = DataMask.DATA_MASK_011; │ │ │ │ + $values[n] = DataMask.DATA_MASK_100; │ │ │ │ + $values[5] = DataMask.DATA_MASK_101; │ │ │ │ + $values[6] = DataMask.DATA_MASK_110; │ │ │ │ + $values[7] = DataMask.DATA_MASK_111; │ │ │ │ + $VALUES = $values; │ │ │ │ } │ │ │ │ │ │ │ │ - static DataMask forReference(final int n) { │ │ │ │ - if (n < 0 || n > 7) { │ │ │ │ - throw new IllegalArgumentException(); │ │ │ │ - } │ │ │ │ - return DataMask.DATA_MASKS[n]; │ │ │ │ + private DataMask(final String s, final int n) { │ │ │ │ } │ │ │ │ │ │ │ │ abstract boolean isMasked(final int p0, final int p1); │ │ │ │ │ │ │ │ final void unmaskBitMatrix(final BitMatrix bitMatrix, final int n) { │ │ │ │ for (int i = 0; i < n; ++i) { │ │ │ │ for (int j = 0; j < n; ++j) { │ │ ├── com/google/zxing/qrcode/decoder/DecodedBitStreamParser.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -18,62 +18,15 @@ │ │ │ │ │ │ │ │ final class DecodedBitStreamParser │ │ │ │ { │ │ │ │ private static final char[] ALPHANUMERIC_CHARS; │ │ │ │ private static final int GB2312_SUBSET = 1; │ │ │ │ │ │ │ │ static { │ │ │ │ - final char[] array; │ │ │ │ - final char[] alphanumeric_CHARS = array = new char[45]; │ │ │ │ - array[0] = '0'; │ │ │ │ - array[1] = '1'; │ │ │ │ - array[2] = '2'; │ │ │ │ - array[3] = '3'; │ │ │ │ - array[4] = '4'; │ │ │ │ - array[5] = '5'; │ │ │ │ - array[6] = '6'; │ │ │ │ - array[7] = '7'; │ │ │ │ - array[8] = '8'; │ │ │ │ - array[9] = '9'; │ │ │ │ - array[10] = 'A'; │ │ │ │ - array[11] = 'B'; │ │ │ │ - array[12] = 'C'; │ │ │ │ - array[13] = 'D'; │ │ │ │ - array[14] = 'E'; │ │ │ │ - array[15] = 'F'; │ │ │ │ - array[16] = 'G'; │ │ │ │ - array[17] = 'H'; │ │ │ │ - array[18] = 'I'; │ │ │ │ - array[19] = 'J'; │ │ │ │ - array[20] = 'K'; │ │ │ │ - array[21] = 'L'; │ │ │ │ - array[22] = 'M'; │ │ │ │ - array[23] = 'N'; │ │ │ │ - array[24] = 'O'; │ │ │ │ - array[25] = 'P'; │ │ │ │ - array[26] = 'Q'; │ │ │ │ - array[27] = 'R'; │ │ │ │ - array[28] = 'S'; │ │ │ │ - array[29] = 'T'; │ │ │ │ - array[30] = 'U'; │ │ │ │ - array[31] = 'V'; │ │ │ │ - array[32] = 'W'; │ │ │ │ - array[33] = 'X'; │ │ │ │ - array[34] = 'Y'; │ │ │ │ - array[35] = 'Z'; │ │ │ │ - array[36] = ' '; │ │ │ │ - array[37] = '$'; │ │ │ │ - array[38] = '%'; │ │ │ │ - array[39] = '*'; │ │ │ │ - array[40] = '+'; │ │ │ │ - array[41] = '-'; │ │ │ │ - array[42] = '.'; │ │ │ │ - array[43] = '/'; │ │ │ │ - array[44] = ':'; │ │ │ │ - ALPHANUMERIC_CHARS = alphanumeric_CHARS; │ │ │ │ + ALPHANUMERIC_CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:".toCharArray(); │ │ │ │ } │ │ │ │ │ │ │ │ static DecoderResult decode(final byte[] array, final Version version, final ErrorCorrectionLevel errorCorrectionLevel, final Map map) { │ │ │ │ final BitSource bitSource = new BitSource(array); │ │ │ │ final StringBuilder sb = new StringBuilder(50); │ │ │ │ final ArrayList list = new ArrayList(1); │ │ │ │ int bits = -1; │ │ │ │ @@ -82,127 +35,126 @@ │ │ │ │ boolean b = false; │ │ │ │ Mode mode; │ │ │ │ int bits3; │ │ │ │ FormatException formatInstance; │ │ │ │ int eciValue; │ │ │ │ FormatException formatInstance2; │ │ │ │ int bits4; │ │ │ │ + FormatException formatInstance3 = null; │ │ │ │ int bits5; │ │ │ │ int bits6; │ │ │ │ - FormatException formatInstance3 = null; │ │ │ │ String string; │ │ │ │ List list2; │ │ │ │ String string2; │ │ │ │ Label_0152_Outer:Label_0159_Outer: │ │ │ │ while (true) { │ │ │ │ while (true) { │ │ │ │ - Label_0512: │ │ │ │ + Label_0513: │ │ │ │ while (true) { │ │ │ │ - Label_0505: { │ │ │ │ + Label_0506: { │ │ │ │ try { │ │ │ │ while (true) { │ │ │ │ Label_0178: { │ │ │ │ if (bitSource.available() >= 4) { │ │ │ │ break Label_0178; │ │ │ │ } │ │ │ │ mode = Mode.TERMINATOR; │ │ │ │ try { │ │ │ │ + Block_12_Outer: │ │ │ │ while (mode != Mode.TERMINATOR) { │ │ │ │ if (mode == Mode.FNC1_FIRST_POSITION || mode == Mode.FNC1_SECOND_POSITION) { │ │ │ │ b = true; │ │ │ │ break; │ │ │ │ } │ │ │ │ Label_0200: { │ │ │ │ break Label_0200; │ │ │ │ bits3 = bitSource.readBits(4); │ │ │ │ try { │ │ │ │ mode = Mode.forBits(bits3); │ │ │ │ - continue Label_0152_Outer; │ │ │ │ - // iftrue(Label_0272:, mode != Mode.STRUCTURED_APPEND) │ │ │ │ - // iftrue(Label_0243:, bitSource.available() >= 16) │ │ │ │ - formatInstance = FormatException.getFormatInstance(); │ │ │ │ - try { │ │ │ │ - throw formatInstance; │ │ │ │ - // iftrue(Label_0311:, mode != Mode.ECI) │ │ │ │ - Block_16: { │ │ │ │ - break Block_16; │ │ │ │ - Label_0243: { │ │ │ │ - bits = bitSource.readBits(8); │ │ │ │ - } │ │ │ │ - bits2 = bitSource.readBits(8); │ │ │ │ - break; │ │ │ │ - } │ │ │ │ - eciValue = parseECIValue(bitSource); │ │ │ │ + continue Block_12_Outer; │ │ │ │ + // iftrue(Label_0244:, bitSource.available() >= 16) │ │ │ │ + while (true) { │ │ │ │ + formatInstance = FormatException.getFormatInstance(); │ │ │ │ try { │ │ │ │ - characterSetECIByValue = CharacterSetECI.getCharacterSetECIByValue(eciValue); │ │ │ │ - if (characterSetECIByValue != null) { │ │ │ │ - break; │ │ │ │ + throw formatInstance; │ │ │ │ + Label_0273: { │ │ │ │ + eciValue = parseECIValue(bitSource); │ │ │ │ } │ │ │ │ - formatInstance2 = FormatException.getFormatInstance(); │ │ │ │ + // iftrue(Label_0312:, mode != Mode.ECI) │ │ │ │ try { │ │ │ │ - throw formatInstance2; │ │ │ │ - // iftrue(Label_0374:, mode != Mode.HANZI) │ │ │ │ - // iftrue(Label_0111:, bits5 != 1) │ │ │ │ - while (true) { │ │ │ │ - decodeHanziSegment(bitSource, sb, bits4); │ │ │ │ + characterSetECIByValue = CharacterSetECI.getCharacterSetECIByValue(eciValue); │ │ │ │ + if (characterSetECIByValue != null) { │ │ │ │ break; │ │ │ │ - Label_0311: { │ │ │ │ - bits5 = bitSource.readBits(4); │ │ │ │ - } │ │ │ │ - bits4 = bitSource.readBits(mode.getCharacterCountBits(version)); │ │ │ │ - continue Label_0152_Outer; │ │ │ │ - } │ │ │ │ - Label_0374: { │ │ │ │ - bits6 = bitSource.readBits(mode.getCharacterCountBits(version)); │ │ │ │ } │ │ │ │ + formatInstance2 = FormatException.getFormatInstance(); │ │ │ │ try { │ │ │ │ - if (mode == Mode.NUMERIC) { │ │ │ │ - decodeNumericSegment(bitSource, sb, bits6); │ │ │ │ - break; │ │ │ │ - } │ │ │ │ - if (mode == Mode.ALPHANUMERIC) { │ │ │ │ - decodeAlphanumericSegment(bitSource, sb, bits6, b); │ │ │ │ - break; │ │ │ │ - } │ │ │ │ - if (mode == Mode.BYTE) { │ │ │ │ - decodeByteSegment(bitSource, sb, bits6, characterSetECIByValue, list, map); │ │ │ │ - break; │ │ │ │ - } │ │ │ │ - if (mode == Mode.KANJI) { │ │ │ │ - decodeKanjiSegment(bitSource, sb, bits6); │ │ │ │ - break; │ │ │ │ + throw formatInstance2; │ │ │ │ + // iftrue(Label_0375:, mode != Mode.HANZI) │ │ │ │ + Block_22: { │ │ │ │ + break Block_22; │ │ │ │ + Label_0375: { │ │ │ │ + bits4 = bitSource.readBits(mode.getCharacterCountBits(version)); │ │ │ │ + } │ │ │ │ + try { │ │ │ │ + if (mode == Mode.NUMERIC) { │ │ │ │ + decodeNumericSegment(bitSource, sb, bits4); │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + if (mode == Mode.ALPHANUMERIC) { │ │ │ │ + decodeAlphanumericSegment(bitSource, sb, bits4, b); │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + if (mode == Mode.BYTE) { │ │ │ │ + decodeByteSegment(bitSource, sb, bits4, characterSetECIByValue, list, map); │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + if (mode == Mode.KANJI) { │ │ │ │ + decodeKanjiSegment(bitSource, sb, bits4); │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + formatInstance3 = FormatException.getFormatInstance(); │ │ │ │ + } │ │ │ │ + catch (IllegalArgumentException ex) {} │ │ │ │ } │ │ │ │ - formatInstance3 = FormatException.getFormatInstance(); │ │ │ │ + bits5 = bitSource.readBits(4); │ │ │ │ + bits6 = bitSource.readBits(mode.getCharacterCountBits(version)); │ │ │ │ + // iftrue(Label_0111:, bits5 != 1) │ │ │ │ + decodeHanziSegment(bitSource, sb, bits6); │ │ │ │ } │ │ │ │ - catch (IllegalArgumentException ex) {} │ │ │ │ + catch (IllegalArgumentException ex2) {} │ │ │ │ + } │ │ │ │ + catch (IllegalArgumentException ex3) {} │ │ │ │ + Label_0244: { │ │ │ │ + bits = bitSource.readBits(8); │ │ │ │ } │ │ │ │ - catch (IllegalArgumentException ex2) {} │ │ │ │ + bits2 = bitSource.readBits(8); │ │ │ │ } │ │ │ │ - catch (IllegalArgumentException ex3) {} │ │ │ │ + catch (IllegalArgumentException ex4) {} │ │ │ │ + continue Label_0152_Outer; │ │ │ │ } │ │ │ │ - catch (IllegalArgumentException ex4) {} │ │ │ │ } │ │ │ │ + // iftrue(Label_0273:, mode != Mode.STRUCTURED_APPEND) │ │ │ │ catch (IllegalArgumentException ex5) {} │ │ │ │ } │ │ │ │ } │ │ │ │ Label_0111: { │ │ │ │ if (mode != Mode.TERMINATOR) { │ │ │ │ continue Label_0152_Outer; │ │ │ │ } │ │ │ │ } │ │ │ │ string = sb.toString(); │ │ │ │ if (!list.isEmpty()) { │ │ │ │ - break Label_0505; │ │ │ │ + break Label_0506; │ │ │ │ } │ │ │ │ list2 = null; │ │ │ │ if (errorCorrectionLevel == null) { │ │ │ │ string2 = null; │ │ │ │ return new DecoderResult(array, string, list2, string2, bits, bits2); │ │ │ │ } │ │ │ │ - break Label_0512; │ │ │ │ + break Label_0513; │ │ │ │ } │ │ │ │ catch (IllegalArgumentException ex6) {} │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ catch (IllegalArgumentException ex7) {} │ │ │ │ throw formatInstance3; │ │ │ │ @@ -248,24 +200,24 @@ │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ private static void decodeByteSegment(final BitSource bitSource, final StringBuilder sb, final int n, final CharacterSetECI characterSetECI, final Collection collection, final Map map) { │ │ │ │ - if (n * 8 > bitSource.available()) { │ │ │ │ + if (n << 3 > bitSource.available()) { │ │ │ │ throw FormatException.getFormatInstance(); │ │ │ │ } │ │ │ │ final byte[] array = new byte[n]; │ │ │ │ for (int i = 0; i < n; ++i) { │ │ │ │ array[i] = (byte)bitSource.readBits(8); │ │ │ │ } │ │ │ │ - Label_0107: { │ │ │ │ + Label_0106: { │ │ │ │ if (characterSetECI != null) { │ │ │ │ - break Label_0107; │ │ │ │ + break Label_0106; │ │ │ │ } │ │ │ │ String s = StringUtils.guessEncoding(array, map); │ │ │ │ try { │ │ │ │ while (true) { │ │ │ │ final String s2 = new String(array, s); │ │ │ │ try { │ │ │ │ sb.append(s2); │ │ │ │ @@ -294,16 +246,16 @@ │ │ │ │ int n3; │ │ │ │ if (n2 < 959) { │ │ │ │ n3 = n2 + 41377; │ │ │ │ } │ │ │ │ else { │ │ │ │ n3 = n2 + 42657; │ │ │ │ } │ │ │ │ - array[n] = (byte)(n3 >> 8 & 0xFF); │ │ │ │ - array[n + 1] = (byte)(n3 & 0xFF); │ │ │ │ + array[n] = (byte)(n3 >> 8); │ │ │ │ + array[n + 1] = (byte)n3; │ │ │ │ n += 2; │ │ │ │ --i; │ │ │ │ } │ │ │ │ try { │ │ │ │ final String s = new String(array, "GB2312"); │ │ │ │ try { │ │ │ │ sb.append(s); │ │ ├── com/google/zxing/qrcode/decoder/Decoder.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -20,24 +20,27 @@ │ │ │ │ │ │ │ │ private void correctErrors(final byte[] array, final int n) { │ │ │ │ final int length = array.length; │ │ │ │ final int[] array2 = new int[length]; │ │ │ │ for (int i = 0; i < length; ++i) { │ │ │ │ array2[i] = (array[i] & 0xFF); │ │ │ │ } │ │ │ │ - final int n2 = array.length - n; │ │ │ │ try { │ │ │ │ - this.rsDecoder.decode(array2, n2); │ │ │ │ - for (int j = 0; j < n; ++j) { │ │ │ │ - array[j] = (byte)array2[j]; │ │ │ │ + final ReedSolomonDecoder rsDecoder = this.rsDecoder; │ │ │ │ + try { │ │ │ │ + rsDecoder.decode(array2, array.length - n); │ │ │ │ + for (int j = 0; j < n; ++j) { │ │ │ │ + array[j] = (byte)array2[j]; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + catch (ReedSolomonException ex) { │ │ │ │ + throw ChecksumException.getChecksumInstance(); │ │ │ │ } │ │ │ │ } │ │ │ │ - catch (ReedSolomonException ex) { │ │ │ │ - throw ChecksumException.getChecksumInstance(); │ │ │ │ - } │ │ │ │ + catch (ReedSolomonException ex2) {} │ │ │ │ } │ │ │ │ │ │ │ │ private DecoderResult decode(final BitMatrixParser bitMatrixParser, final Map map) { │ │ │ │ final Version version = bitMatrixParser.readVersion(); │ │ │ │ final ErrorCorrectionLevel errorCorrectionLevel = bitMatrixParser.readFormatInformation().getErrorCorrectionLevel(); │ │ │ │ final DataBlock[] dataBlocks = DataBlock.getDataBlocks(bitMatrixParser.readCodewords(), version, errorCorrectionLevel); │ │ │ │ int n = 0; │ │ ├── com/google/zxing/qrcode/decoder/FormatInformation.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,168 +1,150 @@ │ │ │ │ │ │ │ │ package com.google.zxing.qrcode.decoder; │ │ │ │ │ │ │ │ final class FormatInformation │ │ │ │ { │ │ │ │ - private static final int[] BITS_SET_IN_HALF_BYTE; │ │ │ │ private static final int[][] FORMAT_INFO_DECODE_LOOKUP; │ │ │ │ private static final int FORMAT_INFO_MASK_QR = 21522; │ │ │ │ private final byte dataMask; │ │ │ │ private final ErrorCorrectionLevel errorCorrectionLevel; │ │ │ │ │ │ │ │ static { │ │ │ │ - final int n = 16; │ │ │ │ - final int n2 = 2; │ │ │ │ + final int n = 2; │ │ │ │ final int[][] format_INFO_DECODE_LOOKUP = new int[32][]; │ │ │ │ final int[] array2; │ │ │ │ - final int[] array = array2 = new int[n2]; │ │ │ │ + final int[] array = array2 = new int[n]; │ │ │ │ array2[0] = 21522; │ │ │ │ format_INFO_DECODE_LOOKUP[array2[1] = 0] = array; │ │ │ │ final int[] array4; │ │ │ │ - final int[] array3 = array4 = new int[n2]; │ │ │ │ + final int[] array3 = array4 = new int[n]; │ │ │ │ array4[0] = 20773; │ │ │ │ format_INFO_DECODE_LOOKUP[array4[1] = 1] = array3; │ │ │ │ final int[] array6; │ │ │ │ - final int[] array5 = array6 = new int[n2]; │ │ │ │ + final int[] array5 = array6 = new int[n]; │ │ │ │ array6[0] = 24188; │ │ │ │ array6[1] = 2; │ │ │ │ - format_INFO_DECODE_LOOKUP[n2] = array5; │ │ │ │ + format_INFO_DECODE_LOOKUP[n] = array5; │ │ │ │ final int[] array8; │ │ │ │ - final int[] array7 = array8 = new int[n2]; │ │ │ │ + final int[] array7 = array8 = new int[n]; │ │ │ │ array8[0] = 23371; │ │ │ │ format_INFO_DECODE_LOOKUP[array8[1] = 3] = array7; │ │ │ │ final int[] array10; │ │ │ │ - final int[] array9 = array10 = new int[n2]; │ │ │ │ + final int[] array9 = array10 = new int[n]; │ │ │ │ array10[0] = 17913; │ │ │ │ format_INFO_DECODE_LOOKUP[array10[1] = 4] = array9; │ │ │ │ final int[] array12; │ │ │ │ - final int[] array11 = array12 = new int[n2]; │ │ │ │ + final int[] array11 = array12 = new int[n]; │ │ │ │ array12[0] = 16590; │ │ │ │ format_INFO_DECODE_LOOKUP[array12[1] = 5] = array11; │ │ │ │ final int[] array14; │ │ │ │ - final int[] array13 = array14 = new int[n2]; │ │ │ │ + final int[] array13 = array14 = new int[n]; │ │ │ │ array14[0] = 20375; │ │ │ │ format_INFO_DECODE_LOOKUP[array14[1] = 6] = array13; │ │ │ │ final int[] array16; │ │ │ │ - final int[] array15 = array16 = new int[n2]; │ │ │ │ + final int[] array15 = array16 = new int[n]; │ │ │ │ array16[0] = 19104; │ │ │ │ format_INFO_DECODE_LOOKUP[array16[1] = 7] = array15; │ │ │ │ final int[] array18; │ │ │ │ - final int[] array17 = array18 = new int[n2]; │ │ │ │ + final int[] array17 = array18 = new int[n]; │ │ │ │ array18[0] = 30660; │ │ │ │ format_INFO_DECODE_LOOKUP[array18[1] = 8] = array17; │ │ │ │ final int[] array20; │ │ │ │ - final int[] array19 = array20 = new int[n2]; │ │ │ │ + final int[] array19 = array20 = new int[n]; │ │ │ │ array20[0] = 29427; │ │ │ │ format_INFO_DECODE_LOOKUP[array20[1] = 9] = array19; │ │ │ │ final int[] array22; │ │ │ │ - final int[] array21 = array22 = new int[n2]; │ │ │ │ + final int[] array21 = array22 = new int[n]; │ │ │ │ array22[0] = 32170; │ │ │ │ format_INFO_DECODE_LOOKUP[array22[1] = 10] = array21; │ │ │ │ final int[] array24; │ │ │ │ - final int[] array23 = array24 = new int[n2]; │ │ │ │ + final int[] array23 = array24 = new int[n]; │ │ │ │ array24[0] = 30877; │ │ │ │ format_INFO_DECODE_LOOKUP[array24[1] = 11] = array23; │ │ │ │ final int[] array26; │ │ │ │ - final int[] array25 = array26 = new int[n2]; │ │ │ │ + final int[] array25 = array26 = new int[n]; │ │ │ │ array26[0] = 26159; │ │ │ │ format_INFO_DECODE_LOOKUP[array26[1] = 12] = array25; │ │ │ │ final int[] array28; │ │ │ │ - final int[] array27 = array28 = new int[n2]; │ │ │ │ + final int[] array27 = array28 = new int[n]; │ │ │ │ array28[0] = 25368; │ │ │ │ format_INFO_DECODE_LOOKUP[array28[1] = 13] = array27; │ │ │ │ final int[] array30; │ │ │ │ - final int[] array29 = array30 = new int[n2]; │ │ │ │ + final int[] array29 = array30 = new int[n]; │ │ │ │ array30[0] = 27713; │ │ │ │ format_INFO_DECODE_LOOKUP[array30[1] = 14] = array29; │ │ │ │ final int[] array32; │ │ │ │ - final int[] array31 = array32 = new int[n2]; │ │ │ │ + final int[] array31 = array32 = new int[n]; │ │ │ │ array32[0] = 26998; │ │ │ │ format_INFO_DECODE_LOOKUP[array32[1] = 15] = array31; │ │ │ │ final int[] array34; │ │ │ │ - final int[] array33 = array34 = new int[n2]; │ │ │ │ + final int[] array33 = array34 = new int[n]; │ │ │ │ array34[0] = 5769; │ │ │ │ - array34[1] = 16; │ │ │ │ - format_INFO_DECODE_LOOKUP[n] = array33; │ │ │ │ + format_INFO_DECODE_LOOKUP[array34[1] = 16] = array33; │ │ │ │ final int[] array36; │ │ │ │ - final int[] array35 = array36 = new int[n2]; │ │ │ │ + final int[] array35 = array36 = new int[n]; │ │ │ │ array36[0] = 5054; │ │ │ │ format_INFO_DECODE_LOOKUP[array36[1] = 17] = array35; │ │ │ │ final int[] array38; │ │ │ │ - final int[] array37 = array38 = new int[n2]; │ │ │ │ + final int[] array37 = array38 = new int[n]; │ │ │ │ array38[0] = 7399; │ │ │ │ format_INFO_DECODE_LOOKUP[array38[1] = 18] = array37; │ │ │ │ final int[] array40; │ │ │ │ - final int[] array39 = array40 = new int[n2]; │ │ │ │ + final int[] array39 = array40 = new int[n]; │ │ │ │ array40[0] = 6608; │ │ │ │ format_INFO_DECODE_LOOKUP[array40[1] = 19] = array39; │ │ │ │ final int[] array42; │ │ │ │ - final int[] array41 = array42 = new int[n2]; │ │ │ │ + final int[] array41 = array42 = new int[n]; │ │ │ │ array42[0] = 1890; │ │ │ │ format_INFO_DECODE_LOOKUP[array42[1] = 20] = array41; │ │ │ │ final int[] array44; │ │ │ │ - final int[] array43 = array44 = new int[n2]; │ │ │ │ + final int[] array43 = array44 = new int[n]; │ │ │ │ array44[0] = 597; │ │ │ │ format_INFO_DECODE_LOOKUP[array44[1] = 21] = array43; │ │ │ │ final int[] array46; │ │ │ │ - final int[] array45 = array46 = new int[n2]; │ │ │ │ + final int[] array45 = array46 = new int[n]; │ │ │ │ array46[0] = 3340; │ │ │ │ format_INFO_DECODE_LOOKUP[array46[1] = 22] = array45; │ │ │ │ final int[] array48; │ │ │ │ - final int[] array47 = array48 = new int[n2]; │ │ │ │ + final int[] array47 = array48 = new int[n]; │ │ │ │ array48[0] = 2107; │ │ │ │ format_INFO_DECODE_LOOKUP[array48[1] = 23] = array47; │ │ │ │ final int[] array50; │ │ │ │ - final int[] array49 = array50 = new int[n2]; │ │ │ │ + final int[] array49 = array50 = new int[n]; │ │ │ │ array50[0] = 13663; │ │ │ │ format_INFO_DECODE_LOOKUP[array50[1] = 24] = array49; │ │ │ │ final int[] array52; │ │ │ │ - final int[] array51 = array52 = new int[n2]; │ │ │ │ + final int[] array51 = array52 = new int[n]; │ │ │ │ array52[0] = 12392; │ │ │ │ format_INFO_DECODE_LOOKUP[array52[1] = 25] = array51; │ │ │ │ final int[] array54; │ │ │ │ - final int[] array53 = array54 = new int[n2]; │ │ │ │ + final int[] array53 = array54 = new int[n]; │ │ │ │ array54[0] = 16177; │ │ │ │ format_INFO_DECODE_LOOKUP[array54[1] = 26] = array53; │ │ │ │ final int[] array56; │ │ │ │ - final int[] array55 = array56 = new int[n2]; │ │ │ │ + final int[] array55 = array56 = new int[n]; │ │ │ │ array56[0] = 14854; │ │ │ │ format_INFO_DECODE_LOOKUP[array56[1] = 27] = array55; │ │ │ │ final int[] array58; │ │ │ │ - final int[] array57 = array58 = new int[n2]; │ │ │ │ + final int[] array57 = array58 = new int[n]; │ │ │ │ array58[0] = 9396; │ │ │ │ format_INFO_DECODE_LOOKUP[array58[1] = 28] = array57; │ │ │ │ final int[] array60; │ │ │ │ - final int[] array59 = array60 = new int[n2]; │ │ │ │ + final int[] array59 = array60 = new int[n]; │ │ │ │ array60[0] = 8579; │ │ │ │ format_INFO_DECODE_LOOKUP[array60[1] = 29] = array59; │ │ │ │ final int[] array62; │ │ │ │ - final int[] array61 = array62 = new int[n2]; │ │ │ │ + final int[] array61 = array62 = new int[n]; │ │ │ │ array62[0] = 11994; │ │ │ │ format_INFO_DECODE_LOOKUP[array62[1] = 30] = array61; │ │ │ │ final int[] array64; │ │ │ │ - final int[] array63 = array64 = new int[n2]; │ │ │ │ + final int[] array63 = array64 = new int[n]; │ │ │ │ array64[0] = 11245; │ │ │ │ format_INFO_DECODE_LOOKUP[array64[1] = 31] = array63; │ │ │ │ FORMAT_INFO_DECODE_LOOKUP = format_INFO_DECODE_LOOKUP; │ │ │ │ - final int[] array65; │ │ │ │ - final int[] bits_SET_IN_HALF_BYTE = array65 = new int[n]; │ │ │ │ - array65[0] = 0; │ │ │ │ - array65[2] = (array65[1] = 1); │ │ │ │ - array65[3] = 2; │ │ │ │ - array65[4] = 1; │ │ │ │ - array65[6] = (array65[5] = 2); │ │ │ │ - array65[7] = 3; │ │ │ │ - array65[8] = 1; │ │ │ │ - array65[10] = (array65[9] = 2); │ │ │ │ - array65[11] = 3; │ │ │ │ - array65[12] = 2; │ │ │ │ - array65[14] = (array65[13] = 3); │ │ │ │ - array65[15] = 4; │ │ │ │ - BITS_SET_IN_HALF_BYTE = bits_SET_IN_HALF_BYTE; │ │ │ │ } │ │ │ │ │ │ │ │ private FormatInformation(final int n) { │ │ │ │ this.errorCorrectionLevel = ErrorCorrectionLevel.forBits(n >> 3 & 0x3); │ │ │ │ this.dataMask = (byte)(n & 0x7); │ │ │ │ } │ │ │ │ │ │ │ │ @@ -200,17 +182,16 @@ │ │ │ │ } │ │ │ │ if (n4 <= 3) { │ │ │ │ return new FormatInformation(n5); │ │ │ │ } │ │ │ │ return null; │ │ │ │ } │ │ │ │ │ │ │ │ - static int numBitsDiffering(int n, final int n2) { │ │ │ │ - n ^= n2; │ │ │ │ - return FormatInformation.BITS_SET_IN_HALF_BYTE[n & 0xF] + FormatInformation.BITS_SET_IN_HALF_BYTE[n >>> 4 & 0xF] + FormatInformation.BITS_SET_IN_HALF_BYTE[n >>> 8 & 0xF] + FormatInformation.BITS_SET_IN_HALF_BYTE[n >>> 12 & 0xF] + FormatInformation.BITS_SET_IN_HALF_BYTE[n >>> 16 & 0xF] + FormatInformation.BITS_SET_IN_HALF_BYTE[n >>> 20 & 0xF] + FormatInformation.BITS_SET_IN_HALF_BYTE[n >>> 24 & 0xF] + FormatInformation.BITS_SET_IN_HALF_BYTE[n >>> 28 & 0xF]; │ │ │ │ + static int numBitsDiffering(final int n, final int n2) { │ │ │ │ + return Integer.bitCount(n ^ n2); │ │ │ │ } │ │ │ │ │ │ │ │ public boolean equals(final Object o) { │ │ │ │ boolean b = false; │ │ │ │ if (o instanceof FormatInformation) { │ │ │ │ final FormatInformation formatInformation = (FormatInformation)o; │ │ │ │ if (this.errorCorrectionLevel == formatInformation.errorCorrectionLevel && this.dataMask == formatInformation.dataMask) { │ │ ├── com/google/zxing/qrcode/decoder/Version.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -403,15 +403,15 @@ │ │ │ │ throw FormatException.getFormatInstance(); │ │ │ │ } │ │ │ │ } │ │ │ │ catch (IllegalArgumentException ex2) {} │ │ │ │ } │ │ │ │ │ │ │ │ public static Version getVersionForNumber(final int n) { │ │ │ │ - if (n < 1 || n > 40) { │ │ │ │ + if (n <= 0 || n > 40) { │ │ │ │ throw new IllegalArgumentException(); │ │ │ │ } │ │ │ │ return Version.VERSIONS[n - 1]; │ │ │ │ } │ │ │ │ │ │ │ │ BitMatrix buildFunctionPattern() { │ │ │ │ final int n = 3; │ │ ├── com/google/zxing/qrcode/detector/AlignmentPatternFinder.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -131,15 +131,15 @@ │ │ │ │ array[n] = (array[n2] = 0); │ │ │ │ int j; │ │ │ │ for (j = startX; j < n3 && !this.image.get(j, n6); ++j) {} │ │ │ │ int n7 = 0; │ │ │ │ while (j < n3) { │ │ │ │ if (this.image.get(j, n6)) { │ │ │ │ if (n7 == n2) { │ │ │ │ - ++array[n7]; │ │ │ │ + ++array[n2]; │ │ │ │ } │ │ │ │ else if (n7 == n) { │ │ │ │ if (this.foundPatternCross(array)) { │ │ │ │ final AlignmentPattern alignmentPattern = this.handlePossibleCenter(array, n6, j); │ │ │ │ if (alignmentPattern != null) { │ │ │ │ return alignmentPattern; │ │ │ │ } │ │ ├── com/google/zxing/qrcode/detector/Detector.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -173,15 +173,15 @@ │ │ │ │ n8 = n2 / (n2 - n7); │ │ │ │ n7 = 0; │ │ │ │ } │ │ │ │ else if (n7 >= this.image.getHeight()) { │ │ │ │ n8 = (this.image.getHeight() - 1 - n2) / (n7 - n2); │ │ │ │ n7 = this.image.getHeight() - 1; │ │ │ │ } │ │ │ │ - return sizeOfBlackWhiteBlackRun + this.sizeOfBlackWhiteBlackRun(n, n2, (int)(n + (n6 - n) * n8), n7) - 1.0f; │ │ │ │ + return this.sizeOfBlackWhiteBlackRun(n, n2, (int)(n + (n6 - n) * n8), n7) + sizeOfBlackWhiteBlackRun - 1.0f; │ │ │ │ } │ │ │ │ │ │ │ │ protected final float calculateModuleSize(final ResultPoint resultPoint, final ResultPoint resultPoint2, final ResultPoint resultPoint3) { │ │ │ │ return (this.calculateModuleSizeOneWay(resultPoint, resultPoint2) + this.calculateModuleSizeOneWay(resultPoint, resultPoint3)) / 2.0f; │ │ │ │ } │ │ │ │ │ │ │ │ public DetectorResult detect() { │ │ ├── com/google/zxing/qrcode/detector/FinderPatternFinder$CenterComparator.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,14 +1,14 @@ │ │ │ │ │ │ │ │ package com.google.zxing.qrcode.detector; │ │ │ │ │ │ │ │ -import java.io.Serializable; │ │ │ │ import java.util.Comparator; │ │ │ │ +import java.io.Serializable; │ │ │ │ │ │ │ │ -final class FinderPatternFinder$CenterComparator implements Comparator, Serializable │ │ │ │ +final class FinderPatternFinder$CenterComparator implements Serializable, Comparator │ │ │ │ { │ │ │ │ private final float average; │ │ │ │ │ │ │ │ private FinderPatternFinder$CenterComparator(final float average) { │ │ │ │ this.average = average; │ │ │ │ } │ │ ├── com/google/zxing/qrcode/detector/FinderPatternFinder$FurthestFromAverageComparator.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,14 +1,14 @@ │ │ │ │ │ │ │ │ package com.google.zxing.qrcode.detector; │ │ │ │ │ │ │ │ -import java.io.Serializable; │ │ │ │ import java.util.Comparator; │ │ │ │ +import java.io.Serializable; │ │ │ │ │ │ │ │ -final class FinderPatternFinder$FurthestFromAverageComparator implements Comparator, Serializable │ │ │ │ +final class FinderPatternFinder$FurthestFromAverageComparator implements Serializable, Comparator │ │ │ │ { │ │ │ │ private final float average; │ │ │ │ │ │ │ │ private FinderPatternFinder$FurthestFromAverageComparator(final float average) { │ │ │ │ this.average = average; │ │ │ │ } │ │ ├── com/google/zxing/qrcode/detector/FinderPatternFinder.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -266,31 +266,31 @@ │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ return n; │ │ │ │ } │ │ │ │ │ │ │ │ protected static boolean foundPatternCross(final int[] array) { │ │ │ │ - int n = 1; │ │ │ │ + final int n = 1; │ │ │ │ final float n2 = 3.0f; │ │ │ │ int n3 = 0; │ │ │ │ int n4 = 0; │ │ │ │ for (int i = 0; i < 5; ++i) { │ │ │ │ final int n5 = array[i]; │ │ │ │ if (n5 == 0) { │ │ │ │ return n3 != 0; │ │ │ │ } │ │ │ │ n4 += n5; │ │ │ │ } │ │ │ │ - if (n4 >= 7) { │ │ │ │ - final float n6 = n4 / 7.0f; │ │ │ │ - final float n7 = n6 / 2.0f; │ │ │ │ - if (Math.abs(n6 - (float)array[0]) >= n7 || Math.abs(n6 - (float)array[n]) >= n7 || Math.abs(n2 * n6 - (float)array[2]) >= n2 * n7 || Math.abs(n6 - (float)array[3]) >= n7 || Math.abs(n6 - (float)array[4]) >= n7) { │ │ │ │ - n = 0; │ │ │ │ - } │ │ │ │ + if (n4 < 7) { │ │ │ │ + return n3 != 0; │ │ │ │ + } │ │ │ │ + final float n6 = n4 / 7.0f; │ │ │ │ + final float n7 = n6 / 2.0f; │ │ │ │ + if (Math.abs(n6 - (float)array[0]) < n7 && Math.abs(n6 - (float)array[n]) < n7 && Math.abs(n2 * n6 - (float)array[2]) < n2 * n7 && Math.abs(n6 - (float)array[3]) < n7 && Math.abs(n6 - (float)array[4]) < n7) { │ │ │ │ n3 = n; │ │ │ │ return n3 != 0; │ │ │ │ } │ │ │ │ return n3 != 0; │ │ │ │ } │ │ │ │ │ │ │ │ private int[] getCrossCheckStateCount() { │ │ │ │ @@ -400,15 +400,15 @@ │ │ │ │ n = 2; │ │ │ │ if (this.hasSkipped) { │ │ │ │ b3 = this.haveMultiplyConfirmedCenters(); │ │ │ │ } │ │ │ │ else { │ │ │ │ final int rowSkip = this.findRowSkip(); │ │ │ │ if (rowSkip > array[2]) { │ │ │ │ - n2 += rowSkip - array[2] - n; │ │ │ │ + n2 += rowSkip - array[2] - 2; │ │ │ │ i = width - 1; │ │ │ │ } │ │ │ │ } │ │ │ │ n3 = 0; │ │ │ │ array[0] = 0; │ │ │ │ array[2] = (array[1] = 0); │ │ │ │ array[4] = (array[3] = 0); │ │ ├── com/google/zxing/qrcode/encoder/Encoder.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -236,14 +236,18 @@ │ │ │ │ else { │ │ │ │ bitArray.appendBits(n, 4); │ │ │ │ ++i; │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ + private static int calculateBitsNeeded(final Mode mode, final BitArray bitArray, final BitArray bitArray2, final Version version) { │ │ │ │ + return bitArray.getSize() + mode.getCharacterCountBits(version) + bitArray2.getSize(); │ │ │ │ + } │ │ │ │ + │ │ │ │ private static int calculateMaskPenalty(final ByteMatrix byteMatrix) { │ │ │ │ return MaskUtil.applyMaskPenaltyRule1(byteMatrix) + MaskUtil.applyMaskPenaltyRule2(byteMatrix) + MaskUtil.applyMaskPenaltyRule3(byteMatrix) + MaskUtil.applyMaskPenaltyRule4(byteMatrix); │ │ │ │ } │ │ │ │ │ │ │ │ private static int chooseMaskPattern(final BitArray bitArray, final ErrorCorrectionLevel errorCorrectionLevel, final Version version, final ByteMatrix byteMatrix) { │ │ │ │ int n = -1 >>> 1; │ │ │ │ int n2 = -1; │ │ │ │ @@ -260,21 +264,16 @@ │ │ │ │ │ │ │ │ public static Mode chooseMode(final String s) { │ │ │ │ return chooseMode(s, null); │ │ │ │ } │ │ │ │ │ │ │ │ private static Mode chooseMode(final String s, final String s2) { │ │ │ │ Mode mode; │ │ │ │ - if ("Shift_JIS".equals(s2)) { │ │ │ │ - if (isOnlyDoubleByteKanji(s)) { │ │ │ │ - mode = Mode.KANJI; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - mode = Mode.BYTE; │ │ │ │ - } │ │ │ │ + if ("Shift_JIS".equals(s2) && isOnlyDoubleByteKanji(s)) { │ │ │ │ + mode = Mode.KANJI; │ │ │ │ } │ │ │ │ else { │ │ │ │ boolean b = false; │ │ │ │ boolean b2 = false; │ │ │ │ for (int i = 0; i < s.length(); ++i) { │ │ │ │ final char char1 = s.charAt(i); │ │ │ │ if (char1 >= '0' && char1 <= '9') { │ │ │ │ @@ -300,72 +299,75 @@ │ │ │ │ } │ │ │ │ return mode; │ │ │ │ } │ │ │ │ │ │ │ │ private static Version chooseVersion(final int n, final ErrorCorrectionLevel errorCorrectionLevel) { │ │ │ │ for (int i = 1; i <= 40; ++i) { │ │ │ │ final Version versionForNumber = Version.getVersionForNumber(i); │ │ │ │ - if (versionForNumber.getTotalCodewords() - versionForNumber.getECBlocksForLevel(errorCorrectionLevel).getTotalECCodewords() >= (n + 7) / 8) { │ │ │ │ + if (willFit(n, versionForNumber, errorCorrectionLevel)) { │ │ │ │ return versionForNumber; │ │ │ │ } │ │ │ │ } │ │ │ │ throw new WriterException("Data too big"); │ │ │ │ } │ │ │ │ │ │ │ │ public static QRCode encode(final String s, final ErrorCorrectionLevel errorCorrectionLevel) { │ │ │ │ return encode(s, errorCorrectionLevel, null); │ │ │ │ } │ │ │ │ │ │ │ │ public static QRCode encode(final String s, final ErrorCorrectionLevel ecLevel, final Map map) { │ │ │ │ - String s2; │ │ │ │ - if (map == null) { │ │ │ │ - s2 = null; │ │ │ │ + String string = "ISO-8859-1"; │ │ │ │ + if (map != null && map.containsKey(EncodeHintType.CHARACTER_SET)) { │ │ │ │ + string = map.get(EncodeHintType.CHARACTER_SET).toString(); │ │ │ │ } │ │ │ │ - else { │ │ │ │ - s2 = map.get(EncodeHintType.CHARACTER_SET); │ │ │ │ - } │ │ │ │ - if (s2 == null) { │ │ │ │ - s2 = "ISO-8859-1"; │ │ │ │ - } │ │ │ │ - final Mode chooseMode = chooseMode(s, s2); │ │ │ │ + final Mode chooseMode = chooseMode(s, string); │ │ │ │ final BitArray bitArray = new BitArray(); │ │ │ │ - if (chooseMode == Mode.BYTE && !"ISO-8859-1".equals(s2)) { │ │ │ │ - final CharacterSetECI characterSetECIByName = CharacterSetECI.getCharacterSetECIByName(s2); │ │ │ │ + if (chooseMode == Mode.BYTE && !"ISO-8859-1".equals(string)) { │ │ │ │ + final CharacterSetECI characterSetECIByName = CharacterSetECI.getCharacterSetECIByName(string); │ │ │ │ if (characterSetECIByName != null) { │ │ │ │ appendECI(characterSetECIByName, bitArray); │ │ │ │ } │ │ │ │ } │ │ │ │ appendModeInfo(chooseMode, bitArray); │ │ │ │ final BitArray bitArray2 = new BitArray(); │ │ │ │ - appendBytes(s, chooseMode, bitArray2, s2); │ │ │ │ - final Version chooseVersion = chooseVersion(bitArray.getSize() + chooseMode.getCharacterCountBits(chooseVersion(bitArray.getSize() + chooseMode.getCharacterCountBits(Version.getVersionForNumber(1)) + bitArray2.getSize(), ecLevel)) + bitArray2.getSize(), ecLevel); │ │ │ │ + appendBytes(s, chooseMode, bitArray2, string); │ │ │ │ + Version version; │ │ │ │ + if (map != null && map.containsKey(EncodeHintType.QR_VERSION)) { │ │ │ │ + version = Version.getVersionForNumber(Integer.parseInt(map.get(EncodeHintType.QR_VERSION).toString())); │ │ │ │ + if (!willFit(calculateBitsNeeded(chooseMode, bitArray, bitArray2, version), version, ecLevel)) { │ │ │ │ + throw new WriterException("Data too big for requested version"); │ │ │ │ + } │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + version = recommendVersion(ecLevel, chooseMode, bitArray, bitArray2); │ │ │ │ + } │ │ │ │ final BitArray bitArray3 = new BitArray(); │ │ │ │ bitArray3.appendBitArray(bitArray); │ │ │ │ int n; │ │ │ │ if (chooseMode == Mode.BYTE) { │ │ │ │ n = bitArray2.getSizeInBytes(); │ │ │ │ } │ │ │ │ else { │ │ │ │ n = s.length(); │ │ │ │ } │ │ │ │ - appendLengthInfo(n, chooseVersion, chooseMode, bitArray3); │ │ │ │ + appendLengthInfo(n, version, chooseMode, bitArray3); │ │ │ │ bitArray3.appendBitArray(bitArray2); │ │ │ │ - final Version$ECBlocks ecBlocksForLevel = chooseVersion.getECBlocksForLevel(ecLevel); │ │ │ │ - final int n2 = chooseVersion.getTotalCodewords() - ecBlocksForLevel.getTotalECCodewords(); │ │ │ │ + final Version$ECBlocks ecBlocksForLevel = version.getECBlocksForLevel(ecLevel); │ │ │ │ + final int n2 = version.getTotalCodewords() - ecBlocksForLevel.getTotalECCodewords(); │ │ │ │ terminateBits(n2, bitArray3); │ │ │ │ - final BitArray interleaveWithECBytes = interleaveWithECBytes(bitArray3, chooseVersion.getTotalCodewords(), n2, ecBlocksForLevel.getNumBlocks()); │ │ │ │ + final BitArray interleaveWithECBytes = interleaveWithECBytes(bitArray3, version.getTotalCodewords(), n2, ecBlocksForLevel.getNumBlocks()); │ │ │ │ final QRCode qrCode = new QRCode(); │ │ │ │ qrCode.setECLevel(ecLevel); │ │ │ │ qrCode.setMode(chooseMode); │ │ │ │ - qrCode.setVersion(chooseVersion); │ │ │ │ - final int dimensionForVersion = chooseVersion.getDimensionForVersion(); │ │ │ │ + qrCode.setVersion(version); │ │ │ │ + final int dimensionForVersion = version.getDimensionForVersion(); │ │ │ │ final ByteMatrix matrix = new ByteMatrix(dimensionForVersion, dimensionForVersion); │ │ │ │ - final int chooseMaskPattern = chooseMaskPattern(interleaveWithECBytes, ecLevel, chooseVersion, matrix); │ │ │ │ + final int chooseMaskPattern = chooseMaskPattern(interleaveWithECBytes, ecLevel, version, matrix); │ │ │ │ qrCode.setMaskPattern(chooseMaskPattern); │ │ │ │ - MatrixUtil.buildMatrix(interleaveWithECBytes, ecLevel, chooseVersion, chooseMaskPattern, matrix); │ │ │ │ + MatrixUtil.buildMatrix(interleaveWithECBytes, ecLevel, version, chooseMaskPattern, matrix); │ │ │ │ qrCode.setMatrix(matrix); │ │ │ │ return qrCode; │ │ │ │ } │ │ │ │ │ │ │ │ static byte[] generateECBytes(final byte[] array, final int n) { │ │ │ │ final int length = array.length; │ │ │ │ final int[] array2 = new int[length + n]; │ │ │ │ @@ -432,15 +434,15 @@ │ │ │ │ final ArrayList list = new ArrayList(n3); │ │ │ │ for (int i = 0; i < n3; ++i) { │ │ │ │ final int[] array = { 0 }; │ │ │ │ final int[] array2 = { 0 }; │ │ │ │ getNumDataBytesAndNumECBytesForBlockID(n, n2, n3, i, array, array2); │ │ │ │ final int n5 = array[0]; │ │ │ │ final byte[] array3 = new byte[n5]; │ │ │ │ - bitArray.toBytes(n4 * 8, array3, 0, n5); │ │ │ │ + bitArray.toBytes(n4 << 3, array3, 0, n5); │ │ │ │ final byte[] generateECBytes = generateECBytes(array3, array2[0]); │ │ │ │ list.add(new BlockPair(array3, generateECBytes)); │ │ │ │ max = Math.max(max, n5); │ │ │ │ max2 = Math.max(max2, generateECBytes.length); │ │ │ │ n4 += array[0]; │ │ │ │ } │ │ │ │ if (n2 != n4) { │ │ │ │ @@ -468,43 +470,43 @@ │ │ │ │ if (n != bitArray2.getSizeInBytes()) { │ │ │ │ throw new WriterException("Interleaving error: " + n + " and " + bitArray2.getSizeInBytes() + " differ."); │ │ │ │ } │ │ │ │ return bitArray2; │ │ │ │ } │ │ │ │ │ │ │ │ private static boolean isOnlyDoubleByteKanji(final String s) { │ │ │ │ - while (true) { │ │ │ │ - boolean b = false; │ │ │ │ - final String s2 = "Shift_JIS"; │ │ │ │ - byte[] bytes; │ │ │ │ - int length; │ │ │ │ - try { │ │ │ │ - bytes = s.getBytes(s2); │ │ │ │ - length = bytes.length; │ │ │ │ - if (length % 2 != 0) { │ │ │ │ - return b; │ │ │ │ - } │ │ │ │ - } │ │ │ │ - catch (UnsupportedEncodingException ex) { │ │ │ │ - return b; │ │ │ │ - } │ │ │ │ - for (int i = 0; i < length; i += 2) { │ │ │ │ - final int n = bytes[i] & 0xFF; │ │ │ │ - if ((n < 129 || n > 159) && (n < 224 || n > 235)) { │ │ │ │ - return b; │ │ │ │ + boolean b = false; │ │ │ │ + final String s2 = "Shift_JIS"; │ │ │ │ + try { │ │ │ │ + final byte[] bytes = s.getBytes(s2); │ │ │ │ + final int length = bytes.length; │ │ │ │ + if (length % 2 == 0) { │ │ │ │ + for (int i = 0; i < length; i += 2) { │ │ │ │ + final int n = bytes[i] & 0xFF; │ │ │ │ + if ((n < 129 || n > 159) && (n < 224 || n > 235)) { │ │ │ │ + return b; │ │ │ │ + } │ │ │ │ } │ │ │ │ + b = true; │ │ │ │ } │ │ │ │ - b = true; │ │ │ │ return b; │ │ │ │ } │ │ │ │ + catch (UnsupportedEncodingException ex) { │ │ │ │ + return b; │ │ │ │ + } │ │ │ │ + return b; │ │ │ │ + } │ │ │ │ + │ │ │ │ + private static Version recommendVersion(final ErrorCorrectionLevel errorCorrectionLevel, final Mode mode, final BitArray bitArray, final BitArray bitArray2) { │ │ │ │ + return chooseVersion(calculateBitsNeeded(mode, bitArray, bitArray2, chooseVersion(calculateBitsNeeded(mode, bitArray, bitArray2, Version.getVersionForNumber(1)), errorCorrectionLevel)), errorCorrectionLevel); │ │ │ │ } │ │ │ │ │ │ │ │ static void terminateBits(final int n, final BitArray bitArray) { │ │ │ │ final int n2 = 8; │ │ │ │ - final int n3 = n * 8; │ │ │ │ + final int n3 = n << 3; │ │ │ │ if (bitArray.getSize() > n3) { │ │ │ │ throw new WriterException("data bits cannot fit in the QR Code" + bitArray.getSize() + " > " + n3); │ │ │ │ } │ │ │ │ for (int n4 = 0; n4 < 4 && bitArray.getSize() < n3; ++n4) { │ │ │ │ bitArray.appendBit(false); │ │ │ │ } │ │ │ │ final int n5 = bitArray.getSize() & 0x7; │ │ │ │ @@ -523,8 +525,12 @@ │ │ │ │ } │ │ │ │ bitArray.appendBits(n7, n2); │ │ │ │ } │ │ │ │ if (bitArray.getSize() != n3) { │ │ │ │ throw new WriterException("Bits size does not equal capacity"); │ │ │ │ } │ │ │ │ } │ │ │ │ + │ │ │ │ + private static boolean willFit(final int n, final Version version, final ErrorCorrectionLevel errorCorrectionLevel) { │ │ │ │ + return version.getTotalCodewords() - version.getECBlocksForLevel(errorCorrectionLevel).getTotalECCodewords() >= (n + 7) / 8; │ │ │ │ + } │ │ │ │ } │ │ ├── com/google/zxing/qrcode/encoder/MaskUtil.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -102,15 +102,15 @@ │ │ │ │ for (int j = 0; j < width; ++j) { │ │ │ │ if (array2[j] == 1) { │ │ │ │ ++n; │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ final int n2 = byteMatrix.getHeight() * byteMatrix.getWidth(); │ │ │ │ - return Math.abs(n * 2 - n2) * 10 / n2 * 10; │ │ │ │ + return Math.abs((n << 1) - n2) * 10 / n2 * 10; │ │ │ │ } │ │ │ │ │ │ │ │ static boolean getDataMaskBit(final int n, final int n2, final int n3) { │ │ │ │ int n4 = 0; │ │ │ │ switch (n) { │ │ │ │ default: { │ │ │ │ throw new IllegalArgumentException("Invalid mask pattern: " + n); │ │ │ │ @@ -149,29 +149,35 @@ │ │ │ │ n4 = (n3 * n2 % 3 + (n3 + n2 & 0x1) & 0x1); │ │ │ │ break; │ │ │ │ } │ │ │ │ } │ │ │ │ return n4 == 0; │ │ │ │ } │ │ │ │ │ │ │ │ - private static boolean isWhiteHorizontal(final byte[] array, final int n, final int n2) { │ │ │ │ - byte b = (byte)(true ? 1 : 0); │ │ │ │ - for (int i = n; i < n2; ++i) { │ │ │ │ - if (i >= 0 && i < array.length && array[i] == b) { │ │ │ │ - b = (byte)(false ? 1 : 0); │ │ │ │ - break; │ │ │ │ + private static boolean isWhiteHorizontal(final byte[] array, int max, int min) { │ │ │ │ + final boolean b = true; │ │ │ │ + boolean b2 = false; │ │ │ │ + max = Math.max(max, 0); │ │ │ │ + min = Math.min(min, array.length); │ │ │ │ + for (int i = max; i < min; ++i) { │ │ │ │ + if (array[i] == (b ? 1 : 0)) { │ │ │ │ + return b2; │ │ │ │ } │ │ │ │ } │ │ │ │ - return b != 0; │ │ │ │ + b2 = b; │ │ │ │ + return b2; │ │ │ │ } │ │ │ │ │ │ │ │ - private static boolean isWhiteVertical(final byte[][] array, final int n, final int n2, final int n3) { │ │ │ │ - byte b = (byte)(true ? 1 : 0); │ │ │ │ - for (int i = n2; i < n3; ++i) { │ │ │ │ - if (i >= 0 && i < array.length && array[i][n] == b) { │ │ │ │ - b = (byte)(false ? 1 : 0); │ │ │ │ - break; │ │ │ │ + private static boolean isWhiteVertical(final byte[][] array, final int n, int max, int min) { │ │ │ │ + final boolean b = true; │ │ │ │ + boolean b2 = false; │ │ │ │ + max = Math.max(max, 0); │ │ │ │ + min = Math.min(min, array.length); │ │ │ │ + for (int i = max; i < min; ++i) { │ │ │ │ + if (array[i][n] == (b ? 1 : 0)) { │ │ │ │ + return b2; │ │ │ │ } │ │ │ │ } │ │ │ │ - return b != 0; │ │ │ │ + b2 = b; │ │ │ │ + return b2; │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/qrcode/encoder/MatrixUtil.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -643,22 +643,20 @@ │ │ │ │ │ │ │ │ private static void embedPositionDetectionPatternsAndSeparators(final ByteMatrix byteMatrix) { │ │ │ │ final int n = 7; │ │ │ │ final int length = MatrixUtil.POSITION_DETECTION_PATTERN[0].length; │ │ │ │ embedPositionDetectionPattern(0, 0, byteMatrix); │ │ │ │ embedPositionDetectionPattern(byteMatrix.getWidth() - length, 0, byteMatrix); │ │ │ │ embedPositionDetectionPattern(0, byteMatrix.getWidth() - length, byteMatrix); │ │ │ │ - final int n2 = 8; │ │ │ │ embedHorizontalSeparationPattern(0, n, byteMatrix); │ │ │ │ - embedHorizontalSeparationPattern(byteMatrix.getWidth() - n2, n, byteMatrix); │ │ │ │ - embedHorizontalSeparationPattern(0, byteMatrix.getWidth() - n2, byteMatrix); │ │ │ │ - final int n3 = 7; │ │ │ │ - embedVerticalSeparationPattern(n3, 0, byteMatrix); │ │ │ │ - embedVerticalSeparationPattern(byteMatrix.getHeight() - n3 - 1, 0, byteMatrix); │ │ │ │ - embedVerticalSeparationPattern(n3, byteMatrix.getHeight() - n3, byteMatrix); │ │ │ │ + embedHorizontalSeparationPattern(byteMatrix.getWidth() - 8, n, byteMatrix); │ │ │ │ + embedHorizontalSeparationPattern(0, byteMatrix.getWidth() - 8, byteMatrix); │ │ │ │ + embedVerticalSeparationPattern(n, 0, byteMatrix); │ │ │ │ + embedVerticalSeparationPattern(byteMatrix.getHeight() - 7 - 1, 0, byteMatrix); │ │ │ │ + embedVerticalSeparationPattern(n, byteMatrix.getHeight() - 7, byteMatrix); │ │ │ │ } │ │ │ │ │ │ │ │ private static void embedTimingPatterns(final ByteMatrix byteMatrix) { │ │ │ │ final int n = 6; │ │ │ │ for (int i = 8; i < byteMatrix.getWidth() - 8; ++i) { │ │ │ │ final int n2 = (i + 1) % 2; │ │ │ │ if (isEmpty(byteMatrix.get(i, n))) { │ │ │ │ @@ -667,41 +665,40 @@ │ │ │ │ if (isEmpty(byteMatrix.get(n, i))) { │ │ │ │ byteMatrix.set(n, i, n2); │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ static void embedTypeInfo(final ErrorCorrectionLevel errorCorrectionLevel, final int n, final ByteMatrix byteMatrix) { │ │ │ │ + final int n2 = 8; │ │ │ │ final BitArray bitArray = new BitArray(); │ │ │ │ makeTypeInfoBits(errorCorrectionLevel, n, bitArray); │ │ │ │ for (int i = 0; i < bitArray.getSize(); ++i) { │ │ │ │ final boolean value = bitArray.get(bitArray.getSize() - 1 - i); │ │ │ │ byteMatrix.set(MatrixUtil.TYPE_INFO_COORDINATES[i][0], MatrixUtil.TYPE_INFO_COORDINATES[i][1], value); │ │ │ │ - if (i < 8) { │ │ │ │ - byteMatrix.set(byteMatrix.getWidth() - i - 1, 8, value); │ │ │ │ + if (i < n2) { │ │ │ │ + byteMatrix.set(byteMatrix.getWidth() - i - 1, n2, value); │ │ │ │ } │ │ │ │ else { │ │ │ │ - byteMatrix.set(8, byteMatrix.getHeight() - 7 + (i - 8), value); │ │ │ │ + byteMatrix.set(n2, byteMatrix.getHeight() - 7 + (i - 8), value); │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ private static void embedVerticalSeparationPattern(final int n, final int n2, final ByteMatrix byteMatrix) { │ │ │ │ for (int i = 0; i < 7; ++i) { │ │ │ │ if (!isEmpty(byteMatrix.get(n, n2 + i))) { │ │ │ │ throw new WriterException(); │ │ │ │ } │ │ │ │ byteMatrix.set(n, n2 + i, 0); │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ - static int findMSBSet(int i) { │ │ │ │ - int n; │ │ │ │ - for (n = 0; i != 0; i >>>= 1, ++n) {} │ │ │ │ - return n; │ │ │ │ + static int findMSBSet(final int n) { │ │ │ │ + return 32 - Integer.numberOfLeadingZeros(n); │ │ │ │ } │ │ │ │ │ │ │ │ private static boolean isEmpty(final int n) { │ │ │ │ return n == -1; │ │ │ │ } │ │ │ │ │ │ │ │ static void makeTypeInfoBits(final ErrorCorrectionLevel errorCorrectionLevel, final int n, final BitArray bitArray) { │ │ ├── com/google/zxing/ChecksumException.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -49,22 +49,20 @@ │ │ │ │ stack=300, locals=2, args_size=0 │ │ │ │ 0: new #2 // class com/google/zxing/ChecksumException │ │ │ │ 3: astore_0 │ │ │ │ 4: aload_0 │ │ │ │ 5: invokespecial #10 // Method "":()V │ │ │ │ 8: aload_0 │ │ │ │ 9: putstatic #12 // Field INSTANCE:Lcom/google/zxing/ChecksumException; │ │ │ │ - 12: getstatic #12 // Field INSTANCE:Lcom/google/zxing/ChecksumException; │ │ │ │ - 15: astore_0 │ │ │ │ - 16: getstatic #16 // Field NO_TRACE:[Ljava/lang/StackTraceElement; │ │ │ │ - 19: astore_1 │ │ │ │ - 20: aload_0 │ │ │ │ - 21: aload_1 │ │ │ │ - 22: invokevirtual #20 // Method setStackTrace:([Ljava/lang/StackTraceElement;)V │ │ │ │ - 25: return │ │ │ │ + 12: getstatic #16 // Field NO_TRACE:[Ljava/lang/StackTraceElement; │ │ │ │ + 15: astore_1 │ │ │ │ + 16: aload_0 │ │ │ │ + 17: aload_1 │ │ │ │ + 18: invokevirtual #20 // Method setStackTrace:([Ljava/lang/StackTraceElement;)V │ │ │ │ + 21: return │ │ │ │ │ │ │ │ private com.google.zxing.ChecksumException(); │ │ │ │ descriptor: ()V │ │ │ │ flags: ACC_PRIVATE │ │ │ │ Code: │ │ │ │ stack=300, locals=1, args_size=1 │ │ │ │ 0: aload_0 │ │ ├── com/google/zxing/FormatException.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -49,22 +49,20 @@ │ │ │ │ stack=300, locals=2, args_size=0 │ │ │ │ 0: new #2 // class com/google/zxing/FormatException │ │ │ │ 3: astore_0 │ │ │ │ 4: aload_0 │ │ │ │ 5: invokespecial #10 // Method "":()V │ │ │ │ 8: aload_0 │ │ │ │ 9: putstatic #12 // Field INSTANCE:Lcom/google/zxing/FormatException; │ │ │ │ - 12: getstatic #12 // Field INSTANCE:Lcom/google/zxing/FormatException; │ │ │ │ - 15: astore_0 │ │ │ │ - 16: getstatic #16 // Field NO_TRACE:[Ljava/lang/StackTraceElement; │ │ │ │ - 19: astore_1 │ │ │ │ - 20: aload_0 │ │ │ │ - 21: aload_1 │ │ │ │ - 22: invokevirtual #20 // Method setStackTrace:([Ljava/lang/StackTraceElement;)V │ │ │ │ - 25: return │ │ │ │ + 12: getstatic #16 // Field NO_TRACE:[Ljava/lang/StackTraceElement; │ │ │ │ + 15: astore_1 │ │ │ │ + 16: aload_0 │ │ │ │ + 17: aload_1 │ │ │ │ + 18: invokevirtual #20 // Method setStackTrace:([Ljava/lang/StackTraceElement;)V │ │ │ │ + 21: return │ │ │ │ │ │ │ │ private com.google.zxing.FormatException(); │ │ │ │ descriptor: ()V │ │ │ │ flags: ACC_PRIVATE │ │ │ │ Code: │ │ │ │ stack=300, locals=1, args_size=1 │ │ │ │ 0: aload_0 │ │ ├── com/google/zxing/MultiFormatWriter.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -3,18 +3,20 @@ │ │ │ │ │ │ │ │ import com.google.zxing.aztec.AztecWriter; │ │ │ │ import com.google.zxing.datamatrix.DataMatrixWriter; │ │ │ │ import com.google.zxing.oned.CodaBarWriter; │ │ │ │ import com.google.zxing.pdf417.PDF417Writer; │ │ │ │ import com.google.zxing.oned.ITFWriter; │ │ │ │ import com.google.zxing.oned.Code128Writer; │ │ │ │ +import com.google.zxing.oned.Code93Writer; │ │ │ │ import com.google.zxing.oned.Code39Writer; │ │ │ │ import com.google.zxing.qrcode.QRCodeWriter; │ │ │ │ import com.google.zxing.oned.UPCAWriter; │ │ │ │ import com.google.zxing.oned.EAN13Writer; │ │ │ │ +import com.google.zxing.oned.UPCEWriter; │ │ │ │ import com.google.zxing.oned.EAN8Writer; │ │ │ │ import java.util.Map; │ │ │ │ import com.google.zxing.common.BitMatrix; │ │ │ │ │ │ │ │ public final class MultiFormatWriter implements Writer │ │ │ │ { │ │ │ │ public BitMatrix encode(final String s, final BarcodeFormat barcodeFormat, final int n, final int n2) { │ │ │ │ @@ -28,50 +30,58 @@ │ │ │ │ throw new IllegalArgumentException("No encoder available for format " + barcodeFormat); │ │ │ │ } │ │ │ │ case 1: { │ │ │ │ o = new EAN8Writer(); │ │ │ │ break; │ │ │ │ } │ │ │ │ case 2: { │ │ │ │ - o = new EAN13Writer(); │ │ │ │ + o = new UPCEWriter(); │ │ │ │ break; │ │ │ │ } │ │ │ │ case 3: { │ │ │ │ - o = new UPCAWriter(); │ │ │ │ + o = new EAN13Writer(); │ │ │ │ break; │ │ │ │ } │ │ │ │ case 4: { │ │ │ │ - o = new QRCodeWriter(); │ │ │ │ + o = new UPCAWriter(); │ │ │ │ break; │ │ │ │ } │ │ │ │ case 5: { │ │ │ │ - o = new Code39Writer(); │ │ │ │ + o = new QRCodeWriter(); │ │ │ │ break; │ │ │ │ } │ │ │ │ case 6: { │ │ │ │ - o = new Code128Writer(); │ │ │ │ + o = new Code39Writer(); │ │ │ │ break; │ │ │ │ } │ │ │ │ case 7: { │ │ │ │ - o = new ITFWriter(); │ │ │ │ + o = new Code93Writer(); │ │ │ │ break; │ │ │ │ } │ │ │ │ case 8: { │ │ │ │ - o = new PDF417Writer(); │ │ │ │ + o = new Code128Writer(); │ │ │ │ break; │ │ │ │ } │ │ │ │ case 9: { │ │ │ │ - o = new CodaBarWriter(); │ │ │ │ + o = new ITFWriter(); │ │ │ │ break; │ │ │ │ } │ │ │ │ case 10: { │ │ │ │ - o = new DataMatrixWriter(); │ │ │ │ + o = new PDF417Writer(); │ │ │ │ break; │ │ │ │ } │ │ │ │ case 11: { │ │ │ │ + o = new CodaBarWriter(); │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + case 12: { │ │ │ │ + o = new DataMatrixWriter(); │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + case 13: { │ │ │ │ o = new AztecWriter(); │ │ │ │ break; │ │ │ │ } │ │ │ │ } │ │ │ │ return ((Writer)o).encode(s, barcodeFormat, n, n2, map); │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/NotFoundException.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -40,22 +40,20 @@ │ │ │ │ stack=300, locals=2, args_size=0 │ │ │ │ 0: new #2 // class com/google/zxing/NotFoundException │ │ │ │ 3: astore_0 │ │ │ │ 4: aload_0 │ │ │ │ 5: invokespecial #10 // Method "":()V │ │ │ │ 8: aload_0 │ │ │ │ 9: putstatic #12 // Field INSTANCE:Lcom/google/zxing/NotFoundException; │ │ │ │ - 12: getstatic #12 // Field INSTANCE:Lcom/google/zxing/NotFoundException; │ │ │ │ - 15: astore_0 │ │ │ │ - 16: getstatic #16 // Field NO_TRACE:[Ljava/lang/StackTraceElement; │ │ │ │ - 19: astore_1 │ │ │ │ - 20: aload_0 │ │ │ │ - 21: aload_1 │ │ │ │ - 22: invokevirtual #20 // Method setStackTrace:([Ljava/lang/StackTraceElement;)V │ │ │ │ - 25: return │ │ │ │ + 12: getstatic #16 // Field NO_TRACE:[Ljava/lang/StackTraceElement; │ │ │ │ + 15: astore_1 │ │ │ │ + 16: aload_0 │ │ │ │ + 17: aload_1 │ │ │ │ + 18: invokevirtual #20 // Method setStackTrace:([Ljava/lang/StackTraceElement;)V │ │ │ │ + 21: return │ │ │ │ │ │ │ │ private com.google.zxing.NotFoundException(); │ │ │ │ descriptor: ()V │ │ │ │ flags: ACC_PRIVATE │ │ │ │ Code: │ │ │ │ stack=300, locals=1, args_size=1 │ │ │ │ 0: aload_0 │ │ ├── com/google/zxing/PlanarYUVLuminanceSource.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -51,17 +51,16 @@ │ │ │ │ final int n = width * height; │ │ │ │ yuvData = new byte[n]; │ │ │ │ int n2 = this.top * this.dataWidth + this.left; │ │ │ │ if (width == this.dataWidth) { │ │ │ │ System.arraycopy(this.yuvData, n2, yuvData, 0, n); │ │ │ │ } │ │ │ │ else { │ │ │ │ - final byte[] yuvData2 = this.yuvData; │ │ │ │ for (int i = 0; i < height; ++i) { │ │ │ │ - System.arraycopy(yuvData2, n2, yuvData, i * width, width); │ │ │ │ + System.arraycopy(this.yuvData, n2, yuvData, i * width, width); │ │ │ │ n2 += this.dataWidth; │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ return yuvData; │ │ │ │ } │ │ │ │ │ │ │ │ @@ -94,14 +93,14 @@ │ │ │ │ final int n2 = this.getHeight() / 2; │ │ │ │ final int[] array = new int[n * n2]; │ │ │ │ final byte[] yuvData = this.yuvData; │ │ │ │ int n3 = this.top * this.dataWidth + this.left; │ │ │ │ for (int i = 0; i < n2; ++i) { │ │ │ │ final int n4 = i * n; │ │ │ │ for (int j = 0; j < n; ++j) { │ │ │ │ - array[n4 + j] = (0xFF000000 | 65793 * (yuvData[j * 2 + n3] & 0xFF)); │ │ │ │ + array[n4 + j] = (0xFF000000 | 65793 * (yuvData[(j << 1) + n3] & 0xFF)); │ │ │ │ } │ │ │ │ - n3 += this.dataWidth * 2; │ │ │ │ + n3 += this.dataWidth << 1; │ │ │ │ } │ │ │ │ return array; │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/RGBLuminanceSource.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -11,29 +11,19 @@ │ │ │ │ │ │ │ │ public RGBLuminanceSource(final int dataWidth, final int dataHeight, final int[] array) { │ │ │ │ super(dataWidth, dataHeight); │ │ │ │ this.dataWidth = dataWidth; │ │ │ │ this.dataHeight = dataHeight; │ │ │ │ this.left = 0; │ │ │ │ this.top = 0; │ │ │ │ - this.luminances = new byte[dataWidth * dataHeight]; │ │ │ │ - for (int i = 0; i < dataHeight; ++i) { │ │ │ │ - final int n = i * dataWidth; │ │ │ │ - for (int j = 0; j < dataWidth; ++j) { │ │ │ │ - final int n2 = array[n + j]; │ │ │ │ - final int n3 = n2 >> 16 & 0xFF; │ │ │ │ - final int n4 = n2 >> 8 & 0xFF; │ │ │ │ - final int n5 = n2 & 0xFF; │ │ │ │ - if (n3 == n4 && n4 == n5) { │ │ │ │ - this.luminances[n + j] = (byte)n3; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - this.luminances[n + j] = (byte)((n4 * 2 + n3 + n5) / 4); │ │ │ │ - } │ │ │ │ - } │ │ │ │ + final int n = dataWidth * dataHeight; │ │ │ │ + this.luminances = new byte[n]; │ │ │ │ + for (int i = 0; i < n; ++i) { │ │ │ │ + final int n2 = array[i]; │ │ │ │ + this.luminances[i] = (byte)(((n2 >> 16 & 0xFF) + (n2 >> 7 & 0x1FE) + (n2 & 0xFF)) / 4); │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ private RGBLuminanceSource(final byte[] luminances, final int dataWidth, final int dataHeight, final int left, final int top, final int n, final int n2) { │ │ │ │ super(n, n2); │ │ │ │ if (left + n > dataWidth || top + n2 > dataHeight) { │ │ │ │ throw new IllegalArgumentException("Crop rectangle does not fit within image data."); │ │ │ │ @@ -60,17 +50,16 @@ │ │ │ │ final int n = width * height; │ │ │ │ luminances = new byte[n]; │ │ │ │ int n2 = this.top * this.dataWidth + this.left; │ │ │ │ if (width == this.dataWidth) { │ │ │ │ System.arraycopy(this.luminances, n2, luminances, 0, n); │ │ │ │ } │ │ │ │ else { │ │ │ │ - final byte[] luminances2 = this.luminances; │ │ │ │ for (int i = 0; i < height; ++i) { │ │ │ │ - System.arraycopy(luminances2, n2, luminances, i * width, width); │ │ │ │ + System.arraycopy(this.luminances, n2, luminances, i * width, width); │ │ │ │ n2 += this.dataWidth; │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ return luminances; │ │ │ │ } │ │ ├── com/google/zxing/aztec/AztecReader.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -68,135 +68,138 @@ │ │ │ │ // 98: aload 6 │ │ │ │ // 100: invokespecial com/google/zxing/aztec/decoder/Decoder.:()V │ │ │ │ // 103: aload 6 │ │ │ │ // 105: aload 10 │ │ │ │ // 107: invokevirtual com/google/zxing/aztec/decoder/Decoder.decode:(Lcom/google/zxing/aztec/AztecDetectorResult;)Lcom/google/zxing/common/DecoderResult; │ │ │ │ // 110: astore 8 │ │ │ │ // 112: aload_2 │ │ │ │ - // 113: ifnull 222 │ │ │ │ + // 113: ifnull 214 │ │ │ │ // 116: getstatic com/google/zxing/DecodeHintType.NEED_RESULT_POINT_CALLBACK:Lcom/google/zxing/DecodeHintType; │ │ │ │ // 119: astore 6 │ │ │ │ // 121: aload_2 │ │ │ │ // 122: aload 6 │ │ │ │ // 124: invokeinterface java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object; │ │ │ │ // 129: checkcast Lcom/google/zxing/ResultPointCallback; │ │ │ │ // 132: astore 11 │ │ │ │ // 134: aload 11 │ │ │ │ - // 136: ifnull 222 │ │ │ │ + // 136: ifnull 214 │ │ │ │ // 139: aload 7 │ │ │ │ // 141: arraylength │ │ │ │ // 142: istore 12 │ │ │ │ // 144: iconst_0 │ │ │ │ // 145: istore 9 │ │ │ │ // 147: aconst_null │ │ │ │ // 148: astore 6 │ │ │ │ // 150: iload 9 │ │ │ │ // 152: iload 12 │ │ │ │ - // 154: if_icmpge 222 │ │ │ │ + // 154: if_icmpge 214 │ │ │ │ // 157: aload 7 │ │ │ │ // 159: iload 9 │ │ │ │ // 161: aaload │ │ │ │ // 162: astore 13 │ │ │ │ // 164: aload 11 │ │ │ │ // 166: aload 13 │ │ │ │ // 168: invokeinterface com/google/zxing/ResultPointCallback.foundPossibleResultPoint:(Lcom/google/zxing/ResultPoint;)V │ │ │ │ // 173: iload 9 │ │ │ │ // 175: iconst_1 │ │ │ │ // 176: iadd │ │ │ │ // 177: istore 9 │ │ │ │ // 179: goto 150 │ │ │ │ - // 182: astore 14 │ │ │ │ - // 184: aload 14 │ │ │ │ - // 186: astore_3 │ │ │ │ - // 187: goto 69 │ │ │ │ - // 190: astore 14 │ │ │ │ - // 192: aload 14 │ │ │ │ - // 194: astore 4 │ │ │ │ - // 196: goto 69 │ │ │ │ - // 199: astore 6 │ │ │ │ - // 201: aload 6 │ │ │ │ - // 203: astore 14 │ │ │ │ - // 205: aload_3 │ │ │ │ - // 206: ifnull 211 │ │ │ │ - // 209: aload_3 │ │ │ │ + // 182: astore_3 │ │ │ │ + // 183: goto 69 │ │ │ │ + // 186: astore 4 │ │ │ │ + // 188: goto 69 │ │ │ │ + // 191: astore 6 │ │ │ │ + // 193: aload 6 │ │ │ │ + // 195: astore 14 │ │ │ │ + // 197: aload_3 │ │ │ │ + // 198: ifnull 203 │ │ │ │ + // 201: aload_3 │ │ │ │ + // 202: athrow │ │ │ │ + // 203: aload 4 │ │ │ │ + // 205: ifnull 211 │ │ │ │ + // 208: aload 4 │ │ │ │ // 210: athrow │ │ │ │ - // 211: aload 4 │ │ │ │ - // 213: ifnull 219 │ │ │ │ - // 216: aload 4 │ │ │ │ - // 218: athrow │ │ │ │ - // 219: aload 14 │ │ │ │ - // 221: athrow │ │ │ │ - // 222: new Lcom/google/zxing/Result; │ │ │ │ - // 225: astore 15 │ │ │ │ - // 227: aload 8 │ │ │ │ - // 229: invokevirtual com/google/zxing/common/DecoderResult.getText:()Ljava/lang/String; │ │ │ │ - // 232: astore 6 │ │ │ │ - // 234: aload 8 │ │ │ │ - // 236: invokevirtual com/google/zxing/common/DecoderResult.getRawBytes:()[B │ │ │ │ - // 239: astore 16 │ │ │ │ - // 241: getstatic com/google/zxing/BarcodeFormat.AZTEC:Lcom/google/zxing/BarcodeFormat; │ │ │ │ - // 244: astore 17 │ │ │ │ - // 246: aload 15 │ │ │ │ - // 248: aload 6 │ │ │ │ - // 250: aload 16 │ │ │ │ - // 252: aload 7 │ │ │ │ - // 254: aload 17 │ │ │ │ - // 256: invokespecial com/google/zxing/Result.:(Ljava/lang/String;[B[Lcom/google/zxing/ResultPoint;Lcom/google/zxing/BarcodeFormat;)V │ │ │ │ - // 259: aload 8 │ │ │ │ - // 261: invokevirtual com/google/zxing/common/DecoderResult.getByteSegments:()Ljava/util/List; │ │ │ │ - // 264: astore 18 │ │ │ │ - // 266: aload 18 │ │ │ │ - // 268: ifnull 285 │ │ │ │ - // 271: getstatic com/google/zxing/ResultMetadataType.BYTE_SEGMENTS:Lcom/google/zxing/ResultMetadataType; │ │ │ │ - // 274: astore 6 │ │ │ │ - // 276: aload 15 │ │ │ │ - // 278: aload 6 │ │ │ │ - // 280: aload 18 │ │ │ │ - // 282: invokevirtual com/google/zxing/Result.putMetadata:(Lcom/google/zxing/ResultMetadataType;Ljava/lang/Object;)V │ │ │ │ - // 285: aload 8 │ │ │ │ - // 287: invokevirtual com/google/zxing/common/DecoderResult.getECLevel:()Ljava/lang/String; │ │ │ │ - // 290: astore 19 │ │ │ │ - // 292: aload 19 │ │ │ │ - // 294: ifnull 311 │ │ │ │ - // 297: getstatic com/google/zxing/ResultMetadataType.ERROR_CORRECTION_LEVEL:Lcom/google/zxing/ResultMetadataType; │ │ │ │ - // 300: astore 6 │ │ │ │ - // 302: aload 15 │ │ │ │ - // 304: aload 6 │ │ │ │ - // 306: aload 19 │ │ │ │ - // 308: invokevirtual com/google/zxing/Result.putMetadata:(Lcom/google/zxing/ResultMetadataType;Ljava/lang/Object;)V │ │ │ │ - // 311: aload 15 │ │ │ │ - // 313: areturn │ │ │ │ - // 314: astore 6 │ │ │ │ - // 316: aload 6 │ │ │ │ - // 318: astore 14 │ │ │ │ - // 320: goto 205 │ │ │ │ + // 211: aload 14 │ │ │ │ + // 213: athrow │ │ │ │ + // 214: new Lcom/google/zxing/Result; │ │ │ │ + // 217: astore 15 │ │ │ │ + // 219: aload 8 │ │ │ │ + // 221: invokevirtual com/google/zxing/common/DecoderResult.getText:()Ljava/lang/String; │ │ │ │ + // 224: astore 6 │ │ │ │ + // 226: aload 8 │ │ │ │ + // 228: invokevirtual com/google/zxing/common/DecoderResult.getRawBytes:()[B │ │ │ │ + // 231: astore 16 │ │ │ │ + // 233: aload 8 │ │ │ │ + // 235: invokevirtual com/google/zxing/common/DecoderResult.getNumBits:()I │ │ │ │ + // 238: istore 17 │ │ │ │ + // 240: getstatic com/google/zxing/BarcodeFormat.AZTEC:Lcom/google/zxing/BarcodeFormat; │ │ │ │ + // 243: astore 18 │ │ │ │ + // 245: invokestatic java/lang/System.currentTimeMillis:()J │ │ │ │ + // 248: lstore 19 │ │ │ │ + // 250: aload 15 │ │ │ │ + // 252: aload 6 │ │ │ │ + // 254: aload 16 │ │ │ │ + // 256: iload 17 │ │ │ │ + // 258: aload 7 │ │ │ │ + // 260: aload 18 │ │ │ │ + // 262: lload 19 │ │ │ │ + // 264: invokespecial com/google/zxing/Result.:(Ljava/lang/String;[BI[Lcom/google/zxing/ResultPoint;Lcom/google/zxing/BarcodeFormat;J)V │ │ │ │ + // 267: aload 8 │ │ │ │ + // 269: invokevirtual com/google/zxing/common/DecoderResult.getByteSegments:()Ljava/util/List; │ │ │ │ + // 272: astore 21 │ │ │ │ + // 274: aload 21 │ │ │ │ + // 276: ifnull 293 │ │ │ │ + // 279: getstatic com/google/zxing/ResultMetadataType.BYTE_SEGMENTS:Lcom/google/zxing/ResultMetadataType; │ │ │ │ + // 282: astore 6 │ │ │ │ + // 284: aload 15 │ │ │ │ + // 286: aload 6 │ │ │ │ + // 288: aload 21 │ │ │ │ + // 290: invokevirtual com/google/zxing/Result.putMetadata:(Lcom/google/zxing/ResultMetadataType;Ljava/lang/Object;)V │ │ │ │ + // 293: aload 8 │ │ │ │ + // 295: invokevirtual com/google/zxing/common/DecoderResult.getECLevel:()Ljava/lang/String; │ │ │ │ + // 298: astore 22 │ │ │ │ + // 300: aload 22 │ │ │ │ + // 302: ifnull 319 │ │ │ │ + // 305: getstatic com/google/zxing/ResultMetadataType.ERROR_CORRECTION_LEVEL:Lcom/google/zxing/ResultMetadataType; │ │ │ │ + // 308: astore 6 │ │ │ │ + // 310: aload 15 │ │ │ │ + // 312: aload 6 │ │ │ │ + // 314: aload 22 │ │ │ │ + // 316: invokevirtual com/google/zxing/Result.putMetadata:(Lcom/google/zxing/ResultMetadataType;Ljava/lang/Object;)V │ │ │ │ + // 319: aload 15 │ │ │ │ + // 321: areturn │ │ │ │ + // 322: astore 6 │ │ │ │ + // 324: aload 6 │ │ │ │ + // 326: astore 14 │ │ │ │ + // 328: goto 197 │ │ │ │ // Exceptions: │ │ │ │ // Try Handler │ │ │ │ // Start End Start End Type │ │ │ │ // ----- ----- ----- ----- ------------------------------------ │ │ │ │ - // 37 41 182 190 Lcom/google/zxing/NotFoundException; │ │ │ │ - // 37 41 190 199 Lcom/google/zxing/FormatException; │ │ │ │ - // 43 48 182 190 Lcom/google/zxing/NotFoundException; │ │ │ │ - // 43 48 190 199 Lcom/google/zxing/FormatException; │ │ │ │ - // 50 53 182 190 Lcom/google/zxing/NotFoundException; │ │ │ │ - // 50 53 190 199 Lcom/google/zxing/FormatException; │ │ │ │ - // 55 60 182 190 Lcom/google/zxing/NotFoundException; │ │ │ │ - // 55 60 190 199 Lcom/google/zxing/FormatException; │ │ │ │ - // 62 67 182 190 Lcom/google/zxing/NotFoundException; │ │ │ │ - // 62 67 190 199 Lcom/google/zxing/FormatException; │ │ │ │ - // 79 84 199 205 Lcom/google/zxing/NotFoundException; │ │ │ │ - // 79 84 314 323 Lcom/google/zxing/FormatException; │ │ │ │ - // 86 91 199 205 Lcom/google/zxing/NotFoundException; │ │ │ │ - // 86 91 314 323 Lcom/google/zxing/FormatException; │ │ │ │ - // 93 96 199 205 Lcom/google/zxing/NotFoundException; │ │ │ │ - // 93 96 314 323 Lcom/google/zxing/FormatException; │ │ │ │ - // 98 103 199 205 Lcom/google/zxing/NotFoundException; │ │ │ │ - // 98 103 314 323 Lcom/google/zxing/FormatException; │ │ │ │ - // 105 110 199 205 Lcom/google/zxing/NotFoundException; │ │ │ │ - // 105 110 314 323 Lcom/google/zxing/FormatException; │ │ │ │ + // 37 41 182 186 Lcom/google/zxing/NotFoundException; │ │ │ │ + // 37 41 186 191 Lcom/google/zxing/FormatException; │ │ │ │ + // 43 48 182 186 Lcom/google/zxing/NotFoundException; │ │ │ │ + // 43 48 186 191 Lcom/google/zxing/FormatException; │ │ │ │ + // 50 53 182 186 Lcom/google/zxing/NotFoundException; │ │ │ │ + // 50 53 186 191 Lcom/google/zxing/FormatException; │ │ │ │ + // 55 60 182 186 Lcom/google/zxing/NotFoundException; │ │ │ │ + // 55 60 186 191 Lcom/google/zxing/FormatException; │ │ │ │ + // 62 67 182 186 Lcom/google/zxing/NotFoundException; │ │ │ │ + // 62 67 186 191 Lcom/google/zxing/FormatException; │ │ │ │ + // 79 84 191 197 Lcom/google/zxing/NotFoundException; │ │ │ │ + // 79 84 322 331 Lcom/google/zxing/FormatException; │ │ │ │ + // 86 91 191 197 Lcom/google/zxing/NotFoundException; │ │ │ │ + // 86 91 322 331 Lcom/google/zxing/FormatException; │ │ │ │ + // 93 96 191 197 Lcom/google/zxing/NotFoundException; │ │ │ │ + // 93 96 322 331 Lcom/google/zxing/FormatException; │ │ │ │ + // 98 103 191 197 Lcom/google/zxing/NotFoundException; │ │ │ │ + // 98 103 322 331 Lcom/google/zxing/FormatException; │ │ │ │ + // 105 110 191 197 Lcom/google/zxing/NotFoundException; │ │ │ │ + // 105 110 322 331 Lcom/google/zxing/FormatException; │ │ │ │ // │ │ │ │ // The error that occurred was: │ │ │ │ // │ │ │ │ // java.lang.IllegalStateException: Expression is linked from several locations: Label_0112: │ │ │ │ // at com.strobel.decompiler.ast.Error.expressionLinkedFromMultipleLocations(Error.java:27) │ │ │ │ // at com.strobel.decompiler.ast.AstOptimizer.mergeDisparateObjectInitializations(AstOptimizer.java:2596) │ │ │ │ // at com.strobel.decompiler.ast.AstOptimizer.optimize(AstOptimizer.java:235) │ │ ├── com/google/zxing/aztec/AztecWriter.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -49,49 +49,24 @@ │ │ │ │ } │ │ │ │ │ │ │ │ public BitMatrix encode(final String s, final BarcodeFormat barcodeFormat, final int n, final int n2) { │ │ │ │ return this.encode(s, barcodeFormat, n, n2, null); │ │ │ │ } │ │ │ │ │ │ │ │ public BitMatrix encode(final String s, final BarcodeFormat barcodeFormat, final int n, final int n2, final Map map) { │ │ │ │ - Number n3 = null; │ │ │ │ - String s2; │ │ │ │ - if (map == null) { │ │ │ │ - s2 = null; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - s2 = map.get(EncodeHintType.CHARACTER_SET); │ │ │ │ - } │ │ │ │ - Number n4; │ │ │ │ - if (map == null) { │ │ │ │ - n4 = null; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - n4 = (Number)map.get(EncodeHintType.ERROR_CORRECTION); │ │ │ │ - } │ │ │ │ + Charset charset = AztecWriter.DEFAULT_CHARSET; │ │ │ │ + int int1 = 33; │ │ │ │ + int int2 = 0; │ │ │ │ if (map != null) { │ │ │ │ - n3 = (Number)map.get(EncodeHintType.AZTEC_LAYERS); │ │ │ │ - } │ │ │ │ - Charset charset; │ │ │ │ - if (s2 == null) { │ │ │ │ - charset = AztecWriter.DEFAULT_CHARSET; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - charset = Charset.forName(s2); │ │ │ │ - } │ │ │ │ - int intValue; │ │ │ │ - if (n4 == null) { │ │ │ │ - intValue = 33; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - intValue = n4.intValue(); │ │ │ │ - } │ │ │ │ - int intValue2; │ │ │ │ - if (n3 == null) { │ │ │ │ - intValue2 = 0; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - intValue2 = n3.intValue(); │ │ │ │ + if (map.containsKey(EncodeHintType.CHARACTER_SET)) { │ │ │ │ + charset = Charset.forName(map.get(EncodeHintType.CHARACTER_SET).toString()); │ │ │ │ + } │ │ │ │ + if (map.containsKey(EncodeHintType.ERROR_CORRECTION)) { │ │ │ │ + int1 = Integer.parseInt(map.get(EncodeHintType.ERROR_CORRECTION).toString()); │ │ │ │ + } │ │ │ │ + if (map.containsKey(EncodeHintType.AZTEC_LAYERS)) { │ │ │ │ + int2 = Integer.parseInt(map.get(EncodeHintType.AZTEC_LAYERS).toString()); │ │ │ │ + } │ │ │ │ } │ │ │ │ - return encode(s, barcodeFormat, n, n2, charset, intValue, intValue2); │ │ │ │ + return encode(s, barcodeFormat, n, n2, charset, int1, int2); │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/aztec/encoder/BinaryShiftToken.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -33,28 +33,28 @@ │ │ │ │ #28 = Class #27 // java/lang/Math │ │ │ │ #29 = Utf8 min │ │ │ │ #30 = Utf8 (II)I │ │ │ │ #31 = NameAndType #29:#30 // min:(II)I │ │ │ │ #32 = Methodref #28.#31 // java/lang/Math.min:(II)I │ │ │ │ #33 = Utf8 java/lang/StringBuilder │ │ │ │ #34 = Class #33 // java/lang/StringBuilder │ │ │ │ - #35 = Utf8 ()V │ │ │ │ - #36 = NameAndType #8:#35 // "":()V │ │ │ │ - #37 = Methodref #34.#36 // java/lang/StringBuilder."":()V │ │ │ │ - #38 = Utf8 < │ │ │ │ - #39 = String #38 // < │ │ │ │ + #35 = Utf8 < │ │ │ │ + #36 = String #35 // < │ │ │ │ + #37 = Utf8 (Ljava/lang/String;)V │ │ │ │ + #38 = NameAndType #8:#37 // "":(Ljava/lang/String;)V │ │ │ │ + #39 = Methodref #34.#38 // java/lang/StringBuilder."":(Ljava/lang/String;)V │ │ │ │ #40 = Utf8 append │ │ │ │ - #41 = Utf8 (Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - #42 = NameAndType #40:#41 // append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - #43 = Methodref #34.#42 // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - #44 = Utf8 (I)Ljava/lang/StringBuilder; │ │ │ │ - #45 = NameAndType #40:#44 // append:(I)Ljava/lang/StringBuilder; │ │ │ │ - #46 = Methodref #34.#45 // java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; │ │ │ │ - #47 = Utf8 :: │ │ │ │ - #48 = String #47 // :: │ │ │ │ + #41 = Utf8 (I)Ljava/lang/StringBuilder; │ │ │ │ + #42 = NameAndType #40:#41 // append:(I)Ljava/lang/StringBuilder; │ │ │ │ + #43 = Methodref #34.#42 // java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; │ │ │ │ + #44 = Utf8 :: │ │ │ │ + #45 = String #44 // :: │ │ │ │ + #46 = Utf8 (Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ + #47 = NameAndType #40:#46 // append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ + #48 = Methodref #34.#47 // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ #49 = Utf8 (C)Ljava/lang/StringBuilder; │ │ │ │ #50 = NameAndType #40:#49 // append:(C)Ljava/lang/StringBuilder; │ │ │ │ #51 = Methodref #34.#50 // java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder; │ │ │ │ #52 = Utf8 toString │ │ │ │ #53 = Utf8 ()Ljava/lang/String; │ │ │ │ #54 = NameAndType #52:#53 // toString:()Ljava/lang/String; │ │ │ │ #55 = Methodref #34.#54 // java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ @@ -192,41 +192,38 @@ │ │ │ │ descriptor: ()Ljava/lang/String; │ │ │ │ flags: ACC_PUBLIC │ │ │ │ Code: │ │ │ │ stack=300, locals=4, args_size=1 │ │ │ │ 0: new #34 // class java/lang/StringBuilder │ │ │ │ 3: astore_1 │ │ │ │ 4: aload_1 │ │ │ │ - 5: invokespecial #37 // Method java/lang/StringBuilder."":()V │ │ │ │ - 8: aload_1 │ │ │ │ - 9: ldc #39 // String < │ │ │ │ - 11: invokevirtual #43 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - 14: astore_1 │ │ │ │ - 15: aload_0 │ │ │ │ - 16: getfield #13 // Field binaryShiftStart:S │ │ │ │ - 19: istore_2 │ │ │ │ - 20: aload_1 │ │ │ │ - 21: iload_2 │ │ │ │ - 22: invokevirtual #46 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; │ │ │ │ - 25: ldc #48 // String :: │ │ │ │ - 27: invokevirtual #43 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - 30: astore_1 │ │ │ │ + 5: ldc #36 // String < │ │ │ │ + 7: invokespecial #39 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V │ │ │ │ + 10: aload_0 │ │ │ │ + 11: getfield #13 // Field binaryShiftStart:S │ │ │ │ + 14: istore_2 │ │ │ │ + 15: aload_1 │ │ │ │ + 16: iload_2 │ │ │ │ + 17: invokevirtual #43 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; │ │ │ │ + 20: ldc #45 // String :: │ │ │ │ + 22: invokevirtual #48 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ + 25: astore_1 │ │ │ │ + 26: aload_0 │ │ │ │ + 27: getfield #13 // Field binaryShiftStart:S │ │ │ │ + 30: istore_2 │ │ │ │ 31: aload_0 │ │ │ │ - 32: getfield #13 // Field binaryShiftStart:S │ │ │ │ - 35: istore_2 │ │ │ │ - 36: aload_0 │ │ │ │ - 37: getfield #15 // Field binaryShiftByteCount:S │ │ │ │ - 40: istore_3 │ │ │ │ - 41: iload_2 │ │ │ │ - 42: iload_3 │ │ │ │ - 43: iadd │ │ │ │ - 44: iconst_m1 │ │ │ │ - 45: iadd │ │ │ │ - 46: istore_2 │ │ │ │ - 47: aload_1 │ │ │ │ - 48: iload_2 │ │ │ │ - 49: invokevirtual #46 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; │ │ │ │ - 52: bipush 62 │ │ │ │ - 54: invokevirtual #51 // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder; │ │ │ │ - 57: invokevirtual #55 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ - 60: areturn │ │ │ │ + 32: getfield #15 // Field binaryShiftByteCount:S │ │ │ │ + 35: istore_3 │ │ │ │ + 36: iload_2 │ │ │ │ + 37: iload_3 │ │ │ │ + 38: iadd │ │ │ │ + 39: iconst_m1 │ │ │ │ + 40: iadd │ │ │ │ + 41: istore_2 │ │ │ │ + 42: aload_1 │ │ │ │ + 43: iload_2 │ │ │ │ + 44: invokevirtual #43 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; │ │ │ │ + 47: bipush 62 │ │ │ │ + 49: invokevirtual #51 // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder; │ │ │ │ + 52: invokevirtual #55 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ + 55: areturn │ │ │ │ } │ │ ├── com/google/zxing/aztec/encoder/SimpleToken.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -16,10 +16,10 @@ │ │ │ │ │ │ │ │ void appendTo(final BitArray bitArray, final byte[] array) { │ │ │ │ bitArray.appendBits((int)this.value, (int)this.bitCount); │ │ │ │ } │ │ │ │ │ │ │ │ public String toString() { │ │ │ │ final int n = 1; │ │ │ │ - return '<' + Integer.toBinaryString(n << this.bitCount | ((this.value & (n << this.bitCount) - 1) | n << this.bitCount)).substring(n) + '>'; │ │ │ │ + return "<" + Integer.toBinaryString(n << this.bitCount | ((this.value & (n << this.bitCount) - 1) | n << this.bitCount)).substring(n) + '>'; │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/client/result/AddressBookAUResultParser.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -119,15 +119,15 @@ │ │ │ │ stack=300, locals=10, args_size=4 │ │ │ │ 0: aconst_null │ │ │ │ 1: astore 4 │ │ │ │ 3: iconst_1 │ │ │ │ 4: istore 5 │ │ │ │ 6: iload 5 │ │ │ │ 8: iload_1 │ │ │ │ - 9: if_icmpgt 63 │ │ │ │ + 9: if_icmpgt 98 │ │ │ │ 12: new #11 // class java/lang/StringBuilder │ │ │ │ 15: astore 6 │ │ │ │ 17: aload 6 │ │ │ │ 19: invokespecial #12 // Method java/lang/StringBuilder."":()V │ │ │ │ 22: aload 6 │ │ │ │ 24: aload_0 │ │ │ │ 25: invokevirtual #16 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ @@ -142,51 +142,51 @@ │ │ │ │ 47: aload 6 │ │ │ │ 49: aload_2 │ │ │ │ 50: iload 7 │ │ │ │ 52: iload_3 │ │ │ │ 53: invokestatic #32 // Method matchSinglePrefixedField:(Ljava/lang/String;Ljava/lang/String;CZ)Ljava/lang/String; │ │ │ │ 56: astore 8 │ │ │ │ 58: aload 8 │ │ │ │ - 60: ifnonnull 77 │ │ │ │ + 60: ifnull 98 │ │ │ │ 63: aload 4 │ │ │ │ - 65: ifnonnull 112 │ │ │ │ - 68: iconst_0 │ │ │ │ - 69: istore 9 │ │ │ │ - 71: aconst_null │ │ │ │ - 72: astore 6 │ │ │ │ - 74: aload 6 │ │ │ │ - 76: areturn │ │ │ │ - 77: aload 4 │ │ │ │ - 79: ifnonnull 93 │ │ │ │ - 82: new #34 // class java/util/ArrayList │ │ │ │ - 85: astore 4 │ │ │ │ - 87: aload 4 │ │ │ │ - 89: iload_1 │ │ │ │ - 90: invokespecial #37 // Method java/util/ArrayList."":(I)V │ │ │ │ - 93: aload 4 │ │ │ │ - 95: aload 8 │ │ │ │ - 97: invokeinterface #43, 2 // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z │ │ │ │ - 102: pop │ │ │ │ - 103: iload 5 │ │ │ │ - 105: iconst_1 │ │ │ │ - 106: iadd │ │ │ │ - 107: istore 5 │ │ │ │ - 109: goto 6 │ │ │ │ + 65: ifnonnull 79 │ │ │ │ + 68: new #34 // class java/util/ArrayList │ │ │ │ + 71: astore 4 │ │ │ │ + 73: aload 4 │ │ │ │ + 75: iload_1 │ │ │ │ + 76: invokespecial #37 // Method java/util/ArrayList."":(I)V │ │ │ │ + 79: aload 4 │ │ │ │ + 81: aload 8 │ │ │ │ + 83: invokeinterface #43, 2 // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z │ │ │ │ + 88: pop │ │ │ │ + 89: iload 5 │ │ │ │ + 91: iconst_1 │ │ │ │ + 92: iadd │ │ │ │ + 93: istore 5 │ │ │ │ + 95: goto 6 │ │ │ │ + 98: aload 4 │ │ │ │ + 100: ifnonnull 112 │ │ │ │ + 103: iconst_0 │ │ │ │ + 104: istore 9 │ │ │ │ + 106: aconst_null │ │ │ │ + 107: astore 6 │ │ │ │ + 109: aload 6 │ │ │ │ + 111: areturn │ │ │ │ 112: aload 4 │ │ │ │ 114: invokeinterface #47, 1 // InterfaceMethod java/util/List.size:()I │ │ │ │ 119: istore 9 │ │ │ │ 121: iload 9 │ │ │ │ 123: anewarray #49 // class java/lang/String │ │ │ │ 126: astore 6 │ │ │ │ 128: aload 4 │ │ │ │ 130: aload 6 │ │ │ │ 132: invokeinterface #53, 2 // InterfaceMethod java/util/List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object; │ │ │ │ 137: checkcast #55 // class "[Ljava/lang/String;" │ │ │ │ 140: astore 6 │ │ │ │ - 142: goto 74 │ │ │ │ + 142: goto 109 │ │ │ │ │ │ │ │ public com.google.zxing.client.result.AddressBookParsedResult parse(com.google.zxing.Result); │ │ │ │ descriptor: (Lcom/google/zxing/Result;)Lcom/google/zxing/client/result/AddressBookParsedResult; │ │ │ │ flags: ACC_PUBLIC │ │ │ │ Code: │ │ │ │ stack=300, locals=15, args_size=2 │ │ │ │ 0: aload_1 │ │ ├── com/google/zxing/client/result/CalendarParsedResult.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -532,46 +532,46 @@ │ │ │ │ 15: aload_0 │ │ │ │ 16: areturn │ │ │ │ │ │ │ │ private static java.lang.String format(boolean, java.util.Date); │ │ │ │ descriptor: (ZLjava/util/Date;)Ljava/lang/String; │ │ │ │ flags: ACC_PRIVATE, ACC_STATIC │ │ │ │ Code: │ │ │ │ - stack=300, locals=5, args_size=2 │ │ │ │ + stack=300, locals=4, args_size=2 │ │ │ │ 0: iconst_2 │ │ │ │ 1: istore_2 │ │ │ │ 2: aload_1 │ │ │ │ 3: ifnonnull 12 │ │ │ │ 6: iconst_0 │ │ │ │ 7: istore_2 │ │ │ │ 8: aconst_null │ │ │ │ 9: astore_3 │ │ │ │ 10: aload_3 │ │ │ │ 11: areturn │ │ │ │ 12: iload_0 │ │ │ │ - 13: ifeq 32 │ │ │ │ + 13: ifeq 30 │ │ │ │ 16: iload_2 │ │ │ │ 17: invokestatic #154 // Method java/text/DateFormat.getDateInstance:(I)Ljava/text/DateFormat; │ │ │ │ - 20: astore 4 │ │ │ │ - 22: aload 4 │ │ │ │ - 24: aload_1 │ │ │ │ - 25: invokevirtual #158 // Method java/text/DateFormat.format:(Ljava/util/Date;)Ljava/lang/String; │ │ │ │ - 28: astore_3 │ │ │ │ - 29: goto 10 │ │ │ │ - 32: iload_2 │ │ │ │ - 33: iload_2 │ │ │ │ - 34: invokestatic #162 // Method java/text/DateFormat.getDateTimeInstance:(II)Ljava/text/DateFormat; │ │ │ │ - 37: astore 4 │ │ │ │ - 39: goto 22 │ │ │ │ + 20: astore_3 │ │ │ │ + 21: aload_3 │ │ │ │ + 22: aload_1 │ │ │ │ + 23: invokevirtual #158 // Method java/text/DateFormat.format:(Ljava/util/Date;)Ljava/lang/String; │ │ │ │ + 26: astore_3 │ │ │ │ + 27: goto 10 │ │ │ │ + 30: iload_2 │ │ │ │ + 31: iload_2 │ │ │ │ + 32: invokestatic #162 // Method java/text/DateFormat.getDateTimeInstance:(II)Ljava/text/DateFormat; │ │ │ │ + 35: astore_3 │ │ │ │ + 36: goto 21 │ │ │ │ │ │ │ │ private static java.util.Date parseDate(java.lang.String); │ │ │ │ descriptor: (Ljava/lang/String;)Ljava/util/Date; │ │ │ │ flags: ACC_PRIVATE, ACC_STATIC │ │ │ │ Code: │ │ │ │ - stack=300, locals=13, args_size=1 │ │ │ │ + stack=300, locals=15, args_size=1 │ │ │ │ 0: bipush 16 │ │ │ │ 2: istore_1 │ │ │ │ 3: bipush 15 │ │ │ │ 5: istore_2 │ │ │ │ 6: getstatic #52 // Field DATE_TIME:Ljava/util/regex/Pattern; │ │ │ │ 9: aload_0 │ │ │ │ 10: invokevirtual #168 // Method java/util/regex/Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; │ │ │ │ @@ -606,24 +606,24 @@ │ │ │ │ 65: aload 6 │ │ │ │ 67: areturn │ │ │ │ 68: aload_0 │ │ │ │ 69: invokevirtual #82 // Method java/lang/String.length:()I │ │ │ │ 72: istore 4 │ │ │ │ 74: iload 4 │ │ │ │ 76: iload_1 │ │ │ │ - 77: if_icmpne 202 │ │ │ │ + 77: if_icmpne 204 │ │ │ │ 80: aload_0 │ │ │ │ 81: iload_2 │ │ │ │ 82: invokevirtual #188 // Method java/lang/String.charAt:(I)C │ │ │ │ 85: istore 4 │ │ │ │ 87: bipush 90 │ │ │ │ 89: istore 5 │ │ │ │ 91: iload 4 │ │ │ │ 93: iload 5 │ │ │ │ - 95: if_icmpne 202 │ │ │ │ + 95: if_icmpne 204 │ │ │ │ 98: invokestatic #192 // Method buildDateTimeFormat:()Ljava/text/DateFormat; │ │ │ │ 101: astore_3 │ │ │ │ 102: aload_0 │ │ │ │ 103: iconst_0 │ │ │ │ 104: iload_2 │ │ │ │ 105: invokevirtual #196 // Method java/lang/String.substring:(II)Ljava/lang/String; │ │ │ │ 108: astore 7 │ │ │ │ @@ -637,52 +637,54 @@ │ │ │ │ 125: invokespecial #201 // Method java/util/GregorianCalendar."":()V │ │ │ │ 128: aload 6 │ │ │ │ 130: invokevirtual #117 // Method java/util/Date.getTime:()J │ │ │ │ 133: lstore 9 │ │ │ │ 135: aload 8 │ │ │ │ 137: iload_2 │ │ │ │ 138: invokevirtual #207 // Method java/util/Calendar.get:(I)I │ │ │ │ - 141: i2l │ │ │ │ - 142: lstore 11 │ │ │ │ - 144: lload 9 │ │ │ │ - 146: lload 11 │ │ │ │ - 148: ladd │ │ │ │ - 149: lstore 9 │ │ │ │ - 151: new #113 // class java/util/Date │ │ │ │ - 154: astore_3 │ │ │ │ - 155: aload_3 │ │ │ │ - 156: lload 9 │ │ │ │ - 158: invokespecial #120 // Method java/util/Date."":(J)V │ │ │ │ - 161: aload 8 │ │ │ │ - 163: aload_3 │ │ │ │ - 164: invokevirtual #211 // Method java/util/Calendar.setTime:(Ljava/util/Date;)V │ │ │ │ - 167: aload 8 │ │ │ │ - 169: iload_1 │ │ │ │ - 170: invokevirtual #207 // Method java/util/Calendar.get:(I)I │ │ │ │ - 173: istore 4 │ │ │ │ - 175: iload 4 │ │ │ │ - 177: i2l │ │ │ │ - 178: lstore 11 │ │ │ │ - 180: lload 9 │ │ │ │ - 182: lload 11 │ │ │ │ - 184: ladd │ │ │ │ - 185: lstore 9 │ │ │ │ - 187: new #113 // class java/util/Date │ │ │ │ - 190: astore 6 │ │ │ │ - 192: aload 6 │ │ │ │ - 194: lload 9 │ │ │ │ - 196: invokespecial #120 // Method java/util/Date."":(J)V │ │ │ │ - 199: goto 65 │ │ │ │ - 202: invokestatic #192 // Method buildDateTimeFormat:()Ljava/text/DateFormat; │ │ │ │ - 205: astore_3 │ │ │ │ - 206: aload_3 │ │ │ │ - 207: aload_0 │ │ │ │ - 208: invokevirtual #184 // Method java/text/DateFormat.parse:(Ljava/lang/String;)Ljava/util/Date; │ │ │ │ - 211: astore 6 │ │ │ │ - 213: goto 65 │ │ │ │ + 141: istore_2 │ │ │ │ + 142: iload_2 │ │ │ │ + 143: i2l │ │ │ │ + 144: lstore 11 │ │ │ │ + 146: lload 9 │ │ │ │ + 148: lload 11 │ │ │ │ + 150: ladd │ │ │ │ + 151: lstore 13 │ │ │ │ + 153: new #113 // class java/util/Date │ │ │ │ + 156: astore_3 │ │ │ │ + 157: aload_3 │ │ │ │ + 158: lload 13 │ │ │ │ + 160: invokespecial #120 // Method java/util/Date."":(J)V │ │ │ │ + 163: aload 8 │ │ │ │ + 165: aload_3 │ │ │ │ + 166: invokevirtual #211 // Method java/util/Calendar.setTime:(Ljava/util/Date;)V │ │ │ │ + 169: aload 8 │ │ │ │ + 171: iload_1 │ │ │ │ + 172: invokevirtual #207 // Method java/util/Calendar.get:(I)I │ │ │ │ + 175: istore 4 │ │ │ │ + 177: iload 4 │ │ │ │ + 179: i2l │ │ │ │ + 180: lstore 9 │ │ │ │ + 182: lload 13 │ │ │ │ + 184: lload 9 │ │ │ │ + 186: ladd │ │ │ │ + 187: lstore 13 │ │ │ │ + 189: new #113 // class java/util/Date │ │ │ │ + 192: astore 6 │ │ │ │ + 194: aload 6 │ │ │ │ + 196: lload 13 │ │ │ │ + 198: invokespecial #120 // Method java/util/Date."":(J)V │ │ │ │ + 201: goto 65 │ │ │ │ + 204: invokestatic #192 // Method buildDateTimeFormat:()Ljava/text/DateFormat; │ │ │ │ + 207: astore_3 │ │ │ │ + 208: aload_3 │ │ │ │ + 209: aload_0 │ │ │ │ + 210: invokevirtual #184 // Method java/text/DateFormat.parse:(Ljava/lang/String;)Ljava/util/Date; │ │ │ │ + 213: astore 6 │ │ │ │ + 215: goto 65 │ │ │ │ │ │ │ │ private static long parseDurationMS(java.lang.CharSequence); │ │ │ │ descriptor: (Ljava/lang/CharSequence;)J │ │ │ │ flags: ACC_PRIVATE, ACC_STATIC │ │ │ │ Code: │ │ │ │ stack=300, locals=12, args_size=1 │ │ │ │ 0: iconst_m1 │ │ ├── com/google/zxing/client/result/EmailAddressResultParser.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -10,54 +10,72 @@ │ │ │ │ private static final Pattern COMMA; │ │ │ │ │ │ │ │ static { │ │ │ │ COMMA = Pattern.compile(","); │ │ │ │ } │ │ │ │ │ │ │ │ public EmailAddressParsedResult parse(final Result result) { │ │ │ │ + Object o = null; │ │ │ │ final String massagedText = getMassagedText(result); │ │ │ │ - EmailAddressParsedResult emailAddressParsedResult; │ │ │ │ - if (massagedText.startsWith("mailto:") || massagedText.startsWith("MAILTO:")) { │ │ │ │ + Label_0299: { │ │ │ │ + if (!massagedText.startsWith("mailto:") && !massagedText.startsWith("MAILTO:")) { │ │ │ │ + break Label_0299; │ │ │ │ + } │ │ │ │ String s = massagedText.substring(7); │ │ │ │ final int index = s.indexOf(63); │ │ │ │ if (index >= 0) { │ │ │ │ s = s.substring(0, index); │ │ │ │ } │ │ │ │ - final String urlDecode = urlDecode(s); │ │ │ │ - String[] array = null; │ │ │ │ - if (!urlDecode.isEmpty()) { │ │ │ │ - array = EmailAddressResultParser.COMMA.split(urlDecode); │ │ │ │ - } │ │ │ │ - final Map nameValuePairs = parseNameValuePairs(massagedText); │ │ │ │ - String[] split = null; │ │ │ │ - String[] split2 = null; │ │ │ │ - String s2 = null; │ │ │ │ - String s3 = null; │ │ │ │ - if (nameValuePairs != null) { │ │ │ │ - if (array == null) { │ │ │ │ - final String s4 = (String)nameValuePairs.get("to"); │ │ │ │ - if (s4 != null) { │ │ │ │ - array = EmailAddressResultParser.COMMA.split(s4); │ │ │ │ + while (true) { │ │ │ │ + try { │ │ │ │ + final String urlDecode = urlDecode(s); │ │ │ │ + String[] array = null; │ │ │ │ + if (!urlDecode.isEmpty()) { │ │ │ │ + o = EmailAddressResultParser.COMMA; │ │ │ │ + array = ((Pattern)o).split(urlDecode); │ │ │ │ } │ │ │ │ + final Map nameValuePairs = parseNameValuePairs(massagedText); │ │ │ │ + String[] split = null; │ │ │ │ + String[] split2 = null; │ │ │ │ + String s2 = null; │ │ │ │ + String s3 = null; │ │ │ │ + if (nameValuePairs != null) { │ │ │ │ + if (array == null) { │ │ │ │ + o = "to"; │ │ │ │ + final String s4 = (String)nameValuePairs.get(o); │ │ │ │ + if (s4 != null) { │ │ │ │ + o = EmailAddressResultParser.COMMA; │ │ │ │ + array = ((Pattern)o).split(s4); │ │ │ │ + } │ │ │ │ + } │ │ │ │ + o = "cc"; │ │ │ │ + final String s5 = (String)nameValuePairs.get(o); │ │ │ │ + if (s5 != null) { │ │ │ │ + o = EmailAddressResultParser.COMMA; │ │ │ │ + split = ((Pattern)o).split(s5); │ │ │ │ + } │ │ │ │ + o = "bcc"; │ │ │ │ + final String s6 = (String)nameValuePairs.get(o); │ │ │ │ + if (s6 != null) { │ │ │ │ + o = EmailAddressResultParser.COMMA; │ │ │ │ + split2 = ((Pattern)o).split(s6); │ │ │ │ + } │ │ │ │ + s2 = nameValuePairs.get("subject"); │ │ │ │ + o = "body"; │ │ │ │ + s3 = nameValuePairs.get(o); │ │ │ │ + } │ │ │ │ + o = new EmailAddressParsedResult(array, split, split2, s2, s3); │ │ │ │ + Label_0297: { │ │ │ │ + return (EmailAddressParsedResult)o; │ │ │ │ + } │ │ │ │ + // iftrue(Label_0297:, !EmailDoCoMoResultParser.isBasicallyValidEmailAddress(massagedText)) │ │ │ │ + o = new EmailAddressParsedResult(massagedText); │ │ │ │ + return (EmailAddressParsedResult)o; │ │ │ │ } │ │ │ │ - final String s5 = (String)nameValuePairs.get("cc"); │ │ │ │ - if (s5 != null) { │ │ │ │ - split = EmailAddressResultParser.COMMA.split(s5); │ │ │ │ - } │ │ │ │ - final String s6 = (String)nameValuePairs.get("bcc"); │ │ │ │ - if (s6 != null) { │ │ │ │ - split2 = EmailAddressResultParser.COMMA.split(s6); │ │ │ │ + catch (IllegalArgumentException ex) { │ │ │ │ + return (EmailAddressParsedResult)o; │ │ │ │ } │ │ │ │ - s2 = nameValuePairs.get("subject"); │ │ │ │ - s3 = nameValuePairs.get("body"); │ │ │ │ + return (EmailAddressParsedResult)o; │ │ │ │ } │ │ │ │ - emailAddressParsedResult = new EmailAddressParsedResult(array, split, split2, s2, s3); │ │ │ │ - } │ │ │ │ - else if (!EmailDoCoMoResultParser.isBasicallyValidEmailAddress(massagedText)) { │ │ │ │ - emailAddressParsedResult = null; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - emailAddressParsedResult = new EmailAddressParsedResult(massagedText); │ │ │ │ } │ │ │ │ - return emailAddressParsedResult; │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/client/result/ExpandedProductParsedResult.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -136,10 +136,10 @@ │ │ │ │ } │ │ │ │ │ │ │ │ public String getWeightType() { │ │ │ │ return this.weightType; │ │ │ │ } │ │ │ │ │ │ │ │ public int hashCode() { │ │ │ │ - return 0x0 ^ hashNotNull(this.productID) ^ hashNotNull(this.sscc) ^ hashNotNull(this.lotNumber) ^ hashNotNull(this.productionDate) ^ hashNotNull(this.bestBeforeDate) ^ hashNotNull(this.expirationDate) ^ hashNotNull(this.weight) ^ hashNotNull(this.weightType) ^ hashNotNull(this.weightIncrement) ^ hashNotNull(this.price) ^ hashNotNull(this.priceIncrement) ^ hashNotNull(this.priceCurrency) ^ hashNotNull(this.uncommonAIs); │ │ │ │ + return hashNotNull(this.productID) ^ 0x0 ^ hashNotNull(this.sscc) ^ hashNotNull(this.lotNumber) ^ hashNotNull(this.productionDate) ^ hashNotNull(this.bestBeforeDate) ^ hashNotNull(this.expirationDate) ^ hashNotNull(this.weight) ^ hashNotNull(this.weightType) ^ hashNotNull(this.weightIncrement) ^ hashNotNull(this.price) ^ hashNotNull(this.priceIncrement) ^ hashNotNull(this.priceCurrency) ^ hashNotNull(this.uncommonAIs); │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/client/result/ExpandedProductResultParser.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -232,67 +232,67 @@ │ │ │ │ 13: iload 4 │ │ │ │ 15: if_icmpeq 20 │ │ │ │ 18: aload_2 │ │ │ │ 19: areturn │ │ │ │ 20: iload_0 │ │ │ │ 21: iconst_1 │ │ │ │ 22: iadd │ │ │ │ - 23: istore 4 │ │ │ │ - 25: aload_1 │ │ │ │ - 26: iload 4 │ │ │ │ - 28: invokevirtual #19 // Method java/lang/String.substring:(I)Ljava/lang/String; │ │ │ │ - 31: astore 5 │ │ │ │ - 33: new #21 // class java/lang/StringBuilder │ │ │ │ - 36: astore 6 │ │ │ │ - 38: aload 6 │ │ │ │ - 40: invokespecial #22 // Method java/lang/StringBuilder."":()V │ │ │ │ - 43: iconst_0 │ │ │ │ - 44: istore 7 │ │ │ │ - 46: aload 5 │ │ │ │ - 48: invokeinterface #28, 1 // InterfaceMethod java/lang/CharSequence.length:()I │ │ │ │ - 53: istore 4 │ │ │ │ - 55: iload 7 │ │ │ │ - 57: iload 4 │ │ │ │ - 59: if_icmpge 132 │ │ │ │ - 62: aload 5 │ │ │ │ - 64: iload 7 │ │ │ │ - 66: invokeinterface #29, 2 // InterfaceMethod java/lang/CharSequence.charAt:(I)C │ │ │ │ - 71: istore 8 │ │ │ │ - 73: bipush 41 │ │ │ │ - 75: istore 4 │ │ │ │ - 77: iload 8 │ │ │ │ - 79: iload 4 │ │ │ │ - 81: if_icmpne 93 │ │ │ │ - 84: aload 6 │ │ │ │ - 86: invokevirtual #34 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ - 89: astore_2 │ │ │ │ - 90: goto 18 │ │ │ │ - 93: bipush 48 │ │ │ │ - 95: istore 4 │ │ │ │ - 97: iload 8 │ │ │ │ - 99: iload 4 │ │ │ │ - 101: if_icmplt 18 │ │ │ │ - 104: bipush 57 │ │ │ │ - 106: istore 4 │ │ │ │ - 108: iload 8 │ │ │ │ - 110: iload 4 │ │ │ │ - 112: if_icmpgt 18 │ │ │ │ - 115: aload 6 │ │ │ │ - 117: iload 8 │ │ │ │ - 119: invokevirtual #40 // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder; │ │ │ │ - 122: pop │ │ │ │ - 123: iload 7 │ │ │ │ - 125: iconst_1 │ │ │ │ - 126: iadd │ │ │ │ - 127: istore 7 │ │ │ │ - 129: goto 46 │ │ │ │ - 132: aload 6 │ │ │ │ - 134: invokevirtual #34 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ - 137: astore_2 │ │ │ │ - 138: goto 18 │ │ │ │ + 23: istore_3 │ │ │ │ + 24: aload_1 │ │ │ │ + 25: iload_3 │ │ │ │ + 26: invokevirtual #19 // Method java/lang/String.substring:(I)Ljava/lang/String; │ │ │ │ + 29: astore 5 │ │ │ │ + 31: new #21 // class java/lang/StringBuilder │ │ │ │ + 34: astore 6 │ │ │ │ + 36: aload 6 │ │ │ │ + 38: invokespecial #22 // Method java/lang/StringBuilder."":()V │ │ │ │ + 41: iconst_0 │ │ │ │ + 42: istore 7 │ │ │ │ + 44: aload 5 │ │ │ │ + 46: invokeinterface #28, 1 // InterfaceMethod java/lang/CharSequence.length:()I │ │ │ │ + 51: istore_3 │ │ │ │ + 52: iload 7 │ │ │ │ + 54: iload_3 │ │ │ │ + 55: if_icmpge 122 │ │ │ │ + 58: aload 5 │ │ │ │ + 60: iload 7 │ │ │ │ + 62: invokeinterface #29, 2 // InterfaceMethod java/lang/CharSequence.charAt:(I)C │ │ │ │ + 67: istore 8 │ │ │ │ + 69: bipush 41 │ │ │ │ + 71: istore_3 │ │ │ │ + 72: iload 8 │ │ │ │ + 74: iload_3 │ │ │ │ + 75: if_icmpne 87 │ │ │ │ + 78: aload 6 │ │ │ │ + 80: invokevirtual #34 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ + 83: astore_2 │ │ │ │ + 84: goto 18 │ │ │ │ + 87: bipush 48 │ │ │ │ + 89: istore_3 │ │ │ │ + 90: iload 8 │ │ │ │ + 92: iload_3 │ │ │ │ + 93: if_icmplt 18 │ │ │ │ + 96: bipush 57 │ │ │ │ + 98: istore_3 │ │ │ │ + 99: iload 8 │ │ │ │ + 101: iload_3 │ │ │ │ + 102: if_icmpgt 18 │ │ │ │ + 105: aload 6 │ │ │ │ + 107: iload 8 │ │ │ │ + 109: invokevirtual #40 // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder; │ │ │ │ + 112: pop │ │ │ │ + 113: iload 7 │ │ │ │ + 115: iconst_1 │ │ │ │ + 116: iadd │ │ │ │ + 117: istore 7 │ │ │ │ + 119: goto 44 │ │ │ │ + 122: aload 6 │ │ │ │ + 124: invokevirtual #34 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ + 127: astore_2 │ │ │ │ + 128: goto 18 │ │ │ │ │ │ │ │ private static java.lang.String findValue(int, java.lang.String); │ │ │ │ descriptor: (ILjava/lang/String;)Ljava/lang/String; │ │ │ │ flags: ACC_PRIVATE, ACC_STATIC │ │ │ │ Code: │ │ │ │ stack=300, locals=9, args_size=2 │ │ │ │ 0: bipush 40 │ │ │ │ @@ -344,28 +344,28 @@ │ │ │ │ 90: invokevirtual #34 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ 93: areturn │ │ │ │ │ │ │ │ public com.google.zxing.client.result.ExpandedProductParsedResult parse(com.google.zxing.Result); │ │ │ │ descriptor: (Lcom/google/zxing/Result;)Lcom/google/zxing/client/result/ExpandedProductParsedResult; │ │ │ │ flags: ACC_PUBLIC │ │ │ │ Code: │ │ │ │ - stack=300, locals=25, args_size=2 │ │ │ │ + stack=300, locals=24, args_size=2 │ │ │ │ 0: aload_1 │ │ │ │ 1: invokevirtual #51 // Method com/google/zxing/Result.getBarcodeFormat:()Lcom/google/zxing/BarcodeFormat; │ │ │ │ 4: astore_2 │ │ │ │ 5: getstatic #57 // Field com/google/zxing/BarcodeFormat.RSS_EXPANDED:Lcom/google/zxing/BarcodeFormat; │ │ │ │ 8: astore_3 │ │ │ │ 9: aload_2 │ │ │ │ 10: aload_3 │ │ │ │ 11: if_acmpeq 21 │ │ │ │ 14: iconst_0 │ │ │ │ 15: istore 4 │ │ │ │ 17: aconst_null │ │ │ │ - 18: astore_3 │ │ │ │ - 19: aload_3 │ │ │ │ + 18: astore_2 │ │ │ │ + 19: aload_2 │ │ │ │ 20: areturn │ │ │ │ 21: aload_1 │ │ │ │ 22: invokestatic #61 // Method getMassagedText:(Lcom/google/zxing/Result;)Ljava/lang/String; │ │ │ │ 25: astore 5 │ │ │ │ 27: aconst_null │ │ │ │ 28: astore 6 │ │ │ │ 30: aconst_null │ │ │ │ @@ -399,25 +399,25 @@ │ │ │ │ 76: iconst_0 │ │ │ │ 77: istore 20 │ │ │ │ 79: aload 5 │ │ │ │ 81: invokevirtual #41 // Method java/lang/String.length:()I │ │ │ │ 84: istore 4 │ │ │ │ 86: iload 20 │ │ │ │ 88: iload 4 │ │ │ │ - 90: if_icmpge 1675 │ │ │ │ + 90: if_icmpge 1605 │ │ │ │ 93: iload 20 │ │ │ │ 95: aload 5 │ │ │ │ 97: invokestatic #45 // Method findAIvalue:(ILjava/lang/String;)Ljava/lang/String; │ │ │ │ 100: astore 21 │ │ │ │ 102: aload 21 │ │ │ │ 104: ifnonnull 115 │ │ │ │ 107: iconst_0 │ │ │ │ 108: istore 4 │ │ │ │ 110: aconst_null │ │ │ │ - 111: astore_3 │ │ │ │ + 111: astore_2 │ │ │ │ 112: goto 19 │ │ │ │ 115: aload 21 │ │ │ │ 117: invokevirtual #41 // Method java/lang/String.length:()I │ │ │ │ 120: iconst_2 │ │ │ │ 121: iadd │ │ │ │ 122: istore 4 │ │ │ │ 124: iload 20 │ │ │ │ @@ -439,587 +439,587 @@ │ │ │ │ 155: istore 4 │ │ │ │ 157: aload 21 │ │ │ │ 159: invokevirtual #70 // Method java/lang/String.hashCode:()I │ │ │ │ 162: istore 23 │ │ │ │ 164: iload 23 │ │ │ │ 166: lookupswitch { // 35 │ │ │ │ 1536: 627 │ │ │ │ - 1537: 653 │ │ │ │ - 1567: 677 │ │ │ │ - 1568: 701 │ │ │ │ - 1570: 725 │ │ │ │ - 1572: 749 │ │ │ │ - 1574: 773 │ │ │ │ - 1567966: 798 │ │ │ │ - 1567967: 823 │ │ │ │ - 1567968: 848 │ │ │ │ - 1567969: 873 │ │ │ │ - 1567970: 898 │ │ │ │ - 1567971: 923 │ │ │ │ - 1567972: 948 │ │ │ │ - 1567973: 973 │ │ │ │ - 1567974: 998 │ │ │ │ - 1567975: 1023 │ │ │ │ - 1568927: 1048 │ │ │ │ - 1568928: 1073 │ │ │ │ - 1568929: 1098 │ │ │ │ - 1568930: 1123 │ │ │ │ - 1568931: 1148 │ │ │ │ - 1568932: 1173 │ │ │ │ - 1568933: 1198 │ │ │ │ - 1568934: 1223 │ │ │ │ - 1568935: 1248 │ │ │ │ - 1568936: 1273 │ │ │ │ - 1575716: 1298 │ │ │ │ - 1575717: 1323 │ │ │ │ - 1575718: 1348 │ │ │ │ - 1575719: 1373 │ │ │ │ - 1575747: 1398 │ │ │ │ - 1575748: 1423 │ │ │ │ - 1575749: 1448 │ │ │ │ - 1575750: 1473 │ │ │ │ + 1537: 651 │ │ │ │ + 1567: 673 │ │ │ │ + 1568: 695 │ │ │ │ + 1570: 717 │ │ │ │ + 1572: 739 │ │ │ │ + 1574: 761 │ │ │ │ + 1567966: 784 │ │ │ │ + 1567967: 807 │ │ │ │ + 1567968: 830 │ │ │ │ + 1567969: 853 │ │ │ │ + 1567970: 876 │ │ │ │ + 1567971: 899 │ │ │ │ + 1567972: 922 │ │ │ │ + 1567973: 945 │ │ │ │ + 1567974: 968 │ │ │ │ + 1567975: 991 │ │ │ │ + 1568927: 1014 │ │ │ │ + 1568928: 1037 │ │ │ │ + 1568929: 1060 │ │ │ │ + 1568930: 1083 │ │ │ │ + 1568931: 1106 │ │ │ │ + 1568932: 1129 │ │ │ │ + 1568933: 1152 │ │ │ │ + 1568934: 1175 │ │ │ │ + 1568935: 1198 │ │ │ │ + 1568936: 1221 │ │ │ │ + 1575716: 1244 │ │ │ │ + 1575717: 1267 │ │ │ │ + 1575718: 1290 │ │ │ │ + 1575719: 1313 │ │ │ │ + 1575747: 1336 │ │ │ │ + 1575748: 1359 │ │ │ │ + 1575749: 1382 │ │ │ │ + 1575750: 1405 │ │ │ │ default: 456 │ │ │ │ } │ │ │ │ 456: iload 4 │ │ │ │ 458: tableswitch { // 0 to 34 │ │ │ │ - 0: 1498 │ │ │ │ - 1: 1505 │ │ │ │ - 2: 1512 │ │ │ │ - 3: 1519 │ │ │ │ - 4: 1526 │ │ │ │ - 5: 1533 │ │ │ │ - 6: 1540 │ │ │ │ - 7: 1547 │ │ │ │ - 8: 1547 │ │ │ │ - 9: 1547 │ │ │ │ - 10: 1547 │ │ │ │ - 11: 1547 │ │ │ │ - 12: 1547 │ │ │ │ - 13: 1547 │ │ │ │ - 14: 1547 │ │ │ │ - 15: 1547 │ │ │ │ - 16: 1547 │ │ │ │ - 17: 1570 │ │ │ │ - 18: 1570 │ │ │ │ - 19: 1570 │ │ │ │ - 20: 1570 │ │ │ │ - 21: 1570 │ │ │ │ - 22: 1570 │ │ │ │ - 23: 1570 │ │ │ │ - 24: 1570 │ │ │ │ - 25: 1570 │ │ │ │ - 26: 1570 │ │ │ │ - 27: 1593 │ │ │ │ - 28: 1593 │ │ │ │ - 29: 1593 │ │ │ │ - 30: 1593 │ │ │ │ - 31: 1612 │ │ │ │ - 32: 1612 │ │ │ │ - 33: 1612 │ │ │ │ - 34: 1612 │ │ │ │ + 0: 1428 │ │ │ │ + 1: 1435 │ │ │ │ + 2: 1442 │ │ │ │ + 3: 1449 │ │ │ │ + 4: 1456 │ │ │ │ + 5: 1463 │ │ │ │ + 6: 1470 │ │ │ │ + 7: 1477 │ │ │ │ + 8: 1477 │ │ │ │ + 9: 1477 │ │ │ │ + 10: 1477 │ │ │ │ + 11: 1477 │ │ │ │ + 12: 1477 │ │ │ │ + 13: 1477 │ │ │ │ + 14: 1477 │ │ │ │ + 15: 1477 │ │ │ │ + 16: 1477 │ │ │ │ + 17: 1500 │ │ │ │ + 18: 1500 │ │ │ │ + 19: 1500 │ │ │ │ + 20: 1500 │ │ │ │ + 21: 1500 │ │ │ │ + 22: 1500 │ │ │ │ + 23: 1500 │ │ │ │ + 24: 1500 │ │ │ │ + 25: 1500 │ │ │ │ + 26: 1500 │ │ │ │ + 27: 1523 │ │ │ │ + 28: 1523 │ │ │ │ + 29: 1523 │ │ │ │ + 30: 1523 │ │ │ │ + 31: 1542 │ │ │ │ + 32: 1542 │ │ │ │ + 33: 1542 │ │ │ │ + 34: 1542 │ │ │ │ default: 612 │ │ │ │ } │ │ │ │ 612: aload 19 │ │ │ │ 614: aload 21 │ │ │ │ 616: aload 22 │ │ │ │ 618: invokeinterface #76, 3 // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ │ │ 623: pop │ │ │ │ 624: goto 79 │ │ │ │ 627: ldc #78 // String 00 │ │ │ │ - 629: astore 24 │ │ │ │ - 631: aload 21 │ │ │ │ - 633: aload 24 │ │ │ │ - 635: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 638: istore 23 │ │ │ │ - 640: iload 23 │ │ │ │ - 642: ifeq 456 │ │ │ │ - 645: iconst_0 │ │ │ │ - 646: istore 4 │ │ │ │ - 648: aconst_null │ │ │ │ - 649: astore_3 │ │ │ │ - 650: goto 456 │ │ │ │ - 653: ldc #84 // String 01 │ │ │ │ - 655: astore 24 │ │ │ │ - 657: aload 21 │ │ │ │ - 659: aload 24 │ │ │ │ - 661: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 664: istore 23 │ │ │ │ - 666: iload 23 │ │ │ │ - 668: ifeq 456 │ │ │ │ - 671: iconst_1 │ │ │ │ - 672: istore 4 │ │ │ │ - 674: goto 456 │ │ │ │ - 677: ldc #87 // String 10 │ │ │ │ - 679: astore 24 │ │ │ │ - 681: aload 21 │ │ │ │ - 683: aload 24 │ │ │ │ - 685: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 688: istore 23 │ │ │ │ - 690: iload 23 │ │ │ │ - 692: ifeq 456 │ │ │ │ - 695: iconst_2 │ │ │ │ - 696: istore 4 │ │ │ │ - 698: goto 456 │ │ │ │ - 701: ldc #90 // String 11 │ │ │ │ - 703: astore 24 │ │ │ │ - 705: aload 21 │ │ │ │ - 707: aload 24 │ │ │ │ - 709: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 712: istore 23 │ │ │ │ - 714: iload 23 │ │ │ │ - 716: ifeq 456 │ │ │ │ - 719: iconst_3 │ │ │ │ - 720: istore 4 │ │ │ │ - 722: goto 456 │ │ │ │ - 725: ldc #93 // String 13 │ │ │ │ - 727: astore 24 │ │ │ │ - 729: aload 21 │ │ │ │ - 731: aload 24 │ │ │ │ - 733: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 736: istore 23 │ │ │ │ - 738: iload 23 │ │ │ │ - 740: ifeq 456 │ │ │ │ - 743: iconst_4 │ │ │ │ - 744: istore 4 │ │ │ │ - 746: goto 456 │ │ │ │ - 749: ldc #96 // String 15 │ │ │ │ - 751: astore 24 │ │ │ │ - 753: aload 21 │ │ │ │ - 755: aload 24 │ │ │ │ - 757: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 760: istore 23 │ │ │ │ - 762: iload 23 │ │ │ │ - 764: ifeq 456 │ │ │ │ - 767: iconst_5 │ │ │ │ - 768: istore 4 │ │ │ │ - 770: goto 456 │ │ │ │ - 773: ldc #99 // String 17 │ │ │ │ - 775: astore 24 │ │ │ │ - 777: aload 21 │ │ │ │ - 779: aload 24 │ │ │ │ - 781: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 784: istore 23 │ │ │ │ - 786: iload 23 │ │ │ │ - 788: ifeq 456 │ │ │ │ - 791: bipush 6 │ │ │ │ - 793: istore 4 │ │ │ │ - 795: goto 456 │ │ │ │ - 798: ldc #102 // String 3100 │ │ │ │ - 800: astore 24 │ │ │ │ - 802: aload 21 │ │ │ │ - 804: aload 24 │ │ │ │ - 806: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 809: istore 23 │ │ │ │ - 811: iload 23 │ │ │ │ - 813: ifeq 456 │ │ │ │ - 816: bipush 7 │ │ │ │ - 818: istore 4 │ │ │ │ - 820: goto 456 │ │ │ │ - 823: ldc #105 // String 3101 │ │ │ │ - 825: astore 24 │ │ │ │ - 827: aload 21 │ │ │ │ - 829: aload 24 │ │ │ │ - 831: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 834: istore 23 │ │ │ │ - 836: iload 23 │ │ │ │ - 838: ifeq 456 │ │ │ │ - 841: bipush 8 │ │ │ │ - 843: istore 4 │ │ │ │ - 845: goto 456 │ │ │ │ - 848: ldc #108 // String 3102 │ │ │ │ - 850: astore 24 │ │ │ │ - 852: aload 21 │ │ │ │ - 854: aload 24 │ │ │ │ - 856: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 859: istore 23 │ │ │ │ - 861: iload 23 │ │ │ │ - 863: ifeq 456 │ │ │ │ - 866: bipush 9 │ │ │ │ - 868: istore 4 │ │ │ │ - 870: goto 456 │ │ │ │ - 873: ldc #111 // String 3103 │ │ │ │ - 875: astore 24 │ │ │ │ - 877: aload 21 │ │ │ │ - 879: aload 24 │ │ │ │ - 881: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 884: istore 23 │ │ │ │ - 886: iload 23 │ │ │ │ - 888: ifeq 456 │ │ │ │ - 891: bipush 10 │ │ │ │ - 893: istore 4 │ │ │ │ - 895: goto 456 │ │ │ │ - 898: ldc #114 // String 3104 │ │ │ │ - 900: astore 24 │ │ │ │ + 629: astore_3 │ │ │ │ + 630: aload 21 │ │ │ │ + 632: aload_3 │ │ │ │ + 633: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 636: istore 23 │ │ │ │ + 638: iload 23 │ │ │ │ + 640: ifeq 456 │ │ │ │ + 643: iconst_0 │ │ │ │ + 644: istore 4 │ │ │ │ + 646: aconst_null │ │ │ │ + 647: astore_2 │ │ │ │ + 648: goto 456 │ │ │ │ + 651: ldc #84 // String 01 │ │ │ │ + 653: astore_3 │ │ │ │ + 654: aload 21 │ │ │ │ + 656: aload_3 │ │ │ │ + 657: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 660: istore 23 │ │ │ │ + 662: iload 23 │ │ │ │ + 664: ifeq 456 │ │ │ │ + 667: iconst_1 │ │ │ │ + 668: istore 4 │ │ │ │ + 670: goto 456 │ │ │ │ + 673: ldc #87 // String 10 │ │ │ │ + 675: astore_3 │ │ │ │ + 676: aload 21 │ │ │ │ + 678: aload_3 │ │ │ │ + 679: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 682: istore 23 │ │ │ │ + 684: iload 23 │ │ │ │ + 686: ifeq 456 │ │ │ │ + 689: iconst_2 │ │ │ │ + 690: istore 4 │ │ │ │ + 692: goto 456 │ │ │ │ + 695: ldc #90 // String 11 │ │ │ │ + 697: astore_3 │ │ │ │ + 698: aload 21 │ │ │ │ + 700: aload_3 │ │ │ │ + 701: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 704: istore 23 │ │ │ │ + 706: iload 23 │ │ │ │ + 708: ifeq 456 │ │ │ │ + 711: iconst_3 │ │ │ │ + 712: istore 4 │ │ │ │ + 714: goto 456 │ │ │ │ + 717: ldc #93 // String 13 │ │ │ │ + 719: astore_3 │ │ │ │ + 720: aload 21 │ │ │ │ + 722: aload_3 │ │ │ │ + 723: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 726: istore 23 │ │ │ │ + 728: iload 23 │ │ │ │ + 730: ifeq 456 │ │ │ │ + 733: iconst_4 │ │ │ │ + 734: istore 4 │ │ │ │ + 736: goto 456 │ │ │ │ + 739: ldc #96 // String 15 │ │ │ │ + 741: astore_3 │ │ │ │ + 742: aload 21 │ │ │ │ + 744: aload_3 │ │ │ │ + 745: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 748: istore 23 │ │ │ │ + 750: iload 23 │ │ │ │ + 752: ifeq 456 │ │ │ │ + 755: iconst_5 │ │ │ │ + 756: istore 4 │ │ │ │ + 758: goto 456 │ │ │ │ + 761: ldc #99 // String 17 │ │ │ │ + 763: astore_3 │ │ │ │ + 764: aload 21 │ │ │ │ + 766: aload_3 │ │ │ │ + 767: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 770: istore 23 │ │ │ │ + 772: iload 23 │ │ │ │ + 774: ifeq 456 │ │ │ │ + 777: bipush 6 │ │ │ │ + 779: istore 4 │ │ │ │ + 781: goto 456 │ │ │ │ + 784: ldc #102 // String 3100 │ │ │ │ + 786: astore_3 │ │ │ │ + 787: aload 21 │ │ │ │ + 789: aload_3 │ │ │ │ + 790: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 793: istore 23 │ │ │ │ + 795: iload 23 │ │ │ │ + 797: ifeq 456 │ │ │ │ + 800: bipush 7 │ │ │ │ + 802: istore 4 │ │ │ │ + 804: goto 456 │ │ │ │ + 807: ldc #105 // String 3101 │ │ │ │ + 809: astore_3 │ │ │ │ + 810: aload 21 │ │ │ │ + 812: aload_3 │ │ │ │ + 813: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 816: istore 23 │ │ │ │ + 818: iload 23 │ │ │ │ + 820: ifeq 456 │ │ │ │ + 823: bipush 8 │ │ │ │ + 825: istore 4 │ │ │ │ + 827: goto 456 │ │ │ │ + 830: ldc #108 // String 3102 │ │ │ │ + 832: astore_3 │ │ │ │ + 833: aload 21 │ │ │ │ + 835: aload_3 │ │ │ │ + 836: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 839: istore 23 │ │ │ │ + 841: iload 23 │ │ │ │ + 843: ifeq 456 │ │ │ │ + 846: bipush 9 │ │ │ │ + 848: istore 4 │ │ │ │ + 850: goto 456 │ │ │ │ + 853: ldc #111 // String 3103 │ │ │ │ + 855: astore_3 │ │ │ │ + 856: aload 21 │ │ │ │ + 858: aload_3 │ │ │ │ + 859: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 862: istore 23 │ │ │ │ + 864: iload 23 │ │ │ │ + 866: ifeq 456 │ │ │ │ + 869: bipush 10 │ │ │ │ + 871: istore 4 │ │ │ │ + 873: goto 456 │ │ │ │ + 876: ldc #114 // String 3104 │ │ │ │ + 878: astore_3 │ │ │ │ + 879: aload 21 │ │ │ │ + 881: aload_3 │ │ │ │ + 882: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 885: istore 23 │ │ │ │ + 887: iload 23 │ │ │ │ + 889: ifeq 456 │ │ │ │ + 892: bipush 11 │ │ │ │ + 894: istore 4 │ │ │ │ + 896: goto 456 │ │ │ │ + 899: ldc #117 // String 3105 │ │ │ │ + 901: astore_3 │ │ │ │ 902: aload 21 │ │ │ │ - 904: aload 24 │ │ │ │ - 906: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 909: istore 23 │ │ │ │ - 911: iload 23 │ │ │ │ - 913: ifeq 456 │ │ │ │ - 916: bipush 11 │ │ │ │ - 918: istore 4 │ │ │ │ - 920: goto 456 │ │ │ │ - 923: ldc #117 // String 3105 │ │ │ │ - 925: astore 24 │ │ │ │ - 927: aload 21 │ │ │ │ - 929: aload 24 │ │ │ │ - 931: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 934: istore 23 │ │ │ │ - 936: iload 23 │ │ │ │ - 938: ifeq 456 │ │ │ │ - 941: bipush 12 │ │ │ │ - 943: istore 4 │ │ │ │ - 945: goto 456 │ │ │ │ - 948: ldc #120 // String 3106 │ │ │ │ - 950: astore 24 │ │ │ │ - 952: aload 21 │ │ │ │ - 954: aload 24 │ │ │ │ - 956: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 959: istore 23 │ │ │ │ - 961: iload 23 │ │ │ │ - 963: ifeq 456 │ │ │ │ - 966: bipush 13 │ │ │ │ - 968: istore 4 │ │ │ │ - 970: goto 456 │ │ │ │ - 973: ldc #123 // String 3107 │ │ │ │ - 975: astore 24 │ │ │ │ - 977: aload 21 │ │ │ │ - 979: aload 24 │ │ │ │ - 981: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 984: istore 23 │ │ │ │ - 986: iload 23 │ │ │ │ - 988: ifeq 456 │ │ │ │ - 991: bipush 14 │ │ │ │ - 993: istore 4 │ │ │ │ - 995: goto 456 │ │ │ │ - 998: ldc #126 // String 3108 │ │ │ │ - 1000: astore 24 │ │ │ │ - 1002: aload 21 │ │ │ │ - 1004: aload 24 │ │ │ │ - 1006: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 1009: istore 23 │ │ │ │ - 1011: iload 23 │ │ │ │ - 1013: ifeq 456 │ │ │ │ - 1016: bipush 15 │ │ │ │ - 1018: istore 4 │ │ │ │ - 1020: goto 456 │ │ │ │ - 1023: ldc #129 // String 3109 │ │ │ │ - 1025: astore 24 │ │ │ │ - 1027: aload 21 │ │ │ │ - 1029: aload 24 │ │ │ │ - 1031: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 1034: istore 23 │ │ │ │ - 1036: iload 23 │ │ │ │ - 1038: ifeq 456 │ │ │ │ - 1041: bipush 16 │ │ │ │ - 1043: istore 4 │ │ │ │ - 1045: goto 456 │ │ │ │ - 1048: ldc #132 // String 3200 │ │ │ │ - 1050: astore 24 │ │ │ │ - 1052: aload 21 │ │ │ │ - 1054: aload 24 │ │ │ │ - 1056: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 1059: istore 23 │ │ │ │ - 1061: iload 23 │ │ │ │ - 1063: ifeq 456 │ │ │ │ - 1066: bipush 17 │ │ │ │ - 1068: istore 4 │ │ │ │ - 1070: goto 456 │ │ │ │ - 1073: ldc #135 // String 3201 │ │ │ │ - 1075: astore 24 │ │ │ │ - 1077: aload 21 │ │ │ │ - 1079: aload 24 │ │ │ │ - 1081: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 1084: istore 23 │ │ │ │ - 1086: iload 23 │ │ │ │ - 1088: ifeq 456 │ │ │ │ - 1091: bipush 18 │ │ │ │ - 1093: istore 4 │ │ │ │ - 1095: goto 456 │ │ │ │ - 1098: ldc #138 // String 3202 │ │ │ │ - 1100: astore 24 │ │ │ │ - 1102: aload 21 │ │ │ │ - 1104: aload 24 │ │ │ │ - 1106: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 1109: istore 23 │ │ │ │ - 1111: iload 23 │ │ │ │ - 1113: ifeq 456 │ │ │ │ - 1116: bipush 19 │ │ │ │ - 1118: istore 4 │ │ │ │ - 1120: goto 456 │ │ │ │ - 1123: ldc #141 // String 3203 │ │ │ │ - 1125: astore 24 │ │ │ │ - 1127: aload 21 │ │ │ │ - 1129: aload 24 │ │ │ │ - 1131: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 1134: istore 23 │ │ │ │ - 1136: iload 23 │ │ │ │ - 1138: ifeq 456 │ │ │ │ - 1141: bipush 20 │ │ │ │ - 1143: istore 4 │ │ │ │ - 1145: goto 456 │ │ │ │ - 1148: ldc #144 // String 3204 │ │ │ │ - 1150: astore 24 │ │ │ │ - 1152: aload 21 │ │ │ │ - 1154: aload 24 │ │ │ │ - 1156: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 1159: istore 23 │ │ │ │ - 1161: iload 23 │ │ │ │ - 1163: ifeq 456 │ │ │ │ - 1166: bipush 21 │ │ │ │ - 1168: istore 4 │ │ │ │ - 1170: goto 456 │ │ │ │ - 1173: ldc #147 // String 3205 │ │ │ │ - 1175: astore 24 │ │ │ │ - 1177: aload 21 │ │ │ │ - 1179: aload 24 │ │ │ │ + 904: aload_3 │ │ │ │ + 905: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 908: istore 23 │ │ │ │ + 910: iload 23 │ │ │ │ + 912: ifeq 456 │ │ │ │ + 915: bipush 12 │ │ │ │ + 917: istore 4 │ │ │ │ + 919: goto 456 │ │ │ │ + 922: ldc #120 // String 3106 │ │ │ │ + 924: astore_3 │ │ │ │ + 925: aload 21 │ │ │ │ + 927: aload_3 │ │ │ │ + 928: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 931: istore 23 │ │ │ │ + 933: iload 23 │ │ │ │ + 935: ifeq 456 │ │ │ │ + 938: bipush 13 │ │ │ │ + 940: istore 4 │ │ │ │ + 942: goto 456 │ │ │ │ + 945: ldc #123 // String 3107 │ │ │ │ + 947: astore_3 │ │ │ │ + 948: aload 21 │ │ │ │ + 950: aload_3 │ │ │ │ + 951: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 954: istore 23 │ │ │ │ + 956: iload 23 │ │ │ │ + 958: ifeq 456 │ │ │ │ + 961: bipush 14 │ │ │ │ + 963: istore 4 │ │ │ │ + 965: goto 456 │ │ │ │ + 968: ldc #126 // String 3108 │ │ │ │ + 970: astore_3 │ │ │ │ + 971: aload 21 │ │ │ │ + 973: aload_3 │ │ │ │ + 974: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 977: istore 23 │ │ │ │ + 979: iload 23 │ │ │ │ + 981: ifeq 456 │ │ │ │ + 984: bipush 15 │ │ │ │ + 986: istore 4 │ │ │ │ + 988: goto 456 │ │ │ │ + 991: ldc #129 // String 3109 │ │ │ │ + 993: astore_3 │ │ │ │ + 994: aload 21 │ │ │ │ + 996: aload_3 │ │ │ │ + 997: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 1000: istore 23 │ │ │ │ + 1002: iload 23 │ │ │ │ + 1004: ifeq 456 │ │ │ │ + 1007: bipush 16 │ │ │ │ + 1009: istore 4 │ │ │ │ + 1011: goto 456 │ │ │ │ + 1014: ldc #132 // String 3200 │ │ │ │ + 1016: astore_3 │ │ │ │ + 1017: aload 21 │ │ │ │ + 1019: aload_3 │ │ │ │ + 1020: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 1023: istore 23 │ │ │ │ + 1025: iload 23 │ │ │ │ + 1027: ifeq 456 │ │ │ │ + 1030: bipush 17 │ │ │ │ + 1032: istore 4 │ │ │ │ + 1034: goto 456 │ │ │ │ + 1037: ldc #135 // String 3201 │ │ │ │ + 1039: astore_3 │ │ │ │ + 1040: aload 21 │ │ │ │ + 1042: aload_3 │ │ │ │ + 1043: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 1046: istore 23 │ │ │ │ + 1048: iload 23 │ │ │ │ + 1050: ifeq 456 │ │ │ │ + 1053: bipush 18 │ │ │ │ + 1055: istore 4 │ │ │ │ + 1057: goto 456 │ │ │ │ + 1060: ldc #138 // String 3202 │ │ │ │ + 1062: astore_3 │ │ │ │ + 1063: aload 21 │ │ │ │ + 1065: aload_3 │ │ │ │ + 1066: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 1069: istore 23 │ │ │ │ + 1071: iload 23 │ │ │ │ + 1073: ifeq 456 │ │ │ │ + 1076: bipush 19 │ │ │ │ + 1078: istore 4 │ │ │ │ + 1080: goto 456 │ │ │ │ + 1083: ldc #141 // String 3203 │ │ │ │ + 1085: astore_3 │ │ │ │ + 1086: aload 21 │ │ │ │ + 1088: aload_3 │ │ │ │ + 1089: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 1092: istore 23 │ │ │ │ + 1094: iload 23 │ │ │ │ + 1096: ifeq 456 │ │ │ │ + 1099: bipush 20 │ │ │ │ + 1101: istore 4 │ │ │ │ + 1103: goto 456 │ │ │ │ + 1106: ldc #144 // String 3204 │ │ │ │ + 1108: astore_3 │ │ │ │ + 1109: aload 21 │ │ │ │ + 1111: aload_3 │ │ │ │ + 1112: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 1115: istore 23 │ │ │ │ + 1117: iload 23 │ │ │ │ + 1119: ifeq 456 │ │ │ │ + 1122: bipush 21 │ │ │ │ + 1124: istore 4 │ │ │ │ + 1126: goto 456 │ │ │ │ + 1129: ldc #147 // String 3205 │ │ │ │ + 1131: astore_3 │ │ │ │ + 1132: aload 21 │ │ │ │ + 1134: aload_3 │ │ │ │ + 1135: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 1138: istore 23 │ │ │ │ + 1140: iload 23 │ │ │ │ + 1142: ifeq 456 │ │ │ │ + 1145: bipush 22 │ │ │ │ + 1147: istore 4 │ │ │ │ + 1149: goto 456 │ │ │ │ + 1152: ldc #150 // String 3206 │ │ │ │ + 1154: astore_3 │ │ │ │ + 1155: aload 21 │ │ │ │ + 1157: aload_3 │ │ │ │ + 1158: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 1161: istore 23 │ │ │ │ + 1163: iload 23 │ │ │ │ + 1165: ifeq 456 │ │ │ │ + 1168: bipush 23 │ │ │ │ + 1170: istore 4 │ │ │ │ + 1172: goto 456 │ │ │ │ + 1175: ldc #153 // String 3207 │ │ │ │ + 1177: astore_3 │ │ │ │ + 1178: aload 21 │ │ │ │ + 1180: aload_3 │ │ │ │ 1181: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ 1184: istore 23 │ │ │ │ 1186: iload 23 │ │ │ │ 1188: ifeq 456 │ │ │ │ - 1191: bipush 22 │ │ │ │ + 1191: bipush 24 │ │ │ │ 1193: istore 4 │ │ │ │ 1195: goto 456 │ │ │ │ - 1198: ldc #150 // String 3206 │ │ │ │ - 1200: astore 24 │ │ │ │ - 1202: aload 21 │ │ │ │ - 1204: aload 24 │ │ │ │ - 1206: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 1209: istore 23 │ │ │ │ - 1211: iload 23 │ │ │ │ - 1213: ifeq 456 │ │ │ │ - 1216: bipush 23 │ │ │ │ - 1218: istore 4 │ │ │ │ - 1220: goto 456 │ │ │ │ - 1223: ldc #153 // String 3207 │ │ │ │ - 1225: astore 24 │ │ │ │ - 1227: aload 21 │ │ │ │ - 1229: aload 24 │ │ │ │ - 1231: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 1234: istore 23 │ │ │ │ - 1236: iload 23 │ │ │ │ - 1238: ifeq 456 │ │ │ │ - 1241: bipush 24 │ │ │ │ - 1243: istore 4 │ │ │ │ - 1245: goto 456 │ │ │ │ - 1248: ldc #156 // String 3208 │ │ │ │ - 1250: astore 24 │ │ │ │ - 1252: aload 21 │ │ │ │ - 1254: aload 24 │ │ │ │ - 1256: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 1259: istore 23 │ │ │ │ - 1261: iload 23 │ │ │ │ - 1263: ifeq 456 │ │ │ │ - 1266: bipush 25 │ │ │ │ - 1268: istore 4 │ │ │ │ - 1270: goto 456 │ │ │ │ - 1273: ldc #159 // String 3209 │ │ │ │ - 1275: astore 24 │ │ │ │ - 1277: aload 21 │ │ │ │ - 1279: aload 24 │ │ │ │ - 1281: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 1284: istore 23 │ │ │ │ - 1286: iload 23 │ │ │ │ - 1288: ifeq 456 │ │ │ │ - 1291: bipush 26 │ │ │ │ - 1293: istore 4 │ │ │ │ - 1295: goto 456 │ │ │ │ - 1298: ldc #162 // String 3920 │ │ │ │ - 1300: astore 24 │ │ │ │ - 1302: aload 21 │ │ │ │ - 1304: aload 24 │ │ │ │ - 1306: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 1309: istore 23 │ │ │ │ - 1311: iload 23 │ │ │ │ - 1313: ifeq 456 │ │ │ │ - 1316: bipush 27 │ │ │ │ - 1318: istore 4 │ │ │ │ - 1320: goto 456 │ │ │ │ - 1323: ldc #165 // String 3921 │ │ │ │ - 1325: astore 24 │ │ │ │ - 1327: aload 21 │ │ │ │ - 1329: aload 24 │ │ │ │ - 1331: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 1334: istore 23 │ │ │ │ - 1336: iload 23 │ │ │ │ - 1338: ifeq 456 │ │ │ │ - 1341: bipush 28 │ │ │ │ - 1343: istore 4 │ │ │ │ - 1345: goto 456 │ │ │ │ - 1348: ldc #168 // String 3922 │ │ │ │ - 1350: astore 24 │ │ │ │ - 1352: aload 21 │ │ │ │ - 1354: aload 24 │ │ │ │ - 1356: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 1359: istore 23 │ │ │ │ - 1361: iload 23 │ │ │ │ - 1363: ifeq 456 │ │ │ │ - 1366: bipush 29 │ │ │ │ - 1368: istore 4 │ │ │ │ - 1370: goto 456 │ │ │ │ - 1373: ldc #171 // String 3923 │ │ │ │ - 1375: astore 24 │ │ │ │ - 1377: aload 21 │ │ │ │ - 1379: aload 24 │ │ │ │ - 1381: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 1384: istore 23 │ │ │ │ - 1386: iload 23 │ │ │ │ - 1388: ifeq 456 │ │ │ │ - 1391: bipush 30 │ │ │ │ - 1393: istore 4 │ │ │ │ - 1395: goto 456 │ │ │ │ - 1398: ldc #174 // String 3930 │ │ │ │ - 1400: astore 24 │ │ │ │ - 1402: aload 21 │ │ │ │ - 1404: aload 24 │ │ │ │ - 1406: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 1409: istore 23 │ │ │ │ - 1411: iload 23 │ │ │ │ - 1413: ifeq 456 │ │ │ │ - 1416: bipush 31 │ │ │ │ - 1418: istore 4 │ │ │ │ - 1420: goto 456 │ │ │ │ - 1423: ldc #177 // String 3931 │ │ │ │ - 1425: astore 24 │ │ │ │ - 1427: aload 21 │ │ │ │ - 1429: aload 24 │ │ │ │ - 1431: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 1434: istore 23 │ │ │ │ - 1436: iload 23 │ │ │ │ - 1438: ifeq 456 │ │ │ │ - 1441: bipush 32 │ │ │ │ - 1443: istore 4 │ │ │ │ - 1445: goto 456 │ │ │ │ - 1448: ldc #180 // String 3932 │ │ │ │ - 1450: astore 24 │ │ │ │ - 1452: aload 21 │ │ │ │ - 1454: aload 24 │ │ │ │ - 1456: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 1459: istore 23 │ │ │ │ - 1461: iload 23 │ │ │ │ - 1463: ifeq 456 │ │ │ │ - 1466: bipush 33 │ │ │ │ - 1468: istore 4 │ │ │ │ - 1470: goto 456 │ │ │ │ - 1473: ldc #183 // String 3933 │ │ │ │ - 1475: astore 24 │ │ │ │ - 1477: aload 21 │ │ │ │ - 1479: aload 24 │ │ │ │ - 1481: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ - 1484: istore 23 │ │ │ │ - 1486: iload 23 │ │ │ │ - 1488: ifeq 456 │ │ │ │ - 1491: bipush 34 │ │ │ │ - 1493: istore 4 │ │ │ │ - 1495: goto 456 │ │ │ │ - 1498: aload 22 │ │ │ │ - 1500: astore 7 │ │ │ │ - 1502: goto 79 │ │ │ │ - 1505: aload 22 │ │ │ │ - 1507: astore 6 │ │ │ │ - 1509: goto 79 │ │ │ │ - 1512: aload 22 │ │ │ │ - 1514: astore 8 │ │ │ │ - 1516: goto 79 │ │ │ │ - 1519: aload 22 │ │ │ │ - 1521: astore 9 │ │ │ │ - 1523: goto 79 │ │ │ │ - 1526: aload 22 │ │ │ │ - 1528: astore 10 │ │ │ │ - 1530: goto 79 │ │ │ │ - 1533: aload 22 │ │ │ │ - 1535: astore 11 │ │ │ │ - 1537: goto 79 │ │ │ │ - 1540: aload 22 │ │ │ │ - 1542: astore 12 │ │ │ │ - 1544: goto 79 │ │ │ │ - 1547: aload 22 │ │ │ │ - 1549: astore 13 │ │ │ │ - 1551: ldc #186 // String KG │ │ │ │ - 1553: astore 14 │ │ │ │ - 1555: iconst_3 │ │ │ │ - 1556: istore 4 │ │ │ │ - 1558: aload 21 │ │ │ │ - 1560: iload 4 │ │ │ │ - 1562: invokevirtual #19 // Method java/lang/String.substring:(I)Ljava/lang/String; │ │ │ │ - 1565: astore 15 │ │ │ │ - 1567: goto 79 │ │ │ │ - 1570: aload 22 │ │ │ │ - 1572: astore 13 │ │ │ │ - 1574: ldc #188 // String LB │ │ │ │ - 1576: astore 14 │ │ │ │ - 1578: iconst_3 │ │ │ │ - 1579: istore 4 │ │ │ │ - 1581: aload 21 │ │ │ │ - 1583: iload 4 │ │ │ │ - 1585: invokevirtual #19 // Method java/lang/String.substring:(I)Ljava/lang/String; │ │ │ │ - 1588: astore 15 │ │ │ │ - 1590: goto 79 │ │ │ │ - 1593: aload 22 │ │ │ │ - 1595: astore 16 │ │ │ │ - 1597: iconst_3 │ │ │ │ - 1598: istore 4 │ │ │ │ - 1600: aload 21 │ │ │ │ - 1602: iload 4 │ │ │ │ - 1604: invokevirtual #19 // Method java/lang/String.substring:(I)Ljava/lang/String; │ │ │ │ - 1607: astore 17 │ │ │ │ - 1609: goto 79 │ │ │ │ - 1612: aload 22 │ │ │ │ - 1614: invokevirtual #41 // Method java/lang/String.length:()I │ │ │ │ - 1617: istore 4 │ │ │ │ - 1619: iconst_4 │ │ │ │ - 1620: istore 23 │ │ │ │ - 1622: iload 4 │ │ │ │ - 1624: iload 23 │ │ │ │ - 1626: if_icmpge 1637 │ │ │ │ - 1629: iconst_0 │ │ │ │ - 1630: istore 4 │ │ │ │ - 1632: aconst_null │ │ │ │ - 1633: astore_3 │ │ │ │ - 1634: goto 19 │ │ │ │ - 1637: aload 22 │ │ │ │ - 1639: iconst_3 │ │ │ │ - 1640: invokevirtual #19 // Method java/lang/String.substring:(I)Ljava/lang/String; │ │ │ │ - 1643: astore 16 │ │ │ │ - 1645: aconst_null │ │ │ │ - 1646: astore_3 │ │ │ │ - 1647: iconst_3 │ │ │ │ - 1648: istore 23 │ │ │ │ - 1650: aload 22 │ │ │ │ - 1652: iconst_0 │ │ │ │ - 1653: iload 23 │ │ │ │ - 1655: invokevirtual #191 // Method java/lang/String.substring:(II)Ljava/lang/String; │ │ │ │ - 1658: astore 18 │ │ │ │ - 1660: iconst_3 │ │ │ │ - 1661: istore 4 │ │ │ │ - 1663: aload 21 │ │ │ │ - 1665: iload 4 │ │ │ │ - 1667: invokevirtual #19 // Method java/lang/String.substring:(I)Ljava/lang/String; │ │ │ │ - 1670: astore 17 │ │ │ │ - 1672: goto 79 │ │ │ │ - 1675: new #193 // class com/google/zxing/client/result/ExpandedProductParsedResult │ │ │ │ - 1678: astore_3 │ │ │ │ - 1679: aload_3 │ │ │ │ - 1680: aload 5 │ │ │ │ - 1682: aload 6 │ │ │ │ - 1684: aload 7 │ │ │ │ - 1686: aload 8 │ │ │ │ - 1688: aload 9 │ │ │ │ - 1690: aload 10 │ │ │ │ - 1692: aload 11 │ │ │ │ - 1694: aload 12 │ │ │ │ - 1696: aload 13 │ │ │ │ - 1698: aload 14 │ │ │ │ - 1700: aload 15 │ │ │ │ - 1702: aload 16 │ │ │ │ - 1704: aload 17 │ │ │ │ - 1706: aload 18 │ │ │ │ - 1708: aload 19 │ │ │ │ - 1710: invokespecial #196 // Method com/google/zxing/client/result/ExpandedProductParsedResult."":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V │ │ │ │ - 1713: goto 19 │ │ │ │ + 1198: ldc #156 // String 3208 │ │ │ │ + 1200: astore_3 │ │ │ │ + 1201: aload 21 │ │ │ │ + 1203: aload_3 │ │ │ │ + 1204: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 1207: istore 23 │ │ │ │ + 1209: iload 23 │ │ │ │ + 1211: ifeq 456 │ │ │ │ + 1214: bipush 25 │ │ │ │ + 1216: istore 4 │ │ │ │ + 1218: goto 456 │ │ │ │ + 1221: ldc #159 // String 3209 │ │ │ │ + 1223: astore_3 │ │ │ │ + 1224: aload 21 │ │ │ │ + 1226: aload_3 │ │ │ │ + 1227: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 1230: istore 23 │ │ │ │ + 1232: iload 23 │ │ │ │ + 1234: ifeq 456 │ │ │ │ + 1237: bipush 26 │ │ │ │ + 1239: istore 4 │ │ │ │ + 1241: goto 456 │ │ │ │ + 1244: ldc #162 // String 3920 │ │ │ │ + 1246: astore_3 │ │ │ │ + 1247: aload 21 │ │ │ │ + 1249: aload_3 │ │ │ │ + 1250: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 1253: istore 23 │ │ │ │ + 1255: iload 23 │ │ │ │ + 1257: ifeq 456 │ │ │ │ + 1260: bipush 27 │ │ │ │ + 1262: istore 4 │ │ │ │ + 1264: goto 456 │ │ │ │ + 1267: ldc #165 // String 3921 │ │ │ │ + 1269: astore_3 │ │ │ │ + 1270: aload 21 │ │ │ │ + 1272: aload_3 │ │ │ │ + 1273: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 1276: istore 23 │ │ │ │ + 1278: iload 23 │ │ │ │ + 1280: ifeq 456 │ │ │ │ + 1283: bipush 28 │ │ │ │ + 1285: istore 4 │ │ │ │ + 1287: goto 456 │ │ │ │ + 1290: ldc #168 // String 3922 │ │ │ │ + 1292: astore_3 │ │ │ │ + 1293: aload 21 │ │ │ │ + 1295: aload_3 │ │ │ │ + 1296: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 1299: istore 23 │ │ │ │ + 1301: iload 23 │ │ │ │ + 1303: ifeq 456 │ │ │ │ + 1306: bipush 29 │ │ │ │ + 1308: istore 4 │ │ │ │ + 1310: goto 456 │ │ │ │ + 1313: ldc #171 // String 3923 │ │ │ │ + 1315: astore_3 │ │ │ │ + 1316: aload 21 │ │ │ │ + 1318: aload_3 │ │ │ │ + 1319: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 1322: istore 23 │ │ │ │ + 1324: iload 23 │ │ │ │ + 1326: ifeq 456 │ │ │ │ + 1329: bipush 30 │ │ │ │ + 1331: istore 4 │ │ │ │ + 1333: goto 456 │ │ │ │ + 1336: ldc #174 // String 3930 │ │ │ │ + 1338: astore_3 │ │ │ │ + 1339: aload 21 │ │ │ │ + 1341: aload_3 │ │ │ │ + 1342: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 1345: istore 23 │ │ │ │ + 1347: iload 23 │ │ │ │ + 1349: ifeq 456 │ │ │ │ + 1352: bipush 31 │ │ │ │ + 1354: istore 4 │ │ │ │ + 1356: goto 456 │ │ │ │ + 1359: ldc #177 // String 3931 │ │ │ │ + 1361: astore_3 │ │ │ │ + 1362: aload 21 │ │ │ │ + 1364: aload_3 │ │ │ │ + 1365: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 1368: istore 23 │ │ │ │ + 1370: iload 23 │ │ │ │ + 1372: ifeq 456 │ │ │ │ + 1375: bipush 32 │ │ │ │ + 1377: istore 4 │ │ │ │ + 1379: goto 456 │ │ │ │ + 1382: ldc #180 // String 3932 │ │ │ │ + 1384: astore_3 │ │ │ │ + 1385: aload 21 │ │ │ │ + 1387: aload_3 │ │ │ │ + 1388: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 1391: istore 23 │ │ │ │ + 1393: iload 23 │ │ │ │ + 1395: ifeq 456 │ │ │ │ + 1398: bipush 33 │ │ │ │ + 1400: istore 4 │ │ │ │ + 1402: goto 456 │ │ │ │ + 1405: ldc #183 // String 3933 │ │ │ │ + 1407: astore_3 │ │ │ │ + 1408: aload 21 │ │ │ │ + 1410: aload_3 │ │ │ │ + 1411: invokevirtual #82 // Method java/lang/String.equals:(Ljava/lang/Object;)Z │ │ │ │ + 1414: istore 23 │ │ │ │ + 1416: iload 23 │ │ │ │ + 1418: ifeq 456 │ │ │ │ + 1421: bipush 34 │ │ │ │ + 1423: istore 4 │ │ │ │ + 1425: goto 456 │ │ │ │ + 1428: aload 22 │ │ │ │ + 1430: astore 7 │ │ │ │ + 1432: goto 79 │ │ │ │ + 1435: aload 22 │ │ │ │ + 1437: astore 6 │ │ │ │ + 1439: goto 79 │ │ │ │ + 1442: aload 22 │ │ │ │ + 1444: astore 8 │ │ │ │ + 1446: goto 79 │ │ │ │ + 1449: aload 22 │ │ │ │ + 1451: astore 9 │ │ │ │ + 1453: goto 79 │ │ │ │ + 1456: aload 22 │ │ │ │ + 1458: astore 10 │ │ │ │ + 1460: goto 79 │ │ │ │ + 1463: aload 22 │ │ │ │ + 1465: astore 11 │ │ │ │ + 1467: goto 79 │ │ │ │ + 1470: aload 22 │ │ │ │ + 1472: astore 12 │ │ │ │ + 1474: goto 79 │ │ │ │ + 1477: aload 22 │ │ │ │ + 1479: astore 13 │ │ │ │ + 1481: ldc #186 // String KG │ │ │ │ + 1483: astore 14 │ │ │ │ + 1485: iconst_3 │ │ │ │ + 1486: istore 4 │ │ │ │ + 1488: aload 21 │ │ │ │ + 1490: iload 4 │ │ │ │ + 1492: invokevirtual #19 // Method java/lang/String.substring:(I)Ljava/lang/String; │ │ │ │ + 1495: astore 15 │ │ │ │ + 1497: goto 79 │ │ │ │ + 1500: aload 22 │ │ │ │ + 1502: astore 13 │ │ │ │ + 1504: ldc #188 // String LB │ │ │ │ + 1506: astore 14 │ │ │ │ + 1508: iconst_3 │ │ │ │ + 1509: istore 4 │ │ │ │ + 1511: aload 21 │ │ │ │ + 1513: iload 4 │ │ │ │ + 1515: invokevirtual #19 // Method java/lang/String.substring:(I)Ljava/lang/String; │ │ │ │ + 1518: astore 15 │ │ │ │ + 1520: goto 79 │ │ │ │ + 1523: aload 22 │ │ │ │ + 1525: astore 16 │ │ │ │ + 1527: iconst_3 │ │ │ │ + 1528: istore 4 │ │ │ │ + 1530: aload 21 │ │ │ │ + 1532: iload 4 │ │ │ │ + 1534: invokevirtual #19 // Method java/lang/String.substring:(I)Ljava/lang/String; │ │ │ │ + 1537: astore 17 │ │ │ │ + 1539: goto 79 │ │ │ │ + 1542: aload 22 │ │ │ │ + 1544: invokevirtual #41 // Method java/lang/String.length:()I │ │ │ │ + 1547: istore 4 │ │ │ │ + 1549: iconst_4 │ │ │ │ + 1550: istore 23 │ │ │ │ + 1552: iload 4 │ │ │ │ + 1554: iload 23 │ │ │ │ + 1556: if_icmpge 1567 │ │ │ │ + 1559: iconst_0 │ │ │ │ + 1560: istore 4 │ │ │ │ + 1562: aconst_null │ │ │ │ + 1563: astore_2 │ │ │ │ + 1564: goto 19 │ │ │ │ + 1567: aload 22 │ │ │ │ + 1569: iconst_3 │ │ │ │ + 1570: invokevirtual #19 // Method java/lang/String.substring:(I)Ljava/lang/String; │ │ │ │ + 1573: astore 16 │ │ │ │ + 1575: aconst_null │ │ │ │ + 1576: astore_2 │ │ │ │ + 1577: iconst_3 │ │ │ │ + 1578: istore 23 │ │ │ │ + 1580: aload 22 │ │ │ │ + 1582: iconst_0 │ │ │ │ + 1583: iload 23 │ │ │ │ + 1585: invokevirtual #191 // Method java/lang/String.substring:(II)Ljava/lang/String; │ │ │ │ + 1588: astore 18 │ │ │ │ + 1590: iconst_3 │ │ │ │ + 1591: istore 4 │ │ │ │ + 1593: aload 21 │ │ │ │ + 1595: iload 4 │ │ │ │ + 1597: invokevirtual #19 // Method java/lang/String.substring:(I)Ljava/lang/String; │ │ │ │ + 1600: astore 17 │ │ │ │ + 1602: goto 79 │ │ │ │ + 1605: new #193 // class com/google/zxing/client/result/ExpandedProductParsedResult │ │ │ │ + 1608: astore_2 │ │ │ │ + 1609: aload_2 │ │ │ │ + 1610: aload 5 │ │ │ │ + 1612: aload 6 │ │ │ │ + 1614: aload 7 │ │ │ │ + 1616: aload 8 │ │ │ │ + 1618: aload 9 │ │ │ │ + 1620: aload 10 │ │ │ │ + 1622: aload 11 │ │ │ │ + 1624: aload 12 │ │ │ │ + 1626: aload 13 │ │ │ │ + 1628: aload 14 │ │ │ │ + 1630: aload 15 │ │ │ │ + 1632: aload 16 │ │ │ │ + 1634: aload 17 │ │ │ │ + 1636: aload 18 │ │ │ │ + 1638: aload 19 │ │ │ │ + 1640: invokespecial #196 // Method com/google/zxing/client/result/ExpandedProductParsedResult."":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V │ │ │ │ + 1643: goto 19 │ │ │ │ │ │ │ │ public com.google.zxing.client.result.ParsedResult parse(com.google.zxing.Result); │ │ │ │ descriptor: (Lcom/google/zxing/Result;)Lcom/google/zxing/client/result/ParsedResult; │ │ │ │ flags: ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC │ │ │ │ Code: │ │ │ │ stack=300, locals=2, args_size=2 │ │ │ │ 0: aload_0 │ │ ├── com/google/zxing/client/result/GeoResultParser.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -208,16 +208,16 @@ │ │ │ │ 209: dload 14 │ │ │ │ 211: dload 10 │ │ │ │ 213: dcmpg │ │ │ │ 214: istore 6 │ │ │ │ 216: iload 6 │ │ │ │ 218: ifge 168 │ │ │ │ 221: goto 32 │ │ │ │ - 224: pop │ │ │ │ - 225: goto 32 │ │ │ │ + 224: astore 4 │ │ │ │ + 226: goto 32 │ │ │ │ Exception table: │ │ │ │ from to target type │ │ │ │ 47 52 224 Class java/lang/NumberFormatException │ │ │ │ 54 59 224 Class java/lang/NumberFormatException │ │ │ │ 100 105 224 Class java/lang/NumberFormatException │ │ │ │ 107 112 224 Class java/lang/NumberFormatException │ │ │ │ 153 158 224 Class java/lang/NumberFormatException │ │ ├── com/google/zxing/client/result/ISBNResultParser.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -88,35 +88,35 @@ │ │ │ │ 31: istore 6 │ │ │ │ 33: bipush 13 │ │ │ │ 35: istore 7 │ │ │ │ 37: iload 6 │ │ │ │ 39: iload 7 │ │ │ │ 41: if_icmpne 18 │ │ │ │ 44: ldc #33 // String 978 │ │ │ │ - 46: astore 4 │ │ │ │ - 48: aload 5 │ │ │ │ - 50: aload 4 │ │ │ │ - 52: invokevirtual #37 // Method java/lang/String.startsWith:(Ljava/lang/String;)Z │ │ │ │ - 55: istore 7 │ │ │ │ - 57: iload 7 │ │ │ │ - 59: ifne 80 │ │ │ │ - 62: ldc #39 // String 979 │ │ │ │ - 64: astore 4 │ │ │ │ - 66: aload 5 │ │ │ │ - 68: aload 4 │ │ │ │ - 70: invokevirtual #37 // Method java/lang/String.startsWith:(Ljava/lang/String;)Z │ │ │ │ - 73: istore 7 │ │ │ │ - 75: iload 7 │ │ │ │ - 77: ifeq 18 │ │ │ │ - 80: new #41 // class com/google/zxing/client/result/ISBNParsedResult │ │ │ │ - 83: astore_2 │ │ │ │ - 84: aload_2 │ │ │ │ - 85: aload 5 │ │ │ │ - 87: invokespecial #44 // Method com/google/zxing/client/result/ISBNParsedResult."":(Ljava/lang/String;)V │ │ │ │ - 90: goto 18 │ │ │ │ + 46: astore_3 │ │ │ │ + 47: aload 5 │ │ │ │ + 49: aload_3 │ │ │ │ + 50: invokevirtual #37 // Method java/lang/String.startsWith:(Ljava/lang/String;)Z │ │ │ │ + 53: istore 6 │ │ │ │ + 55: iload 6 │ │ │ │ + 57: ifne 76 │ │ │ │ + 60: ldc #39 // String 979 │ │ │ │ + 62: astore_3 │ │ │ │ + 63: aload 5 │ │ │ │ + 65: aload_3 │ │ │ │ + 66: invokevirtual #37 // Method java/lang/String.startsWith:(Ljava/lang/String;)Z │ │ │ │ + 69: istore 6 │ │ │ │ + 71: iload 6 │ │ │ │ + 73: ifeq 18 │ │ │ │ + 76: new #41 // class com/google/zxing/client/result/ISBNParsedResult │ │ │ │ + 79: astore_2 │ │ │ │ + 80: aload_2 │ │ │ │ + 81: aload 5 │ │ │ │ + 83: invokespecial #44 // Method com/google/zxing/client/result/ISBNParsedResult."":(Ljava/lang/String;)V │ │ │ │ + 86: goto 18 │ │ │ │ │ │ │ │ public com.google.zxing.client.result.ParsedResult parse(com.google.zxing.Result); │ │ │ │ descriptor: (Lcom/google/zxing/Result;)Lcom/google/zxing/client/result/ParsedResult; │ │ │ │ flags: ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC │ │ │ │ Code: │ │ │ │ stack=300, locals=2, args_size=2 │ │ │ │ 0: aload_0 │ │ ├── com/google/zxing/client/result/TelResultParser.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -28,42 +28,44 @@ │ │ │ │ #23 = Utf8 (Ljava/lang/String;)Z │ │ │ │ #24 = NameAndType #22:#23 // startsWith:(Ljava/lang/String;)Z │ │ │ │ #25 = Methodref #21.#24 // java/lang/String.startsWith:(Ljava/lang/String;)Z │ │ │ │ #26 = Utf8 TEL: │ │ │ │ #27 = String #26 // TEL: │ │ │ │ #28 = Utf8 java/lang/StringBuilder │ │ │ │ #29 = Class #28 // java/lang/StringBuilder │ │ │ │ - #30 = Methodref #29.#7 // java/lang/StringBuilder."":()V │ │ │ │ - #31 = Utf8 append │ │ │ │ - #32 = Utf8 (Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - #33 = NameAndType #31:#32 // append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - #34 = Methodref #29.#33 // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - #35 = Utf8 substring │ │ │ │ - #36 = Utf8 (I)Ljava/lang/String; │ │ │ │ - #37 = NameAndType #35:#36 // substring:(I)Ljava/lang/String; │ │ │ │ - #38 = Methodref #21.#37 // java/lang/String.substring:(I)Ljava/lang/String; │ │ │ │ - #39 = Utf8 toString │ │ │ │ - #40 = Utf8 ()Ljava/lang/String; │ │ │ │ - #41 = NameAndType #39:#40 // toString:()Ljava/lang/String; │ │ │ │ - #42 = Methodref #29.#41 // java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ - #43 = Float 8.8E-44f │ │ │ │ - #44 = Utf8 indexOf │ │ │ │ - #45 = Utf8 (II)I │ │ │ │ - #46 = NameAndType #44:#45 // indexOf:(II)I │ │ │ │ - #47 = Methodref #21.#46 // java/lang/String.indexOf:(II)I │ │ │ │ - #48 = Utf8 com/google/zxing/client/result/TelParsedResult │ │ │ │ - #49 = Class #48 // com/google/zxing/client/result/TelParsedResult │ │ │ │ - #50 = Utf8 (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ - #51 = NameAndType #5:#50 // "":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ - #52 = Methodref #49.#51 // com/google/zxing/client/result/TelParsedResult."":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ - #53 = Utf8 (II)Ljava/lang/String; │ │ │ │ - #54 = NameAndType #35:#53 // substring:(II)Ljava/lang/String; │ │ │ │ - #55 = Methodref #21.#54 // java/lang/String.substring:(II)Ljava/lang/String; │ │ │ │ - #56 = Utf8 Code │ │ │ │ - #57 = Utf8 (Lcom/google/zxing/Result;)Lcom/google/zxing/client/result/ParsedResult; │ │ │ │ + #30 = Utf8 (Ljava/lang/String;)V │ │ │ │ + #31 = NameAndType #5:#30 // "":(Ljava/lang/String;)V │ │ │ │ + #32 = Methodref #29.#31 // java/lang/StringBuilder."":(Ljava/lang/String;)V │ │ │ │ + #33 = Utf8 substring │ │ │ │ + #34 = Utf8 (I)Ljava/lang/String; │ │ │ │ + #35 = NameAndType #33:#34 // substring:(I)Ljava/lang/String; │ │ │ │ + #36 = Methodref #21.#35 // java/lang/String.substring:(I)Ljava/lang/String; │ │ │ │ + #37 = Utf8 append │ │ │ │ + #38 = Utf8 (Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ + #39 = NameAndType #37:#38 // append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ + #40 = Methodref #29.#39 // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ + #41 = Utf8 toString │ │ │ │ + #42 = Utf8 ()Ljava/lang/String; │ │ │ │ + #43 = NameAndType #41:#42 // toString:()Ljava/lang/String; │ │ │ │ + #44 = Methodref #29.#43 // java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ + #45 = Float 8.8E-44f │ │ │ │ + #46 = Utf8 indexOf │ │ │ │ + #47 = Utf8 (II)I │ │ │ │ + #48 = NameAndType #46:#47 // indexOf:(II)I │ │ │ │ + #49 = Methodref #21.#48 // java/lang/String.indexOf:(II)I │ │ │ │ + #50 = Utf8 com/google/zxing/client/result/TelParsedResult │ │ │ │ + #51 = Class #50 // com/google/zxing/client/result/TelParsedResult │ │ │ │ + #52 = Utf8 (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ + #53 = NameAndType #5:#52 // "":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ + #54 = Methodref #51.#53 // com/google/zxing/client/result/TelParsedResult."":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ + #55 = Utf8 (II)Ljava/lang/String; │ │ │ │ + #56 = NameAndType #33:#55 // substring:(II)Ljava/lang/String; │ │ │ │ + #57 = Methodref #21.#56 // java/lang/String.substring:(II)Ljava/lang/String; │ │ │ │ + #58 = Utf8 Code │ │ │ │ + #59 = Utf8 (Lcom/google/zxing/Result;)Lcom/google/zxing/client/result/ParsedResult; │ │ │ │ { │ │ │ │ public com.google.zxing.client.result.TelResultParser(); │ │ │ │ descriptor: ()V │ │ │ │ flags: ACC_PUBLIC │ │ │ │ Code: │ │ │ │ stack=300, locals=1, args_size=1 │ │ │ │ 0: aload_0 │ │ │ │ @@ -113,60 +115,57 @@ │ │ │ │ 48: ldc #27 // String TEL: │ │ │ │ 50: astore 5 │ │ │ │ 52: aload 4 │ │ │ │ 54: aload 5 │ │ │ │ 56: invokevirtual #25 // Method java/lang/String.startsWith:(Ljava/lang/String;)Z │ │ │ │ 59: istore 6 │ │ │ │ 61: iload 6 │ │ │ │ - 63: ifeq 157 │ │ │ │ + 63: ifeq 150 │ │ │ │ 66: new #29 // class java/lang/StringBuilder │ │ │ │ 69: astore 5 │ │ │ │ 71: aload 5 │ │ │ │ - 73: invokespecial #30 // Method java/lang/StringBuilder."":()V │ │ │ │ - 76: aload 5 │ │ │ │ - 78: ldc #19 // String tel: │ │ │ │ - 80: invokevirtual #34 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - 83: astore 5 │ │ │ │ - 85: aload 4 │ │ │ │ - 87: iload_3 │ │ │ │ - 88: invokevirtual #38 // Method java/lang/String.substring:(I)Ljava/lang/String; │ │ │ │ - 91: astore 7 │ │ │ │ - 93: aload 5 │ │ │ │ - 95: aload 7 │ │ │ │ - 97: invokevirtual #34 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - 100: astore 5 │ │ │ │ - 102: aload 5 │ │ │ │ - 104: invokevirtual #42 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ - 107: astore 8 │ │ │ │ - 109: bipush 63 │ │ │ │ - 111: istore 6 │ │ │ │ - 113: aload 4 │ │ │ │ - 115: iload 6 │ │ │ │ - 117: iload_3 │ │ │ │ - 118: invokevirtual #47 // Method java/lang/String.indexOf:(II)I │ │ │ │ - 121: istore 9 │ │ │ │ - 123: iload 9 │ │ │ │ - 125: ifge 164 │ │ │ │ - 128: aload 4 │ │ │ │ - 130: iload_3 │ │ │ │ - 131: invokevirtual #38 // Method java/lang/String.substring:(I)Ljava/lang/String; │ │ │ │ - 134: astore 10 │ │ │ │ - 136: new #49 // class com/google/zxing/client/result/TelParsedResult │ │ │ │ - 139: astore 5 │ │ │ │ - 141: aload 5 │ │ │ │ - 143: aload 10 │ │ │ │ - 145: aload 8 │ │ │ │ - 147: aconst_null │ │ │ │ - 148: invokespecial #52 // Method com/google/zxing/client/result/TelParsedResult."":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ - 151: aload 5 │ │ │ │ - 153: astore_2 │ │ │ │ - 154: goto 46 │ │ │ │ + 73: ldc #19 // String tel: │ │ │ │ + 75: invokespecial #32 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V │ │ │ │ + 78: aload 4 │ │ │ │ + 80: iload_3 │ │ │ │ + 81: invokevirtual #36 // Method java/lang/String.substring:(I)Ljava/lang/String; │ │ │ │ + 84: astore 7 │ │ │ │ + 86: aload 5 │ │ │ │ + 88: aload 7 │ │ │ │ + 90: invokevirtual #40 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ + 93: astore 5 │ │ │ │ + 95: aload 5 │ │ │ │ + 97: invokevirtual #44 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ + 100: astore 8 │ │ │ │ + 102: bipush 63 │ │ │ │ + 104: istore 6 │ │ │ │ + 106: aload 4 │ │ │ │ + 108: iload 6 │ │ │ │ + 110: iload_3 │ │ │ │ + 111: invokevirtual #49 // Method java/lang/String.indexOf:(II)I │ │ │ │ + 114: istore 9 │ │ │ │ + 116: iload 9 │ │ │ │ + 118: ifge 157 │ │ │ │ + 121: aload 4 │ │ │ │ + 123: iload_3 │ │ │ │ + 124: invokevirtual #36 // Method java/lang/String.substring:(I)Ljava/lang/String; │ │ │ │ + 127: astore 10 │ │ │ │ + 129: new #51 // class com/google/zxing/client/result/TelParsedResult │ │ │ │ + 132: astore 5 │ │ │ │ + 134: aload 5 │ │ │ │ + 136: aload 10 │ │ │ │ + 138: aload 8 │ │ │ │ + 140: aconst_null │ │ │ │ + 141: invokespecial #54 // Method com/google/zxing/client/result/TelParsedResult."":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ + 144: aload 5 │ │ │ │ + 146: astore_2 │ │ │ │ + 147: goto 46 │ │ │ │ + 150: aload 4 │ │ │ │ + 152: astore 8 │ │ │ │ + 154: goto 102 │ │ │ │ 157: aload 4 │ │ │ │ - 159: astore 8 │ │ │ │ - 161: goto 109 │ │ │ │ - 164: aload 4 │ │ │ │ - 166: iload_3 │ │ │ │ - 167: iload 9 │ │ │ │ - 169: invokevirtual #55 // Method java/lang/String.substring:(II)Ljava/lang/String; │ │ │ │ - 172: astore 10 │ │ │ │ - 174: goto 136 │ │ │ │ + 159: iload_3 │ │ │ │ + 160: iload 9 │ │ │ │ + 162: invokevirtual #57 // Method java/lang/String.substring:(II)Ljava/lang/String; │ │ │ │ + 165: astore 10 │ │ │ │ + 167: goto 129 │ │ │ │ } │ │ ├── com/google/zxing/client/result/URIParsedResult.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -67,19 +67,19 @@ │ │ │ │ #62 = Methodref #40.#61 // java/lang/String.indexOf:(I)I │ │ │ │ #63 = Utf8 isColonFollowedByPortNumber │ │ │ │ #64 = Utf8 (Ljava/lang/String;I)Z │ │ │ │ #65 = NameAndType #63:#64 // isColonFollowedByPortNumber:(Ljava/lang/String;I)Z │ │ │ │ #66 = Methodref #2.#65 // com/google/zxing/client/result/URIParsedResult.isColonFollowedByPortNumber:(Ljava/lang/String;I)Z │ │ │ │ #67 = Utf8 java/lang/StringBuilder │ │ │ │ #68 = Class #67 // java/lang/StringBuilder │ │ │ │ - #69 = Utf8 ()V │ │ │ │ - #70 = NameAndType #26:#69 // "":()V │ │ │ │ - #71 = Methodref #68.#70 // java/lang/StringBuilder."":()V │ │ │ │ - #72 = Utf8 http:// │ │ │ │ - #73 = String #72 // http:// │ │ │ │ + #69 = Utf8 http:// │ │ │ │ + #70 = String #69 // http:// │ │ │ │ + #71 = Utf8 (Ljava/lang/String;)V │ │ │ │ + #72 = NameAndType #26:#71 // "":(Ljava/lang/String;)V │ │ │ │ + #73 = Methodref #68.#72 // java/lang/StringBuilder."":(Ljava/lang/String;)V │ │ │ │ #74 = Utf8 append │ │ │ │ #75 = Utf8 (Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ #76 = NameAndType #74:#75 // append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ #77 = Methodref #68.#76 // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ #78 = Utf8 toString │ │ │ │ #79 = NameAndType #78:#56 // toString:()Ljava/lang/String; │ │ │ │ #80 = Methodref #68.#79 // java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ @@ -99,19 +99,20 @@ │ │ │ │ #94 = Class #93 // java/util/regex/Matcher │ │ │ │ #95 = Utf8 find │ │ │ │ #96 = Utf8 ()Z │ │ │ │ #97 = NameAndType #95:#96 // find:()Z │ │ │ │ #98 = Methodref #94.#97 // java/util/regex/Matcher.find:()Z │ │ │ │ #99 = Utf8 Code │ │ │ │ #100 = Utf8 │ │ │ │ - #101 = Utf8 (Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ - #102 = Utf8 getDisplayResult │ │ │ │ - #103 = Utf8 getTitle │ │ │ │ - #104 = Utf8 getURI │ │ │ │ - #105 = Utf8 isPossiblyMaliciousURI │ │ │ │ + #101 = Utf8 ()V │ │ │ │ + #102 = Utf8 (Ljava/lang/String;Ljava/lang/String;)V │ │ │ │ + #103 = Utf8 getDisplayResult │ │ │ │ + #104 = Utf8 getTitle │ │ │ │ + #105 = Utf8 getURI │ │ │ │ + #106 = Utf8 isPossiblyMaliciousURI │ │ │ │ { │ │ │ │ private static final java.util.regex.Pattern USER_IN_HOST; │ │ │ │ descriptor: Ljava/util/regex/Pattern; │ │ │ │ flags: ACC_PRIVATE, ACC_STATIC, ACC_FINAL │ │ │ │ │ │ │ │ private final java.lang.String title; │ │ │ │ descriptor: Ljava/lang/String; │ │ │ │ @@ -200,32 +201,31 @@ │ │ │ │ 14: iload_2 │ │ │ │ 15: iflt 28 │ │ │ │ 18: aload_0 │ │ │ │ 19: iload_2 │ │ │ │ 20: invokestatic #66 // Method isColonFollowedByPortNumber:(Ljava/lang/String;I)Z │ │ │ │ 23: istore_1 │ │ │ │ 24: iload_1 │ │ │ │ - 25: ifeq 56 │ │ │ │ + 25: ifeq 53 │ │ │ │ 28: new #68 // class java/lang/StringBuilder │ │ │ │ 31: astore_3 │ │ │ │ - 32: aload_3 │ │ │ │ - 33: invokespecial #71 // Method java/lang/StringBuilder."":()V │ │ │ │ - 36: ldc #73 // String http:// │ │ │ │ - 38: astore 4 │ │ │ │ - 40: aload_3 │ │ │ │ - 41: aload 4 │ │ │ │ - 43: invokevirtual #77 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - 46: aload_0 │ │ │ │ - 47: invokevirtual #77 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - 50: astore_3 │ │ │ │ - 51: aload_3 │ │ │ │ - 52: invokevirtual #80 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ - 55: astore_0 │ │ │ │ - 56: aload_0 │ │ │ │ - 57: areturn │ │ │ │ + 32: ldc #70 // String http:// │ │ │ │ + 34: astore 4 │ │ │ │ + 36: aload_3 │ │ │ │ + 37: aload 4 │ │ │ │ + 39: invokespecial #73 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V │ │ │ │ + 42: aload_3 │ │ │ │ + 43: aload_0 │ │ │ │ + 44: invokevirtual #77 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ + 47: astore_3 │ │ │ │ + 48: aload_3 │ │ │ │ + 49: invokevirtual #80 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ + 52: astore_0 │ │ │ │ + 53: aload_0 │ │ │ │ + 54: areturn │ │ │ │ │ │ │ │ public java.lang.String getDisplayResult(); │ │ │ │ descriptor: ()Ljava/lang/String; │ │ │ │ flags: ACC_PUBLIC │ │ │ │ Code: │ │ │ │ stack=300, locals=2, args_size=1 │ │ │ │ 0: new #68 // class java/lang/StringBuilder │ │ ├── com/google/zxing/client/result/URIResultParser.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -8,32 +8,33 @@ │ │ │ │ public final class URIResultParser extends ResultParser │ │ │ │ { │ │ │ │ private static final Pattern URL_WITHOUT_PROTOCOL_PATTERN; │ │ │ │ private static final Pattern URL_WITH_PROTOCOL_PATTERN; │ │ │ │ │ │ │ │ static { │ │ │ │ URL_WITH_PROTOCOL_PATTERN = Pattern.compile("[a-zA-Z][a-zA-Z0-9+-.]+:"); │ │ │ │ - URL_WITHOUT_PROTOCOL_PATTERN = Pattern.compile("([a-zA-Z0-9\\-]+\\.)+[a-zA-Z]{2,}(:\\d{1,5})?(/|\\?|$)"); │ │ │ │ + URL_WITHOUT_PROTOCOL_PATTERN = Pattern.compile("([a-zA-Z0-9\\-]+\\.){1,6}[a-zA-Z]{2,}(:\\d{1,5})?(/|\\?|$)"); │ │ │ │ } │ │ │ │ │ │ │ │ static boolean isBasicallyValidURI(final String s) { │ │ │ │ - boolean b = true; │ │ │ │ - if (s.contains(" ")) { │ │ │ │ - b = false; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ + final boolean b = true; │ │ │ │ + boolean b2 = false; │ │ │ │ + if (!s.contains(" ")) { │ │ │ │ final Matcher matcher = URIResultParser.URL_WITH_PROTOCOL_PATTERN.matcher(s); │ │ │ │ - if (!matcher.find() || matcher.start() != 0) { │ │ │ │ + if (matcher.find() && matcher.start() == 0) { │ │ │ │ + b2 = b; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ final Matcher matcher2 = URIResultParser.URL_WITHOUT_PROTOCOL_PATTERN.matcher(s); │ │ │ │ - if (!matcher2.find() || matcher2.start() != 0) { │ │ │ │ - b = false; │ │ │ │ + if (matcher2.find() && matcher2.start() == 0) { │ │ │ │ + b2 = b; │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ - return b; │ │ │ │ + return b2; │ │ │ │ } │ │ │ │ │ │ │ │ public URIParsedResult parse(final Result result) { │ │ │ │ final String massagedText = getMassagedText(result); │ │ │ │ URIParsedResult uriParsedResult; │ │ │ │ if (massagedText.startsWith("URL:") || massagedText.startsWith("URI:")) { │ │ │ │ uriParsedResult = new URIParsedResult(massagedText.substring(4).trim(), (String)null); │ │ ├── com/google/zxing/client/result/VCardResultParser.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -82,35 +82,36 @@ │ │ │ │ } │ │ │ │ } │ │ │ │ maybeAppendFragment(byteArrayOutputStream, s, sb); │ │ │ │ return sb.toString(); │ │ │ │ } │ │ │ │ │ │ │ │ private static void formatNames(final Iterable iterable) { │ │ │ │ + final int n = 4; │ │ │ │ if (iterable != null) { │ │ │ │ for (final List list : iterable) { │ │ │ │ final String s = (String)list.get(0); │ │ │ │ final String[] array = new String[5]; │ │ │ │ - int n = 0; │ │ │ │ + int n2 = 0; │ │ │ │ int i; │ │ │ │ int index; │ │ │ │ - for (i = 0; i < array.length - 1; ++i, n = index + 1) { │ │ │ │ - index = s.indexOf(59, n); │ │ │ │ + for (i = 0; i < n; ++i, n2 = index + 1) { │ │ │ │ + index = s.indexOf(59, n2); │ │ │ │ if (index < 0) { │ │ │ │ break; │ │ │ │ } │ │ │ │ - array[i] = s.substring(n, index); │ │ │ │ + array[i] = s.substring(n2, index); │ │ │ │ } │ │ │ │ - array[i] = s.substring(n); │ │ │ │ + array[i] = s.substring(n2); │ │ │ │ final StringBuilder sb = new StringBuilder(100); │ │ │ │ maybeAppendComponent(array, 3, sb); │ │ │ │ maybeAppendComponent(array, 1, sb); │ │ │ │ maybeAppendComponent(array, 2, sb); │ │ │ │ maybeAppendComponent(array, 0, sb); │ │ │ │ - maybeAppendComponent(array, 4, sb); │ │ │ │ + maybeAppendComponent(array, n, sb); │ │ │ │ list.set(0, sb.toString().trim()); │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ private static boolean isLikeVCardDate(final CharSequence charSequence) { │ │ │ │ return charSequence == null || VCardResultParser.VCARD_LIKE_DATE.matcher(charSequence).matches(); │ │ │ │ @@ -180,30 +181,30 @@ │ │ │ │ } │ │ │ │ else { │ │ │ │ final char char2; │ │ │ │ final int n3; │ │ │ │ final int n4; │ │ │ │ final char char3; │ │ │ │ final int n5; │ │ │ │ - if (!b3 || ((index < 1 || (char2 = s.charAt(index - 1)) != (n3 = 61)) && (index < (n4 = 2) || (char3 = s.charAt(index - 2)) != (n5 = 61)))) { │ │ │ │ + if (!b3 || ((index <= 0 || (char2 = s.charAt(index - 1)) != (n3 = 61)) && (index < (n4 = 2) || (char3 = s.charAt(index - 2)) != (n5 = 61)))) { │ │ │ │ break; │ │ │ │ } │ │ │ │ end = index + 1; │ │ │ │ } │ │ │ │ } │ │ │ │ if (index < 0) { │ │ │ │ i = length; │ │ │ │ } │ │ │ │ else if (index > n) { │ │ │ │ if (list == null) { │ │ │ │ list = new ArrayList>(1); │ │ │ │ } │ │ │ │ final char char4; │ │ │ │ final int n6; │ │ │ │ - if (index >= 1 && (char4 = s.charAt(index - 1)) == (n6 = 13)) { │ │ │ │ + if (index > 0 && (char4 = s.charAt(index - 1)) == (n6 = 13)) { │ │ │ │ --index; │ │ │ │ } │ │ │ │ String s6 = s.substring(n, index); │ │ │ │ if (b) { │ │ │ │ s6 = s6.trim(); │ │ │ │ } │ │ │ │ String s7; │ │ ├── com/google/zxing/client/result/VEventResultParser.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -241,210 +241,210 @@ │ │ │ │ 39: aload_0 │ │ │ │ 40: areturn │ │ │ │ │ │ │ │ public com.google.zxing.client.result.CalendarParsedResult parse(com.google.zxing.Result); │ │ │ │ descriptor: (Lcom/google/zxing/Result;)Lcom/google/zxing/client/result/CalendarParsedResult; │ │ │ │ flags: ACC_PUBLIC │ │ │ │ Code: │ │ │ │ - stack=300, locals=23, args_size=2 │ │ │ │ + stack=300, locals=22, args_size=2 │ │ │ │ 0: aload_1 │ │ │ │ 1: invokestatic #50 // Method getMassagedText:(Lcom/google/zxing/Result;)Ljava/lang/String; │ │ │ │ 4: astore_2 │ │ │ │ 5: ldc #52 // String BEGIN:VEVENT │ │ │ │ 7: astore_3 │ │ │ │ 8: aload_2 │ │ │ │ 9: aload_3 │ │ │ │ 10: invokevirtual #56 // Method java/lang/String.indexOf:(Ljava/lang/String;)I │ │ │ │ 13: istore 4 │ │ │ │ 15: iload 4 │ │ │ │ 17: ifge 27 │ │ │ │ 20: iconst_0 │ │ │ │ - 21: istore 5 │ │ │ │ + 21: istore 4 │ │ │ │ 23: aconst_null │ │ │ │ 24: astore_3 │ │ │ │ 25: aload_3 │ │ │ │ 26: areturn │ │ │ │ 27: iconst_1 │ │ │ │ - 28: istore 6 │ │ │ │ + 28: istore 5 │ │ │ │ 30: ldc #58 // String SUMMARY │ │ │ │ 32: aload_2 │ │ │ │ - 33: iload 6 │ │ │ │ + 33: iload 5 │ │ │ │ 35: invokestatic #62 // Method matchSingleVCardPrefixedField:(Ljava/lang/CharSequence;Ljava/lang/String;Z)Ljava/lang/String; │ │ │ │ - 38: astore 7 │ │ │ │ + 38: astore 6 │ │ │ │ 40: ldc #64 // String DTSTART │ │ │ │ 42: astore_3 │ │ │ │ 43: iconst_1 │ │ │ │ - 44: istore 8 │ │ │ │ - 46: iload 8 │ │ │ │ - 48: istore 6 │ │ │ │ + 44: istore 7 │ │ │ │ + 46: iload 7 │ │ │ │ + 48: istore 5 │ │ │ │ 50: aload_3 │ │ │ │ 51: aload_2 │ │ │ │ - 52: iload 8 │ │ │ │ + 52: iload 7 │ │ │ │ 54: invokestatic #62 // Method matchSingleVCardPrefixedField:(Ljava/lang/CharSequence;Ljava/lang/String;Z)Ljava/lang/String; │ │ │ │ - 57: astore 9 │ │ │ │ - 59: aload 9 │ │ │ │ + 57: astore 8 │ │ │ │ + 59: aload 8 │ │ │ │ 61: ifnonnull 72 │ │ │ │ 64: iconst_0 │ │ │ │ - 65: istore 5 │ │ │ │ + 65: istore 4 │ │ │ │ 67: aconst_null │ │ │ │ 68: astore_3 │ │ │ │ 69: goto 25 │ │ │ │ 72: iconst_1 │ │ │ │ - 73: istore 6 │ │ │ │ + 73: istore 5 │ │ │ │ 75: ldc #66 // String DTEND │ │ │ │ 77: aload_2 │ │ │ │ - 78: iload 6 │ │ │ │ + 78: iload 5 │ │ │ │ 80: invokestatic #62 // Method matchSingleVCardPrefixedField:(Ljava/lang/CharSequence;Ljava/lang/String;Z)Ljava/lang/String; │ │ │ │ - 83: astore 10 │ │ │ │ + 83: astore 9 │ │ │ │ 85: iconst_1 │ │ │ │ - 86: istore 6 │ │ │ │ + 86: istore 5 │ │ │ │ 88: ldc #68 // String DURATION │ │ │ │ 90: aload_2 │ │ │ │ - 91: iload 6 │ │ │ │ + 91: iload 5 │ │ │ │ 93: invokestatic #62 // Method matchSingleVCardPrefixedField:(Ljava/lang/CharSequence;Ljava/lang/String;Z)Ljava/lang/String; │ │ │ │ - 96: astore 11 │ │ │ │ + 96: astore 10 │ │ │ │ 98: iconst_1 │ │ │ │ - 99: istore 6 │ │ │ │ + 99: istore 5 │ │ │ │ 101: ldc #70 // String LOCATION │ │ │ │ 103: aload_2 │ │ │ │ - 104: iload 6 │ │ │ │ + 104: iload 5 │ │ │ │ 106: invokestatic #62 // Method matchSingleVCardPrefixedField:(Ljava/lang/CharSequence;Ljava/lang/String;Z)Ljava/lang/String; │ │ │ │ - 109: astore 12 │ │ │ │ + 109: astore 11 │ │ │ │ 111: iconst_1 │ │ │ │ - 112: istore 6 │ │ │ │ + 112: istore 5 │ │ │ │ 114: ldc #72 // String ORGANIZER │ │ │ │ 116: aload_2 │ │ │ │ - 117: iload 6 │ │ │ │ + 117: iload 5 │ │ │ │ 119: invokestatic #62 // Method matchSingleVCardPrefixedField:(Ljava/lang/CharSequence;Ljava/lang/String;Z)Ljava/lang/String; │ │ │ │ 122: invokestatic #76 // Method stripMailto:(Ljava/lang/String;)Ljava/lang/String; │ │ │ │ - 125: astore 13 │ │ │ │ + 125: astore 12 │ │ │ │ 127: ldc #78 // String ATTENDEE │ │ │ │ 129: astore_3 │ │ │ │ 130: iconst_1 │ │ │ │ - 131: istore 8 │ │ │ │ - 133: iload 8 │ │ │ │ - 135: istore 6 │ │ │ │ + 131: istore 7 │ │ │ │ + 133: iload 7 │ │ │ │ + 135: istore 5 │ │ │ │ 137: aload_3 │ │ │ │ 138: aload_2 │ │ │ │ - 139: iload 8 │ │ │ │ + 139: iload 7 │ │ │ │ 141: invokestatic #81 // Method matchVCardPrefixedField:(Ljava/lang/CharSequence;Ljava/lang/String;Z)[Ljava/lang/String; │ │ │ │ - 144: astore 14 │ │ │ │ - 146: aload 14 │ │ │ │ + 144: astore 13 │ │ │ │ + 146: aload 13 │ │ │ │ 148: ifnull 190 │ │ │ │ 151: iconst_0 │ │ │ │ - 152: istore 15 │ │ │ │ - 154: aload 14 │ │ │ │ + 152: istore 14 │ │ │ │ + 154: aload 13 │ │ │ │ 156: arraylength │ │ │ │ - 157: istore 5 │ │ │ │ - 159: iload 15 │ │ │ │ - 161: iload 5 │ │ │ │ + 157: istore 4 │ │ │ │ + 159: iload 14 │ │ │ │ + 161: iload 4 │ │ │ │ 163: if_icmpge 190 │ │ │ │ - 166: aload 14 │ │ │ │ - 168: iload 15 │ │ │ │ + 166: aload 13 │ │ │ │ + 168: iload 14 │ │ │ │ 170: aaload │ │ │ │ 171: invokestatic #76 // Method stripMailto:(Ljava/lang/String;)Ljava/lang/String; │ │ │ │ 174: astore_3 │ │ │ │ - 175: aload 14 │ │ │ │ - 177: iload 15 │ │ │ │ + 175: aload 13 │ │ │ │ + 177: iload 14 │ │ │ │ 179: aload_3 │ │ │ │ 180: aastore │ │ │ │ - 181: iload 15 │ │ │ │ + 181: iload 14 │ │ │ │ 183: iconst_1 │ │ │ │ 184: iadd │ │ │ │ - 185: istore 15 │ │ │ │ + 185: istore 14 │ │ │ │ 187: goto 154 │ │ │ │ 190: iconst_1 │ │ │ │ - 191: istore 6 │ │ │ │ + 191: istore 5 │ │ │ │ 193: ldc #83 // String DESCRIPTION │ │ │ │ 195: aload_2 │ │ │ │ - 196: iload 6 │ │ │ │ + 196: iload 5 │ │ │ │ 198: invokestatic #62 // Method matchSingleVCardPrefixedField:(Ljava/lang/CharSequence;Ljava/lang/String;Z)Ljava/lang/String; │ │ │ │ - 201: astore 16 │ │ │ │ + 201: astore 15 │ │ │ │ 203: ldc #85 // String GEO │ │ │ │ 205: astore_3 │ │ │ │ 206: iconst_1 │ │ │ │ - 207: istore 8 │ │ │ │ - 209: iload 8 │ │ │ │ - 211: istore 6 │ │ │ │ + 207: istore 7 │ │ │ │ + 209: iload 7 │ │ │ │ + 211: istore 5 │ │ │ │ 213: aload_3 │ │ │ │ 214: aload_2 │ │ │ │ - 215: iload 8 │ │ │ │ + 215: iload 7 │ │ │ │ 217: invokestatic #62 // Method matchSingleVCardPrefixedField:(Ljava/lang/CharSequence;Ljava/lang/String;Z)Ljava/lang/String; │ │ │ │ - 220: astore 17 │ │ │ │ - 222: aload 17 │ │ │ │ + 220: astore 16 │ │ │ │ + 222: aload 16 │ │ │ │ 224: ifnonnull 277 │ │ │ │ 227: dconst_0 │ │ │ │ 228: dconst_0 │ │ │ │ 229: ddiv │ │ │ │ - 230: dstore 18 │ │ │ │ + 230: dstore 17 │ │ │ │ 232: dconst_0 │ │ │ │ 233: dconst_0 │ │ │ │ 234: ddiv │ │ │ │ - 235: dstore 20 │ │ │ │ + 235: dstore 19 │ │ │ │ 237: new #89 // class com/google/zxing/client/result/CalendarParsedResult │ │ │ │ 240: astore_3 │ │ │ │ 241: aload_3 │ │ │ │ - 242: aload 7 │ │ │ │ - 244: aload 9 │ │ │ │ - 246: aload 10 │ │ │ │ - 248: aload 11 │ │ │ │ - 250: aload 12 │ │ │ │ - 252: aload 13 │ │ │ │ - 254: aload 14 │ │ │ │ - 256: aload 16 │ │ │ │ - 258: dload 18 │ │ │ │ - 260: dload 20 │ │ │ │ + 242: aload 6 │ │ │ │ + 244: aload 8 │ │ │ │ + 246: aload 9 │ │ │ │ + 248: aload 10 │ │ │ │ + 250: aload 11 │ │ │ │ + 252: aload 12 │ │ │ │ + 254: aload 13 │ │ │ │ + 256: aload 15 │ │ │ │ + 258: dload 17 │ │ │ │ + 260: dload 19 │ │ │ │ 262: invokespecial #92 // Method com/google/zxing/client/result/CalendarParsedResult."":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;DD)V │ │ │ │ 265: goto 25 │ │ │ │ - 268: pop │ │ │ │ + 268: astore_3 │ │ │ │ 269: iconst_0 │ │ │ │ - 270: istore 5 │ │ │ │ + 270: istore 4 │ │ │ │ 272: aconst_null │ │ │ │ 273: astore_3 │ │ │ │ 274: goto 25 │ │ │ │ 277: bipush 59 │ │ │ │ - 279: istore 5 │ │ │ │ - 281: aload 17 │ │ │ │ - 283: iload 5 │ │ │ │ + 279: istore 4 │ │ │ │ + 281: aload 16 │ │ │ │ + 283: iload 4 │ │ │ │ 285: invokevirtual #96 // Method java/lang/String.indexOf:(I)I │ │ │ │ - 288: istore 22 │ │ │ │ - 290: iload 22 │ │ │ │ + 288: istore 21 │ │ │ │ + 290: iload 21 │ │ │ │ 292: ifge 303 │ │ │ │ 295: iconst_0 │ │ │ │ - 296: istore 5 │ │ │ │ + 296: istore 4 │ │ │ │ 298: aconst_null │ │ │ │ 299: astore_3 │ │ │ │ 300: goto 25 │ │ │ │ 303: iconst_0 │ │ │ │ - 304: istore 5 │ │ │ │ + 304: istore 4 │ │ │ │ 306: aconst_null │ │ │ │ 307: astore_3 │ │ │ │ - 308: aload 17 │ │ │ │ + 308: aload 16 │ │ │ │ 310: iconst_0 │ │ │ │ - 311: iload 22 │ │ │ │ + 311: iload 21 │ │ │ │ 313: invokevirtual #99 // Method java/lang/String.substring:(II)Ljava/lang/String; │ │ │ │ 316: astore_3 │ │ │ │ 317: aload_3 │ │ │ │ 318: invokestatic #105 // Method java/lang/Double.parseDouble:(Ljava/lang/String;)D │ │ │ │ - 321: dstore 18 │ │ │ │ - 323: iload 22 │ │ │ │ + 321: dstore 17 │ │ │ │ + 323: iload 21 │ │ │ │ 325: iconst_1 │ │ │ │ 326: iadd │ │ │ │ - 327: istore 5 │ │ │ │ - 329: aload 17 │ │ │ │ - 331: iload 5 │ │ │ │ + 327: istore 4 │ │ │ │ + 329: aload 16 │ │ │ │ + 331: iload 4 │ │ │ │ 333: invokevirtual #46 // Method java/lang/String.substring:(I)Ljava/lang/String; │ │ │ │ 336: astore_3 │ │ │ │ 337: aload_3 │ │ │ │ 338: invokestatic #105 // Method java/lang/Double.parseDouble:(Ljava/lang/String;)D │ │ │ │ - 341: dstore 20 │ │ │ │ + 341: dstore 19 │ │ │ │ 343: goto 237 │ │ │ │ - 346: pop │ │ │ │ + 346: astore_3 │ │ │ │ 347: iconst_0 │ │ │ │ - 348: istore 5 │ │ │ │ + 348: istore 4 │ │ │ │ 350: aconst_null │ │ │ │ 351: astore_3 │ │ │ │ 352: goto 25 │ │ │ │ Exception table: │ │ │ │ from to target type │ │ │ │ 237 240 268 Class java/lang/IllegalArgumentException │ │ │ │ 260 265 268 Class java/lang/IllegalArgumentException │ │ ├── com/google/zxing/client/result/VINResultParser.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -172,15 +172,15 @@ │ │ │ │ n = c - 48; │ │ │ │ } │ │ │ │ return n; │ │ │ │ } │ │ │ │ │ │ │ │ private static int vinPositionWeight(final int n) { │ │ │ │ int n2 = 10; │ │ │ │ - if (n >= 1 && n <= 7) { │ │ │ │ + if (n > 0 && n <= 7) { │ │ │ │ n2 = 9 - n; │ │ │ │ } │ │ │ │ else if (n != 8) { │ │ │ │ if (n == 9) { │ │ │ │ n2 = 0; │ │ │ │ } │ │ │ │ else { │ │ ├── com/google/zxing/common/GlobalHistogramBinarizer.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -87,15 +87,15 @@ │ │ │ │ final int width = luminanceSource.getWidth(); │ │ │ │ final int height = luminanceSource.getHeight(); │ │ │ │ final BitMatrix bitMatrix = new BitMatrix(width, height); │ │ │ │ this.initArrays(width); │ │ │ │ final int[] buckets = this.buckets; │ │ │ │ for (int i = 1; i < 5; ++i) { │ │ │ │ final byte[] row = luminanceSource.getRow(height * i / 5, this.luminances); │ │ │ │ - for (int n = width * 4 / 5, j = width / 5; j < n; ++j) { │ │ │ │ + for (int n = (width << 2) / 5, j = width / 5; j < n; ++j) { │ │ │ │ final int n2 = (row[j] & 0xFF) >> 3; │ │ │ │ ++buckets[n2]; │ │ │ │ } │ │ │ │ } │ │ │ │ final int estimateBlackPoint = estimateBlackPoint(buckets); │ │ │ │ final byte[] matrix = luminanceSource.getMatrix(); │ │ │ │ for (int k = 0; k < height; ++k) { │ │ │ │ @@ -122,20 +122,29 @@ │ │ │ │ final byte[] row = luminanceSource.getRow(n, this.luminances); │ │ │ │ final int[] buckets = this.buckets; │ │ │ │ for (int i = 0; i < width; ++i) { │ │ │ │ final int n2 = (row[i] & 0xFF) >> 3; │ │ │ │ ++buckets[n2]; │ │ │ │ } │ │ │ │ final int estimateBlackPoint = estimateBlackPoint(buckets); │ │ │ │ - int n3 = row[0] & 0xFF; │ │ │ │ - int n4 = row[1] & 0xFF; │ │ │ │ - for (int j = 1; j < width - 1; ++j) { │ │ │ │ - final int n5 = row[j + 1] & 0xFF; │ │ │ │ - if ((n4 * 4 - n3 - n5) / 2 < estimateBlackPoint) { │ │ │ │ - bitArray.set(j); │ │ │ │ + if (width < 3) { │ │ │ │ + for (int j = 0; j < width; ++j) { │ │ │ │ + if ((row[j] & 0xFF) < estimateBlackPoint) { │ │ │ │ + bitArray.set(j); │ │ │ │ + } │ │ │ │ + } │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + int n3 = row[0] & 0xFF; │ │ │ │ + int n4 = row[1] & 0xFF; │ │ │ │ + for (int k = 1; k < width - 1; ++k) { │ │ │ │ + final int n5 = row[k + 1] & 0xFF; │ │ │ │ + if (((n4 << 2) - n3 - n5) / 2 < estimateBlackPoint) { │ │ │ │ + bitArray.set(k); │ │ │ │ + } │ │ │ │ + n3 = n4; │ │ │ │ + n4 = n5; │ │ │ │ } │ │ │ │ - n3 = n4; │ │ │ │ - n4 = n5; │ │ │ │ } │ │ │ │ return bitArray; │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/datamatrix/DataMatrixReader.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -27,36 +27,37 @@ │ │ │ │ } │ │ │ │ │ │ │ │ public DataMatrixReader() { │ │ │ │ this.decoder = new Decoder(); │ │ │ │ } │ │ │ │ │ │ │ │ private static BitMatrix extractPureBits(final BitMatrix bitMatrix) { │ │ │ │ + final int n = 1; │ │ │ │ final int[] topLeftOnBit = bitMatrix.getTopLeftOnBit(); │ │ │ │ final int[] bottomRightOnBit = bitMatrix.getBottomRightOnBit(); │ │ │ │ if (topLeftOnBit == null || bottomRightOnBit == null) { │ │ │ │ throw NotFoundException.getNotFoundInstance(); │ │ │ │ } │ │ │ │ final int moduleSize = moduleSize(topLeftOnBit, bitMatrix); │ │ │ │ - final int n = topLeftOnBit[1]; │ │ │ │ - final int n2 = bottomRightOnBit[1]; │ │ │ │ - final int n3 = topLeftOnBit[0]; │ │ │ │ - final int n4 = (bottomRightOnBit[0] - n3 + 1) / moduleSize; │ │ │ │ - final int n5 = (n2 - n + 1) / moduleSize; │ │ │ │ - if (n4 <= 0 || n5 <= 0) { │ │ │ │ + final int n2 = topLeftOnBit[n]; │ │ │ │ + final int n3 = bottomRightOnBit[n]; │ │ │ │ + final int n4 = topLeftOnBit[0]; │ │ │ │ + final int n5 = (bottomRightOnBit[0] - n4 + 1) / moduleSize; │ │ │ │ + final int n6 = (n3 - n2 + 1) / moduleSize; │ │ │ │ + if (n5 <= 0 || n6 <= 0) { │ │ │ │ throw NotFoundException.getNotFoundInstance(); │ │ │ │ } │ │ │ │ - final int n6 = moduleSize / 2; │ │ │ │ - final int n7 = n + n6; │ │ │ │ - final int n8 = n3 + n6; │ │ │ │ - final BitMatrix bitMatrix2 = new BitMatrix(n4, n5); │ │ │ │ - for (int i = 0; i < n5; ++i) { │ │ │ │ - final int n9 = n7 + i * moduleSize; │ │ │ │ - for (int j = 0; j < n4; ++j) { │ │ │ │ - if (bitMatrix.get(j * moduleSize + n8, n9)) { │ │ │ │ + final int n7 = moduleSize / 2; │ │ │ │ + final int n8 = n2 + n7; │ │ │ │ + final int n9 = n4 + n7; │ │ │ │ + final BitMatrix bitMatrix2 = new BitMatrix(n5, n6); │ │ │ │ + for (int i = 0; i < n6; ++i) { │ │ │ │ + final int n10 = n8 + i * moduleSize; │ │ │ │ + for (int j = 0; j < n5; ++j) { │ │ │ │ + if (bitMatrix.get(j * moduleSize + n9, n10)) { │ │ │ │ bitMatrix2.set(j, i); │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ return bitMatrix2; │ │ │ │ } │ │ ├── com/google/zxing/datamatrix/DataMatrixWriter.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -94,93 +94,90 @@ │ │ │ │ #89 = Class #88 // com/google/zxing/BarcodeFormat │ │ │ │ #90 = Utf8 DATA_MATRIX │ │ │ │ #91 = Utf8 Lcom/google/zxing/BarcodeFormat; │ │ │ │ #92 = NameAndType #90:#91 // DATA_MATRIX:Lcom/google/zxing/BarcodeFormat; │ │ │ │ #93 = Fieldref #89.#92 // com/google/zxing/BarcodeFormat.DATA_MATRIX:Lcom/google/zxing/BarcodeFormat; │ │ │ │ #94 = Utf8 java/lang/StringBuilder │ │ │ │ #95 = Class #94 // java/lang/StringBuilder │ │ │ │ - #96 = Methodref #95.#9 // java/lang/StringBuilder."":()V │ │ │ │ - #97 = Utf8 Can only encode DATA_MATRIX, but got │ │ │ │ - #98 = String #97 // Can only encode DATA_MATRIX, but got │ │ │ │ + #96 = Utf8 Can only encode DATA_MATRIX, but got │ │ │ │ + #97 = String #96 // Can only encode DATA_MATRIX, but got │ │ │ │ + #98 = Methodref #95.#86 // java/lang/StringBuilder."":(Ljava/lang/String;)V │ │ │ │ #99 = Utf8 append │ │ │ │ - #100 = Utf8 (Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - #101 = NameAndType #99:#100 // append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - #102 = Methodref #95.#101 // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - #103 = Utf8 (Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ - #104 = NameAndType #99:#103 // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ - #105 = Methodref #95.#104 // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ - #106 = Utf8 toString │ │ │ │ - #107 = Utf8 ()Ljava/lang/String; │ │ │ │ - #108 = NameAndType #106:#107 // toString:()Ljava/lang/String; │ │ │ │ - #109 = Methodref #95.#108 // java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ - #110 = Utf8 Requested dimensions are too small: │ │ │ │ - #111 = String #110 // Requested dimensions are too small: │ │ │ │ - #112 = Utf8 (I)Ljava/lang/StringBuilder; │ │ │ │ - #113 = NameAndType #99:#112 // append:(I)Ljava/lang/StringBuilder; │ │ │ │ - #114 = Methodref #95.#113 // java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; │ │ │ │ - #115 = Float 1.68E-43f │ │ │ │ - #116 = Utf8 (C)Ljava/lang/StringBuilder; │ │ │ │ - #117 = NameAndType #99:#116 // append:(C)Ljava/lang/StringBuilder; │ │ │ │ - #118 = Methodref #95.#117 // java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder; │ │ │ │ - #119 = Utf8 com/google/zxing/datamatrix/encoder/SymbolShapeHint │ │ │ │ - #120 = Class #119 // com/google/zxing/datamatrix/encoder/SymbolShapeHint │ │ │ │ - #121 = Utf8 FORCE_NONE │ │ │ │ - #122 = Utf8 Lcom/google/zxing/datamatrix/encoder/SymbolShapeHint; │ │ │ │ - #123 = NameAndType #121:#122 // FORCE_NONE:Lcom/google/zxing/datamatrix/encoder/SymbolShapeHint; │ │ │ │ - #124 = Fieldref #120.#123 // com/google/zxing/datamatrix/encoder/SymbolShapeHint.FORCE_NONE:Lcom/google/zxing/datamatrix/encoder/SymbolShapeHint; │ │ │ │ - #125 = Utf8 com/google/zxing/EncodeHintType │ │ │ │ - #126 = Class #125 // com/google/zxing/EncodeHintType │ │ │ │ - #127 = Utf8 DATA_MATRIX_SHAPE │ │ │ │ - #128 = Utf8 Lcom/google/zxing/EncodeHintType; │ │ │ │ - #129 = NameAndType #127:#128 // DATA_MATRIX_SHAPE:Lcom/google/zxing/EncodeHintType; │ │ │ │ - #130 = Fieldref #126.#129 // com/google/zxing/EncodeHintType.DATA_MATRIX_SHAPE:Lcom/google/zxing/EncodeHintType; │ │ │ │ - #131 = Utf8 java/util/Map │ │ │ │ - #132 = Class #131 // java/util/Map │ │ │ │ - #133 = Utf8 (Ljava/lang/Object;)Ljava/lang/Object; │ │ │ │ - #134 = NameAndType #28:#133 // get:(Ljava/lang/Object;)Ljava/lang/Object; │ │ │ │ - #135 = InterfaceMethodref #132.#134 // java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object; │ │ │ │ - #136 = Utf8 MIN_SIZE │ │ │ │ - #137 = NameAndType #136:#128 // MIN_SIZE:Lcom/google/zxing/EncodeHintType; │ │ │ │ - #138 = Fieldref #126.#137 // com/google/zxing/EncodeHintType.MIN_SIZE:Lcom/google/zxing/EncodeHintType; │ │ │ │ - #139 = Utf8 com/google/zxing/Dimension │ │ │ │ - #140 = Class #139 // com/google/zxing/Dimension │ │ │ │ - #141 = Utf8 MAX_SIZE │ │ │ │ - #142 = NameAndType #141:#128 // MAX_SIZE:Lcom/google/zxing/EncodeHintType; │ │ │ │ - #143 = Fieldref #126.#142 // com/google/zxing/EncodeHintType.MAX_SIZE:Lcom/google/zxing/EncodeHintType; │ │ │ │ - #144 = Utf8 com/google/zxing/datamatrix/encoder/HighLevelEncoder │ │ │ │ - #145 = Class #144 // com/google/zxing/datamatrix/encoder/HighLevelEncoder │ │ │ │ - #146 = Utf8 encodeHighLevel │ │ │ │ - #147 = Utf8 (Ljava/lang/String;Lcom/google/zxing/datamatrix/encoder/SymbolShapeHint;Lcom/google/zxing/Dimension;Lcom/google/zxing/Dimension;)Ljava/lang/String; │ │ │ │ - #148 = NameAndType #146:#147 // encodeHighLevel:(Ljava/lang/String;Lcom/google/zxing/datamatrix/encoder/SymbolShapeHint;Lcom/google/zxing/Dimension;Lcom/google/zxing/Dimension;)Ljava/lang/String; │ │ │ │ - #149 = Methodref #145.#148 // com/google/zxing/datamatrix/encoder/HighLevelEncoder.encodeHighLevel:(Ljava/lang/String;Lcom/google/zxing/datamatrix/encoder/SymbolShapeHint;Lcom/google/zxing/Dimension;Lcom/google/zxing/Dimension;)Ljava/lang/String; │ │ │ │ - #150 = Utf8 length │ │ │ │ - #151 = NameAndType #150:#14 // length:()I │ │ │ │ - #152 = Methodref #76.#151 // java/lang/String.length:()I │ │ │ │ - #153 = Utf8 lookup │ │ │ │ - #154 = Utf8 (ILcom/google/zxing/datamatrix/encoder/SymbolShapeHint;Lcom/google/zxing/Dimension;Lcom/google/zxing/Dimension;Z)Lcom/google/zxing/datamatrix/encoder/SymbolInfo; │ │ │ │ - #155 = NameAndType #153:#154 // lookup:(ILcom/google/zxing/datamatrix/encoder/SymbolShapeHint;Lcom/google/zxing/Dimension;Lcom/google/zxing/Dimension;Z)Lcom/google/zxing/datamatrix/encoder/SymbolInfo; │ │ │ │ - #156 = Methodref #37.#155 // com/google/zxing/datamatrix/encoder/SymbolInfo.lookup:(ILcom/google/zxing/datamatrix/encoder/SymbolShapeHint;Lcom/google/zxing/Dimension;Lcom/google/zxing/Dimension;Z)Lcom/google/zxing/datamatrix/encoder/SymbolInfo; │ │ │ │ - #157 = Utf8 com/google/zxing/datamatrix/encoder/ErrorCorrection │ │ │ │ - #158 = Class #157 // com/google/zxing/datamatrix/encoder/ErrorCorrection │ │ │ │ - #159 = Utf8 encodeECC200 │ │ │ │ - #160 = Utf8 (Ljava/lang/String;Lcom/google/zxing/datamatrix/encoder/SymbolInfo;)Ljava/lang/String; │ │ │ │ - #161 = NameAndType #159:#160 // encodeECC200:(Ljava/lang/String;Lcom/google/zxing/datamatrix/encoder/SymbolInfo;)Ljava/lang/String; │ │ │ │ - #162 = Methodref #158.#161 // com/google/zxing/datamatrix/encoder/ErrorCorrection.encodeECC200:(Ljava/lang/String;Lcom/google/zxing/datamatrix/encoder/SymbolInfo;)Ljava/lang/String; │ │ │ │ - #163 = Utf8 (Ljava/lang/CharSequence;II)V │ │ │ │ - #164 = NameAndType #7:#163 // "":(Ljava/lang/CharSequence;II)V │ │ │ │ - #165 = Methodref #62.#164 // com/google/zxing/datamatrix/encoder/DefaultPlacement."":(Ljava/lang/CharSequence;II)V │ │ │ │ - #166 = Utf8 place │ │ │ │ - #167 = NameAndType #166:#8 // place:()V │ │ │ │ - #168 = Methodref #62.#167 // com/google/zxing/datamatrix/encoder/DefaultPlacement.place:()V │ │ │ │ - #169 = Utf8 encodeLowLevel │ │ │ │ - #170 = Utf8 (Lcom/google/zxing/datamatrix/encoder/DefaultPlacement;Lcom/google/zxing/datamatrix/encoder/SymbolInfo;)Lcom/google/zxing/common/BitMatrix; │ │ │ │ - #171 = NameAndType #169:#170 // encodeLowLevel:(Lcom/google/zxing/datamatrix/encoder/DefaultPlacement;Lcom/google/zxing/datamatrix/encoder/SymbolInfo;)Lcom/google/zxing/common/BitMatrix; │ │ │ │ - #172 = Methodref #2.#171 // com/google/zxing/datamatrix/DataMatrixWriter.encodeLowLevel:(Lcom/google/zxing/datamatrix/encoder/DefaultPlacement;Lcom/google/zxing/datamatrix/encoder/SymbolInfo;)Lcom/google/zxing/common/BitMatrix; │ │ │ │ - #173 = Utf8 Code │ │ │ │ - #174 = Utf8 (Ljava/lang/String;Lcom/google/zxing/BarcodeFormat;II)Lcom/google/zxing/common/BitMatrix; │ │ │ │ + #100 = Utf8 (Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ + #101 = NameAndType #99:#100 // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ + #102 = Methodref #95.#101 // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ + #103 = Utf8 toString │ │ │ │ + #104 = Utf8 ()Ljava/lang/String; │ │ │ │ + #105 = NameAndType #103:#104 // toString:()Ljava/lang/String; │ │ │ │ + #106 = Methodref #95.#105 // java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ + #107 = Utf8 Requested dimensions are too small: │ │ │ │ + #108 = String #107 // Requested dimensions are too small: │ │ │ │ + #109 = Utf8 (I)Ljava/lang/StringBuilder; │ │ │ │ + #110 = NameAndType #99:#109 // append:(I)Ljava/lang/StringBuilder; │ │ │ │ + #111 = Methodref #95.#110 // java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; │ │ │ │ + #112 = Float 1.68E-43f │ │ │ │ + #113 = Utf8 (C)Ljava/lang/StringBuilder; │ │ │ │ + #114 = NameAndType #99:#113 // append:(C)Ljava/lang/StringBuilder; │ │ │ │ + #115 = Methodref #95.#114 // java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder; │ │ │ │ + #116 = Utf8 com/google/zxing/datamatrix/encoder/SymbolShapeHint │ │ │ │ + #117 = Class #116 // com/google/zxing/datamatrix/encoder/SymbolShapeHint │ │ │ │ + #118 = Utf8 FORCE_NONE │ │ │ │ + #119 = Utf8 Lcom/google/zxing/datamatrix/encoder/SymbolShapeHint; │ │ │ │ + #120 = NameAndType #118:#119 // FORCE_NONE:Lcom/google/zxing/datamatrix/encoder/SymbolShapeHint; │ │ │ │ + #121 = Fieldref #117.#120 // com/google/zxing/datamatrix/encoder/SymbolShapeHint.FORCE_NONE:Lcom/google/zxing/datamatrix/encoder/SymbolShapeHint; │ │ │ │ + #122 = Utf8 com/google/zxing/EncodeHintType │ │ │ │ + #123 = Class #122 // com/google/zxing/EncodeHintType │ │ │ │ + #124 = Utf8 DATA_MATRIX_SHAPE │ │ │ │ + #125 = Utf8 Lcom/google/zxing/EncodeHintType; │ │ │ │ + #126 = NameAndType #124:#125 // DATA_MATRIX_SHAPE:Lcom/google/zxing/EncodeHintType; │ │ │ │ + #127 = Fieldref #123.#126 // com/google/zxing/EncodeHintType.DATA_MATRIX_SHAPE:Lcom/google/zxing/EncodeHintType; │ │ │ │ + #128 = Utf8 java/util/Map │ │ │ │ + #129 = Class #128 // java/util/Map │ │ │ │ + #130 = Utf8 (Ljava/lang/Object;)Ljava/lang/Object; │ │ │ │ + #131 = NameAndType #28:#130 // get:(Ljava/lang/Object;)Ljava/lang/Object; │ │ │ │ + #132 = InterfaceMethodref #129.#131 // java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object; │ │ │ │ + #133 = Utf8 MIN_SIZE │ │ │ │ + #134 = NameAndType #133:#125 // MIN_SIZE:Lcom/google/zxing/EncodeHintType; │ │ │ │ + #135 = Fieldref #123.#134 // com/google/zxing/EncodeHintType.MIN_SIZE:Lcom/google/zxing/EncodeHintType; │ │ │ │ + #136 = Utf8 com/google/zxing/Dimension │ │ │ │ + #137 = Class #136 // com/google/zxing/Dimension │ │ │ │ + #138 = Utf8 MAX_SIZE │ │ │ │ + #139 = NameAndType #138:#125 // MAX_SIZE:Lcom/google/zxing/EncodeHintType; │ │ │ │ + #140 = Fieldref #123.#139 // com/google/zxing/EncodeHintType.MAX_SIZE:Lcom/google/zxing/EncodeHintType; │ │ │ │ + #141 = Utf8 com/google/zxing/datamatrix/encoder/HighLevelEncoder │ │ │ │ + #142 = Class #141 // com/google/zxing/datamatrix/encoder/HighLevelEncoder │ │ │ │ + #143 = Utf8 encodeHighLevel │ │ │ │ + #144 = Utf8 (Ljava/lang/String;Lcom/google/zxing/datamatrix/encoder/SymbolShapeHint;Lcom/google/zxing/Dimension;Lcom/google/zxing/Dimension;)Ljava/lang/String; │ │ │ │ + #145 = NameAndType #143:#144 // encodeHighLevel:(Ljava/lang/String;Lcom/google/zxing/datamatrix/encoder/SymbolShapeHint;Lcom/google/zxing/Dimension;Lcom/google/zxing/Dimension;)Ljava/lang/String; │ │ │ │ + #146 = Methodref #142.#145 // com/google/zxing/datamatrix/encoder/HighLevelEncoder.encodeHighLevel:(Ljava/lang/String;Lcom/google/zxing/datamatrix/encoder/SymbolShapeHint;Lcom/google/zxing/Dimension;Lcom/google/zxing/Dimension;)Ljava/lang/String; │ │ │ │ + #147 = Utf8 length │ │ │ │ + #148 = NameAndType #147:#14 // length:()I │ │ │ │ + #149 = Methodref #76.#148 // java/lang/String.length:()I │ │ │ │ + #150 = Utf8 lookup │ │ │ │ + #151 = Utf8 (ILcom/google/zxing/datamatrix/encoder/SymbolShapeHint;Lcom/google/zxing/Dimension;Lcom/google/zxing/Dimension;Z)Lcom/google/zxing/datamatrix/encoder/SymbolInfo; │ │ │ │ + #152 = NameAndType #150:#151 // lookup:(ILcom/google/zxing/datamatrix/encoder/SymbolShapeHint;Lcom/google/zxing/Dimension;Lcom/google/zxing/Dimension;Z)Lcom/google/zxing/datamatrix/encoder/SymbolInfo; │ │ │ │ + #153 = Methodref #37.#152 // com/google/zxing/datamatrix/encoder/SymbolInfo.lookup:(ILcom/google/zxing/datamatrix/encoder/SymbolShapeHint;Lcom/google/zxing/Dimension;Lcom/google/zxing/Dimension;Z)Lcom/google/zxing/datamatrix/encoder/SymbolInfo; │ │ │ │ + #154 = Utf8 com/google/zxing/datamatrix/encoder/ErrorCorrection │ │ │ │ + #155 = Class #154 // com/google/zxing/datamatrix/encoder/ErrorCorrection │ │ │ │ + #156 = Utf8 encodeECC200 │ │ │ │ + #157 = Utf8 (Ljava/lang/String;Lcom/google/zxing/datamatrix/encoder/SymbolInfo;)Ljava/lang/String; │ │ │ │ + #158 = NameAndType #156:#157 // encodeECC200:(Ljava/lang/String;Lcom/google/zxing/datamatrix/encoder/SymbolInfo;)Ljava/lang/String; │ │ │ │ + #159 = Methodref #155.#158 // com/google/zxing/datamatrix/encoder/ErrorCorrection.encodeECC200:(Ljava/lang/String;Lcom/google/zxing/datamatrix/encoder/SymbolInfo;)Ljava/lang/String; │ │ │ │ + #160 = Utf8 (Ljava/lang/CharSequence;II)V │ │ │ │ + #161 = NameAndType #7:#160 // "":(Ljava/lang/CharSequence;II)V │ │ │ │ + #162 = Methodref #62.#161 // com/google/zxing/datamatrix/encoder/DefaultPlacement."":(Ljava/lang/CharSequence;II)V │ │ │ │ + #163 = Utf8 place │ │ │ │ + #164 = NameAndType #163:#8 // place:()V │ │ │ │ + #165 = Methodref #62.#164 // com/google/zxing/datamatrix/encoder/DefaultPlacement.place:()V │ │ │ │ + #166 = Utf8 encodeLowLevel │ │ │ │ + #167 = Utf8 (Lcom/google/zxing/datamatrix/encoder/DefaultPlacement;Lcom/google/zxing/datamatrix/encoder/SymbolInfo;)Lcom/google/zxing/common/BitMatrix; │ │ │ │ + #168 = NameAndType #166:#167 // encodeLowLevel:(Lcom/google/zxing/datamatrix/encoder/DefaultPlacement;Lcom/google/zxing/datamatrix/encoder/SymbolInfo;)Lcom/google/zxing/common/BitMatrix; │ │ │ │ + #169 = Methodref #2.#168 // com/google/zxing/datamatrix/DataMatrixWriter.encodeLowLevel:(Lcom/google/zxing/datamatrix/encoder/DefaultPlacement;Lcom/google/zxing/datamatrix/encoder/SymbolInfo;)Lcom/google/zxing/common/BitMatrix; │ │ │ │ + #170 = Utf8 Code │ │ │ │ + #171 = Utf8 (Ljava/lang/String;Lcom/google/zxing/BarcodeFormat;II)Lcom/google/zxing/common/BitMatrix; │ │ │ │ { │ │ │ │ public com.google.zxing.datamatrix.DataMatrixWriter(); │ │ │ │ descriptor: ()V │ │ │ │ flags: ACC_PUBLIC │ │ │ │ Code: │ │ │ │ stack=300, locals=1, args_size=1 │ │ │ │ 0: aload_0 │ │ │ │ @@ -489,131 +486,129 @@ │ │ │ │ 20: invokespecial #87 // Method java/lang/IllegalArgumentException."":(Ljava/lang/String;)V │ │ │ │ 23: aload 7 │ │ │ │ 25: athrow │ │ │ │ 26: getstatic #93 // Field com/google/zxing/BarcodeFormat.DATA_MATRIX:Lcom/google/zxing/BarcodeFormat; │ │ │ │ 29: astore 7 │ │ │ │ 31: aload_2 │ │ │ │ 32: aload 7 │ │ │ │ - 34: if_acmpeq 78 │ │ │ │ + 34: if_acmpeq 75 │ │ │ │ 37: new #82 // class java/lang/IllegalArgumentException │ │ │ │ 40: astore 7 │ │ │ │ 42: new #95 // class java/lang/StringBuilder │ │ │ │ 45: astore 8 │ │ │ │ 47: aload 8 │ │ │ │ - 49: invokespecial #96 // Method java/lang/StringBuilder."":()V │ │ │ │ - 52: aload 8 │ │ │ │ - 54: ldc #98 // String Can only encode DATA_MATRIX, but got │ │ │ │ - 56: invokevirtual #102 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - 59: aload_2 │ │ │ │ - 60: invokevirtual #105 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ - 63: invokevirtual #109 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ - 66: astore 8 │ │ │ │ - 68: aload 7 │ │ │ │ - 70: aload 8 │ │ │ │ - 72: invokespecial #87 // Method java/lang/IllegalArgumentException."":(Ljava/lang/String;)V │ │ │ │ - 75: aload 7 │ │ │ │ - 77: athrow │ │ │ │ - 78: iload_3 │ │ │ │ - 79: iflt 87 │ │ │ │ - 82: iload 4 │ │ │ │ - 84: ifge 138 │ │ │ │ - 87: new #82 // class java/lang/IllegalArgumentException │ │ │ │ - 90: astore 7 │ │ │ │ - 92: new #95 // class java/lang/StringBuilder │ │ │ │ - 95: astore 8 │ │ │ │ - 97: aload 8 │ │ │ │ - 99: invokespecial #96 // Method java/lang/StringBuilder."":()V │ │ │ │ - 102: aload 8 │ │ │ │ - 104: ldc #111 // String Requested dimensions are too small: │ │ │ │ - 106: invokevirtual #102 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - 109: iload_3 │ │ │ │ - 110: invokevirtual #114 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; │ │ │ │ - 113: bipush 120 │ │ │ │ - 115: invokevirtual #118 // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder; │ │ │ │ - 118: iload 4 │ │ │ │ - 120: invokevirtual #114 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; │ │ │ │ - 123: invokevirtual #109 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ - 126: astore 8 │ │ │ │ - 128: aload 7 │ │ │ │ - 130: aload 8 │ │ │ │ - 132: invokespecial #87 // Method java/lang/IllegalArgumentException."":(Ljava/lang/String;)V │ │ │ │ - 135: aload 7 │ │ │ │ - 137: athrow │ │ │ │ - 138: getstatic #124 // Field com/google/zxing/datamatrix/encoder/SymbolShapeHint.FORCE_NONE:Lcom/google/zxing/datamatrix/encoder/SymbolShapeHint; │ │ │ │ - 141: astore 9 │ │ │ │ - 143: aconst_null │ │ │ │ - 144: astore 10 │ │ │ │ - 146: aconst_null │ │ │ │ - 147: astore 11 │ │ │ │ - 149: aload 5 │ │ │ │ - 151: ifnull 238 │ │ │ │ - 154: getstatic #130 // Field com/google/zxing/EncodeHintType.DATA_MATRIX_SHAPE:Lcom/google/zxing/EncodeHintType; │ │ │ │ - 157: astore 7 │ │ │ │ - 159: aload 5 │ │ │ │ - 161: aload 7 │ │ │ │ - 163: invokeinterface #135, 2 // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object; │ │ │ │ - 168: checkcast #120 // class com/google/zxing/datamatrix/encoder/SymbolShapeHint │ │ │ │ - 171: astore 12 │ │ │ │ - 173: aload 12 │ │ │ │ - 175: ifnull 182 │ │ │ │ - 178: aload 12 │ │ │ │ - 180: astore 9 │ │ │ │ - 182: getstatic #138 // Field com/google/zxing/EncodeHintType.MIN_SIZE:Lcom/google/zxing/EncodeHintType; │ │ │ │ - 185: astore 7 │ │ │ │ - 187: aload 5 │ │ │ │ - 189: aload 7 │ │ │ │ - 191: invokeinterface #135, 2 // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object; │ │ │ │ - 196: checkcast #140 // class com/google/zxing/Dimension │ │ │ │ - 199: astore 13 │ │ │ │ - 201: aload 13 │ │ │ │ - 203: ifnull 210 │ │ │ │ - 206: aload 13 │ │ │ │ - 208: astore 10 │ │ │ │ - 210: getstatic #143 // Field com/google/zxing/EncodeHintType.MAX_SIZE:Lcom/google/zxing/EncodeHintType; │ │ │ │ - 213: astore 7 │ │ │ │ - 215: aload 5 │ │ │ │ - 217: aload 7 │ │ │ │ - 219: invokeinterface #135, 2 // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object; │ │ │ │ - 224: checkcast #140 // class com/google/zxing/Dimension │ │ │ │ - 227: astore 14 │ │ │ │ - 229: aload 14 │ │ │ │ - 231: ifnull 238 │ │ │ │ - 234: aload 14 │ │ │ │ - 236: astore 11 │ │ │ │ - 238: aload_1 │ │ │ │ - 239: aload 9 │ │ │ │ - 241: aload 10 │ │ │ │ - 243: aload 11 │ │ │ │ - 245: invokestatic #149 // Method com/google/zxing/datamatrix/encoder/HighLevelEncoder.encodeHighLevel:(Ljava/lang/String;Lcom/google/zxing/datamatrix/encoder/SymbolShapeHint;Lcom/google/zxing/Dimension;Lcom/google/zxing/Dimension;)Ljava/lang/String; │ │ │ │ - 248: astore 15 │ │ │ │ - 250: aload 15 │ │ │ │ - 252: invokevirtual #152 // Method java/lang/String.length:()I │ │ │ │ - 255: aload 9 │ │ │ │ - 257: aload 10 │ │ │ │ - 259: aload 11 │ │ │ │ - 261: iconst_1 │ │ │ │ - 262: invokestatic #156 // Method com/google/zxing/datamatrix/encoder/SymbolInfo.lookup:(ILcom/google/zxing/datamatrix/encoder/SymbolShapeHint;Lcom/google/zxing/Dimension;Lcom/google/zxing/Dimension;Z)Lcom/google/zxing/datamatrix/encoder/SymbolInfo; │ │ │ │ - 265: astore 16 │ │ │ │ - 267: aload 15 │ │ │ │ - 269: aload 16 │ │ │ │ - 271: invokestatic #162 // Method com/google/zxing/datamatrix/encoder/ErrorCorrection.encodeECC200:(Ljava/lang/String;Lcom/google/zxing/datamatrix/encoder/SymbolInfo;)Ljava/lang/String; │ │ │ │ - 274: astore 17 │ │ │ │ - 276: new #62 // class com/google/zxing/datamatrix/encoder/DefaultPlacement │ │ │ │ - 279: astore 18 │ │ │ │ - 281: aload 16 │ │ │ │ - 283: invokevirtual #40 // Method com/google/zxing/datamatrix/encoder/SymbolInfo.getSymbolDataWidth:()I │ │ │ │ - 286: istore 6 │ │ │ │ - 288: aload 16 │ │ │ │ - 290: invokevirtual #43 // Method com/google/zxing/datamatrix/encoder/SymbolInfo.getSymbolDataHeight:()I │ │ │ │ - 293: istore 19 │ │ │ │ - 295: aload 18 │ │ │ │ - 297: aload 17 │ │ │ │ - 299: iload 6 │ │ │ │ - 301: iload 19 │ │ │ │ - 303: invokespecial #165 // Method com/google/zxing/datamatrix/encoder/DefaultPlacement."":(Ljava/lang/CharSequence;II)V │ │ │ │ - 306: aload 18 │ │ │ │ - 308: invokevirtual #168 // Method com/google/zxing/datamatrix/encoder/DefaultPlacement.place:()V │ │ │ │ - 311: aload 18 │ │ │ │ - 313: aload 16 │ │ │ │ - 315: invokestatic #172 // Method encodeLowLevel:(Lcom/google/zxing/datamatrix/encoder/DefaultPlacement;Lcom/google/zxing/datamatrix/encoder/SymbolInfo;)Lcom/google/zxing/common/BitMatrix; │ │ │ │ - 318: areturn │ │ │ │ + 49: ldc #97 // String Can only encode DATA_MATRIX, but got │ │ │ │ + 51: invokespecial #98 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V │ │ │ │ + 54: aload 8 │ │ │ │ + 56: aload_2 │ │ │ │ + 57: invokevirtual #102 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ │ │ + 60: invokevirtual #106 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ + 63: astore 8 │ │ │ │ + 65: aload 7 │ │ │ │ + 67: aload 8 │ │ │ │ + 69: invokespecial #87 // Method java/lang/IllegalArgumentException."":(Ljava/lang/String;)V │ │ │ │ + 72: aload 7 │ │ │ │ + 74: athrow │ │ │ │ + 75: iload_3 │ │ │ │ + 76: iflt 84 │ │ │ │ + 79: iload 4 │ │ │ │ + 81: ifge 132 │ │ │ │ + 84: new #82 // class java/lang/IllegalArgumentException │ │ │ │ + 87: astore 7 │ │ │ │ + 89: new #95 // class java/lang/StringBuilder │ │ │ │ + 92: astore 8 │ │ │ │ + 94: aload 8 │ │ │ │ + 96: ldc #108 // String Requested dimensions are too small: │ │ │ │ + 98: invokespecial #98 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V │ │ │ │ + 101: aload 8 │ │ │ │ + 103: iload_3 │ │ │ │ + 104: invokevirtual #111 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; │ │ │ │ + 107: bipush 120 │ │ │ │ + 109: invokevirtual #115 // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder; │ │ │ │ + 112: iload 4 │ │ │ │ + 114: invokevirtual #111 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; │ │ │ │ + 117: invokevirtual #106 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ + 120: astore 8 │ │ │ │ + 122: aload 7 │ │ │ │ + 124: aload 8 │ │ │ │ + 126: invokespecial #87 // Method java/lang/IllegalArgumentException."":(Ljava/lang/String;)V │ │ │ │ + 129: aload 7 │ │ │ │ + 131: athrow │ │ │ │ + 132: getstatic #121 // Field com/google/zxing/datamatrix/encoder/SymbolShapeHint.FORCE_NONE:Lcom/google/zxing/datamatrix/encoder/SymbolShapeHint; │ │ │ │ + 135: astore 9 │ │ │ │ + 137: aconst_null │ │ │ │ + 138: astore 10 │ │ │ │ + 140: aconst_null │ │ │ │ + 141: astore 11 │ │ │ │ + 143: aload 5 │ │ │ │ + 145: ifnull 232 │ │ │ │ + 148: getstatic #127 // Field com/google/zxing/EncodeHintType.DATA_MATRIX_SHAPE:Lcom/google/zxing/EncodeHintType; │ │ │ │ + 151: astore 7 │ │ │ │ + 153: aload 5 │ │ │ │ + 155: aload 7 │ │ │ │ + 157: invokeinterface #132, 2 // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object; │ │ │ │ + 162: checkcast #117 // class com/google/zxing/datamatrix/encoder/SymbolShapeHint │ │ │ │ + 165: astore 12 │ │ │ │ + 167: aload 12 │ │ │ │ + 169: ifnull 176 │ │ │ │ + 172: aload 12 │ │ │ │ + 174: astore 9 │ │ │ │ + 176: getstatic #135 // Field com/google/zxing/EncodeHintType.MIN_SIZE:Lcom/google/zxing/EncodeHintType; │ │ │ │ + 179: astore 7 │ │ │ │ + 181: aload 5 │ │ │ │ + 183: aload 7 │ │ │ │ + 185: invokeinterface #132, 2 // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object; │ │ │ │ + 190: checkcast #137 // class com/google/zxing/Dimension │ │ │ │ + 193: astore 13 │ │ │ │ + 195: aload 13 │ │ │ │ + 197: ifnull 204 │ │ │ │ + 200: aload 13 │ │ │ │ + 202: astore 10 │ │ │ │ + 204: getstatic #140 // Field com/google/zxing/EncodeHintType.MAX_SIZE:Lcom/google/zxing/EncodeHintType; │ │ │ │ + 207: astore 7 │ │ │ │ + 209: aload 5 │ │ │ │ + 211: aload 7 │ │ │ │ + 213: invokeinterface #132, 2 // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object; │ │ │ │ + 218: checkcast #137 // class com/google/zxing/Dimension │ │ │ │ + 221: astore 14 │ │ │ │ + 223: aload 14 │ │ │ │ + 225: ifnull 232 │ │ │ │ + 228: aload 14 │ │ │ │ + 230: astore 11 │ │ │ │ + 232: aload_1 │ │ │ │ + 233: aload 9 │ │ │ │ + 235: aload 10 │ │ │ │ + 237: aload 11 │ │ │ │ + 239: invokestatic #146 // Method com/google/zxing/datamatrix/encoder/HighLevelEncoder.encodeHighLevel:(Ljava/lang/String;Lcom/google/zxing/datamatrix/encoder/SymbolShapeHint;Lcom/google/zxing/Dimension;Lcom/google/zxing/Dimension;)Ljava/lang/String; │ │ │ │ + 242: astore 15 │ │ │ │ + 244: aload 15 │ │ │ │ + 246: invokevirtual #149 // Method java/lang/String.length:()I │ │ │ │ + 249: aload 9 │ │ │ │ + 251: aload 10 │ │ │ │ + 253: aload 11 │ │ │ │ + 255: iconst_1 │ │ │ │ + 256: invokestatic #153 // Method com/google/zxing/datamatrix/encoder/SymbolInfo.lookup:(ILcom/google/zxing/datamatrix/encoder/SymbolShapeHint;Lcom/google/zxing/Dimension;Lcom/google/zxing/Dimension;Z)Lcom/google/zxing/datamatrix/encoder/SymbolInfo; │ │ │ │ + 259: astore 16 │ │ │ │ + 261: aload 15 │ │ │ │ + 263: aload 16 │ │ │ │ + 265: invokestatic #159 // Method com/google/zxing/datamatrix/encoder/ErrorCorrection.encodeECC200:(Ljava/lang/String;Lcom/google/zxing/datamatrix/encoder/SymbolInfo;)Ljava/lang/String; │ │ │ │ + 268: astore 17 │ │ │ │ + 270: new #62 // class com/google/zxing/datamatrix/encoder/DefaultPlacement │ │ │ │ + 273: astore 18 │ │ │ │ + 275: aload 16 │ │ │ │ + 277: invokevirtual #40 // Method com/google/zxing/datamatrix/encoder/SymbolInfo.getSymbolDataWidth:()I │ │ │ │ + 280: istore 6 │ │ │ │ + 282: aload 16 │ │ │ │ + 284: invokevirtual #43 // Method com/google/zxing/datamatrix/encoder/SymbolInfo.getSymbolDataHeight:()I │ │ │ │ + 287: istore 19 │ │ │ │ + 289: aload 18 │ │ │ │ + 291: aload 17 │ │ │ │ + 293: iload 6 │ │ │ │ + 295: iload 19 │ │ │ │ + 297: invokespecial #162 // Method com/google/zxing/datamatrix/encoder/DefaultPlacement."":(Ljava/lang/CharSequence;II)V │ │ │ │ + 300: aload 18 │ │ │ │ + 302: invokevirtual #165 // Method com/google/zxing/datamatrix/encoder/DefaultPlacement.place:()V │ │ │ │ + 305: aload 18 │ │ │ │ + 307: aload 16 │ │ │ │ + 309: invokestatic #169 // Method encodeLowLevel:(Lcom/google/zxing/datamatrix/encoder/DefaultPlacement;Lcom/google/zxing/datamatrix/encoder/SymbolInfo;)Lcom/google/zxing/common/BitMatrix; │ │ │ │ + 312: areturn │ │ │ │ } │ │ ├── com/google/zxing/datamatrix/encoder/ASCIIEncoder.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -19,99 +19,96 @@ │ │ │ │ #14 = Utf8 (C)Z │ │ │ │ #15 = NameAndType #13:#14 // isDigit:(C)Z │ │ │ │ #16 = Methodref #12.#15 // com/google/zxing/datamatrix/encoder/HighLevelEncoder.isDigit:(C)Z │ │ │ │ #17 = Utf8 java/lang/IllegalArgumentException │ │ │ │ #18 = Class #17 // java/lang/IllegalArgumentException │ │ │ │ #19 = Utf8 java/lang/StringBuilder │ │ │ │ #20 = Class #19 // java/lang/StringBuilder │ │ │ │ - #21 = Methodref #20.#9 // java/lang/StringBuilder."":()V │ │ │ │ - #22 = Utf8 not digits: │ │ │ │ - #23 = String #22 // not digits: │ │ │ │ - #24 = Utf8 append │ │ │ │ - #25 = Utf8 (Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - #26 = NameAndType #24:#25 // append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - #27 = Methodref #20.#26 // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - #28 = Utf8 (C)Ljava/lang/StringBuilder; │ │ │ │ - #29 = NameAndType #24:#28 // append:(C)Ljava/lang/StringBuilder; │ │ │ │ - #30 = Methodref #20.#29 // java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder; │ │ │ │ - #31 = Utf8 toString │ │ │ │ - #32 = Utf8 ()Ljava/lang/String; │ │ │ │ - #33 = NameAndType #31:#32 // toString:()Ljava/lang/String; │ │ │ │ - #34 = Methodref #20.#33 // java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ - #35 = Utf8 (Ljava/lang/String;)V │ │ │ │ - #36 = NameAndType #7:#35 // "":(Ljava/lang/String;)V │ │ │ │ - #37 = Methodref #18.#36 // java/lang/IllegalArgumentException."":(Ljava/lang/String;)V │ │ │ │ - #38 = Float 2.8E-45f │ │ │ │ - #39 = Utf8 com/google/zxing/datamatrix/encoder/EncoderContext │ │ │ │ - #40 = Class #39 // com/google/zxing/datamatrix/encoder/EncoderContext │ │ │ │ - #41 = Utf8 getMessage │ │ │ │ - #42 = NameAndType #41:#32 // getMessage:()Ljava/lang/String; │ │ │ │ - #43 = Methodref #40.#42 // com/google/zxing/datamatrix/encoder/EncoderContext.getMessage:()Ljava/lang/String; │ │ │ │ - #44 = Utf8 pos │ │ │ │ - #45 = Utf8 I │ │ │ │ - #46 = NameAndType #44:#45 // pos:I │ │ │ │ - #47 = Fieldref #40.#46 // com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ - #48 = Utf8 determineConsecutiveDigitCount │ │ │ │ - #49 = Utf8 (Ljava/lang/CharSequence;I)I │ │ │ │ - #50 = NameAndType #48:#49 // determineConsecutiveDigitCount:(Ljava/lang/CharSequence;I)I │ │ │ │ - #51 = Methodref #12.#50 // com/google/zxing/datamatrix/encoder/HighLevelEncoder.determineConsecutiveDigitCount:(Ljava/lang/CharSequence;I)I │ │ │ │ - #52 = Utf8 java/lang/String │ │ │ │ - #53 = Class #52 // java/lang/String │ │ │ │ - #54 = Utf8 charAt │ │ │ │ - #55 = Utf8 (I)C │ │ │ │ - #56 = NameAndType #54:#55 // charAt:(I)C │ │ │ │ - #57 = Methodref #53.#56 // java/lang/String.charAt:(I)C │ │ │ │ - #58 = Utf8 encodeASCIIDigits │ │ │ │ - #59 = Utf8 (CC)C │ │ │ │ - #60 = NameAndType #58:#59 // encodeASCIIDigits:(CC)C │ │ │ │ - #61 = Methodref #2.#60 // com/google/zxing/datamatrix/encoder/ASCIIEncoder.encodeASCIIDigits:(CC)C │ │ │ │ - #62 = Utf8 writeCodeword │ │ │ │ - #63 = Utf8 (C)V │ │ │ │ - #64 = NameAndType #62:#63 // writeCodeword:(C)V │ │ │ │ - #65 = Methodref #40.#64 // com/google/zxing/datamatrix/encoder/EncoderContext.writeCodeword:(C)V │ │ │ │ - #66 = Utf8 getCurrentChar │ │ │ │ - #67 = Utf8 ()C │ │ │ │ - #68 = NameAndType #66:#67 // getCurrentChar:()C │ │ │ │ - #69 = Methodref #40.#68 // com/google/zxing/datamatrix/encoder/EncoderContext.getCurrentChar:()C │ │ │ │ - #70 = Utf8 getEncodingMode │ │ │ │ - #71 = Utf8 ()I │ │ │ │ - #72 = NameAndType #70:#71 // getEncodingMode:()I │ │ │ │ - #73 = Methodref #2.#72 // com/google/zxing/datamatrix/encoder/ASCIIEncoder.getEncodingMode:()I │ │ │ │ - #74 = Utf8 lookAheadTest │ │ │ │ - #75 = Utf8 (Ljava/lang/CharSequence;II)I │ │ │ │ - #76 = NameAndType #74:#75 // lookAheadTest:(Ljava/lang/CharSequence;II)I │ │ │ │ - #77 = Methodref #12.#76 // com/google/zxing/datamatrix/encoder/HighLevelEncoder.lookAheadTest:(Ljava/lang/CharSequence;II)I │ │ │ │ - #78 = Utf8 java/lang/IllegalStateException │ │ │ │ - #79 = Class #78 // java/lang/IllegalStateException │ │ │ │ - #80 = Utf8 Illegal mode: │ │ │ │ - #81 = String #80 // Illegal mode: │ │ │ │ - #82 = Utf8 (I)Ljava/lang/StringBuilder; │ │ │ │ - #83 = NameAndType #24:#82 // append:(I)Ljava/lang/StringBuilder; │ │ │ │ - #84 = Methodref #20.#83 // java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; │ │ │ │ - #85 = Methodref #79.#36 // java/lang/IllegalStateException."":(Ljava/lang/String;)V │ │ │ │ - #86 = Float 3.24E-43f │ │ │ │ - #87 = Float 7.0E-45f │ │ │ │ - #88 = Utf8 signalEncoderChange │ │ │ │ - #89 = Utf8 (I)V │ │ │ │ - #90 = NameAndType #88:#89 // signalEncoderChange:(I)V │ │ │ │ - #91 = Methodref #40.#90 // com/google/zxing/datamatrix/encoder/EncoderContext.signalEncoderChange:(I)V │ │ │ │ - #92 = Float 3.22E-43f │ │ │ │ - #93 = Float 1.4E-45f │ │ │ │ - #94 = Float 3.34E-43f │ │ │ │ - #95 = Float 4.2E-45f │ │ │ │ - #96 = Float 3.35E-43f │ │ │ │ - #97 = Float 3.36E-43f │ │ │ │ - #98 = Float 5.6E-45f │ │ │ │ - #99 = Utf8 isExtendedASCII │ │ │ │ - #100 = NameAndType #99:#14 // isExtendedASCII:(C)Z │ │ │ │ - #101 = Methodref #12.#100 // com/google/zxing/datamatrix/encoder/HighLevelEncoder.isExtendedASCII:(C)Z │ │ │ │ - #102 = Float 3.3E-43f │ │ │ │ - #103 = Utf8 Code │ │ │ │ - #104 = Utf8 encode │ │ │ │ - #105 = Utf8 (Lcom/google/zxing/datamatrix/encoder/EncoderContext;)V │ │ │ │ + #21 = Utf8 not digits: │ │ │ │ + #22 = String #21 // not digits: │ │ │ │ + #23 = Utf8 (Ljava/lang/String;)V │ │ │ │ + #24 = NameAndType #7:#23 // "":(Ljava/lang/String;)V │ │ │ │ + #25 = Methodref #20.#24 // java/lang/StringBuilder."":(Ljava/lang/String;)V │ │ │ │ + #26 = Utf8 append │ │ │ │ + #27 = Utf8 (C)Ljava/lang/StringBuilder; │ │ │ │ + #28 = NameAndType #26:#27 // append:(C)Ljava/lang/StringBuilder; │ │ │ │ + #29 = Methodref #20.#28 // java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder; │ │ │ │ + #30 = Utf8 toString │ │ │ │ + #31 = Utf8 ()Ljava/lang/String; │ │ │ │ + #32 = NameAndType #30:#31 // toString:()Ljava/lang/String; │ │ │ │ + #33 = Methodref #20.#32 // java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ + #34 = Methodref #18.#24 // java/lang/IllegalArgumentException."":(Ljava/lang/String;)V │ │ │ │ + #35 = Float 2.8E-45f │ │ │ │ + #36 = Utf8 com/google/zxing/datamatrix/encoder/EncoderContext │ │ │ │ + #37 = Class #36 // com/google/zxing/datamatrix/encoder/EncoderContext │ │ │ │ + #38 = Utf8 getMessage │ │ │ │ + #39 = NameAndType #38:#31 // getMessage:()Ljava/lang/String; │ │ │ │ + #40 = Methodref #37.#39 // com/google/zxing/datamatrix/encoder/EncoderContext.getMessage:()Ljava/lang/String; │ │ │ │ + #41 = Utf8 pos │ │ │ │ + #42 = Utf8 I │ │ │ │ + #43 = NameAndType #41:#42 // pos:I │ │ │ │ + #44 = Fieldref #37.#43 // com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ + #45 = Utf8 determineConsecutiveDigitCount │ │ │ │ + #46 = Utf8 (Ljava/lang/CharSequence;I)I │ │ │ │ + #47 = NameAndType #45:#46 // determineConsecutiveDigitCount:(Ljava/lang/CharSequence;I)I │ │ │ │ + #48 = Methodref #12.#47 // com/google/zxing/datamatrix/encoder/HighLevelEncoder.determineConsecutiveDigitCount:(Ljava/lang/CharSequence;I)I │ │ │ │ + #49 = Utf8 java/lang/String │ │ │ │ + #50 = Class #49 // java/lang/String │ │ │ │ + #51 = Utf8 charAt │ │ │ │ + #52 = Utf8 (I)C │ │ │ │ + #53 = NameAndType #51:#52 // charAt:(I)C │ │ │ │ + #54 = Methodref #50.#53 // java/lang/String.charAt:(I)C │ │ │ │ + #55 = Utf8 encodeASCIIDigits │ │ │ │ + #56 = Utf8 (CC)C │ │ │ │ + #57 = NameAndType #55:#56 // encodeASCIIDigits:(CC)C │ │ │ │ + #58 = Methodref #2.#57 // com/google/zxing/datamatrix/encoder/ASCIIEncoder.encodeASCIIDigits:(CC)C │ │ │ │ + #59 = Utf8 writeCodeword │ │ │ │ + #60 = Utf8 (C)V │ │ │ │ + #61 = NameAndType #59:#60 // writeCodeword:(C)V │ │ │ │ + #62 = Methodref #37.#61 // com/google/zxing/datamatrix/encoder/EncoderContext.writeCodeword:(C)V │ │ │ │ + #63 = Utf8 getCurrentChar │ │ │ │ + #64 = Utf8 ()C │ │ │ │ + #65 = NameAndType #63:#64 // getCurrentChar:()C │ │ │ │ + #66 = Methodref #37.#65 // com/google/zxing/datamatrix/encoder/EncoderContext.getCurrentChar:()C │ │ │ │ + #67 = Utf8 getEncodingMode │ │ │ │ + #68 = Utf8 ()I │ │ │ │ + #69 = NameAndType #67:#68 // getEncodingMode:()I │ │ │ │ + #70 = Methodref #2.#69 // com/google/zxing/datamatrix/encoder/ASCIIEncoder.getEncodingMode:()I │ │ │ │ + #71 = Utf8 lookAheadTest │ │ │ │ + #72 = Utf8 (Ljava/lang/CharSequence;II)I │ │ │ │ + #73 = NameAndType #71:#72 // lookAheadTest:(Ljava/lang/CharSequence;II)I │ │ │ │ + #74 = Methodref #12.#73 // com/google/zxing/datamatrix/encoder/HighLevelEncoder.lookAheadTest:(Ljava/lang/CharSequence;II)I │ │ │ │ + #75 = Utf8 java/lang/IllegalStateException │ │ │ │ + #76 = Class #75 // java/lang/IllegalStateException │ │ │ │ + #77 = Utf8 Illegal mode: │ │ │ │ + #78 = String #77 // Illegal mode: │ │ │ │ + #79 = Utf8 (I)Ljava/lang/StringBuilder; │ │ │ │ + #80 = NameAndType #26:#79 // append:(I)Ljava/lang/StringBuilder; │ │ │ │ + #81 = Methodref #20.#80 // java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; │ │ │ │ + #82 = Methodref #76.#24 // java/lang/IllegalStateException."":(Ljava/lang/String;)V │ │ │ │ + #83 = Float 3.24E-43f │ │ │ │ + #84 = Float 7.0E-45f │ │ │ │ + #85 = Utf8 signalEncoderChange │ │ │ │ + #86 = Utf8 (I)V │ │ │ │ + #87 = NameAndType #85:#86 // signalEncoderChange:(I)V │ │ │ │ + #88 = Methodref #37.#87 // com/google/zxing/datamatrix/encoder/EncoderContext.signalEncoderChange:(I)V │ │ │ │ + #89 = Float 3.22E-43f │ │ │ │ + #90 = Float 1.4E-45f │ │ │ │ + #91 = Float 3.34E-43f │ │ │ │ + #92 = Float 4.2E-45f │ │ │ │ + #93 = Float 3.35E-43f │ │ │ │ + #94 = Float 3.36E-43f │ │ │ │ + #95 = Float 5.6E-45f │ │ │ │ + #96 = Utf8 isExtendedASCII │ │ │ │ + #97 = NameAndType #96:#14 // isExtendedASCII:(C)Z │ │ │ │ + #98 = Methodref #12.#97 // com/google/zxing/datamatrix/encoder/HighLevelEncoder.isExtendedASCII:(C)Z │ │ │ │ + #99 = Float 3.3E-43f │ │ │ │ + #100 = Utf8 Code │ │ │ │ + #101 = Utf8 encode │ │ │ │ + #102 = Utf8 (Lcom/google/zxing/datamatrix/encoder/EncoderContext;)V │ │ │ │ { │ │ │ │ com.google.zxing.datamatrix.encoder.ASCIIEncoder(); │ │ │ │ descriptor: ()V │ │ │ │ flags: │ │ │ │ Code: │ │ │ │ stack=300, locals=1, args_size=1 │ │ │ │ 0: aload_0 │ │ │ │ @@ -151,227 +148,225 @@ │ │ │ │ 38: i2c │ │ │ │ 39: ireturn │ │ │ │ 40: new #18 // class java/lang/IllegalArgumentException │ │ │ │ 43: astore 4 │ │ │ │ 45: new #20 // class java/lang/StringBuilder │ │ │ │ 48: astore 5 │ │ │ │ 50: aload 5 │ │ │ │ - 52: invokespecial #21 // Method java/lang/StringBuilder."":()V │ │ │ │ - 55: aload 5 │ │ │ │ - 57: ldc #23 // String not digits: │ │ │ │ - 59: invokevirtual #27 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - 62: iload_0 │ │ │ │ - 63: invokevirtual #30 // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder; │ │ │ │ - 66: iload_1 │ │ │ │ - 67: invokevirtual #30 // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder; │ │ │ │ - 70: invokevirtual #34 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ - 73: astore 5 │ │ │ │ - 75: aload 4 │ │ │ │ - 77: aload 5 │ │ │ │ - 79: invokespecial #37 // Method java/lang/IllegalArgumentException."":(Ljava/lang/String;)V │ │ │ │ - 82: aload 4 │ │ │ │ - 84: athrow │ │ │ │ + 52: ldc #22 // String not digits: │ │ │ │ + 54: invokespecial #25 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V │ │ │ │ + 57: aload 5 │ │ │ │ + 59: iload_0 │ │ │ │ + 60: invokevirtual #29 // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder; │ │ │ │ + 63: iload_1 │ │ │ │ + 64: invokevirtual #29 // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder; │ │ │ │ + 67: invokevirtual #33 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ + 70: astore 5 │ │ │ │ + 72: aload 4 │ │ │ │ + 74: aload 5 │ │ │ │ + 76: invokespecial #34 // Method java/lang/IllegalArgumentException."":(Ljava/lang/String;)V │ │ │ │ + 79: aload 4 │ │ │ │ + 81: athrow │ │ │ │ │ │ │ │ public void encode(com.google.zxing.datamatrix.encoder.EncoderContext); │ │ │ │ descriptor: (Lcom/google/zxing/datamatrix/encoder/EncoderContext;)V │ │ │ │ flags: ACC_PUBLIC │ │ │ │ Code: │ │ │ │ - stack=300, locals=11, args_size=2 │ │ │ │ + stack=300, locals=10, args_size=2 │ │ │ │ 0: iconst_2 │ │ │ │ 1: istore_2 │ │ │ │ 2: aload_1 │ │ │ │ - 3: invokevirtual #43 // Method com/google/zxing/datamatrix/encoder/EncoderContext.getMessage:()Ljava/lang/String; │ │ │ │ + 3: invokevirtual #40 // Method com/google/zxing/datamatrix/encoder/EncoderContext.getMessage:()Ljava/lang/String; │ │ │ │ 6: astore_3 │ │ │ │ 7: aload_1 │ │ │ │ - 8: getfield #47 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ + 8: getfield #44 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ 11: istore 4 │ │ │ │ 13: aload_3 │ │ │ │ 14: iload 4 │ │ │ │ - 16: invokestatic #51 // Method com/google/zxing/datamatrix/encoder/HighLevelEncoder.determineConsecutiveDigitCount:(Ljava/lang/CharSequence;I)I │ │ │ │ + 16: invokestatic #48 // Method com/google/zxing/datamatrix/encoder/HighLevelEncoder.determineConsecutiveDigitCount:(Ljava/lang/CharSequence;I)I │ │ │ │ 19: istore 5 │ │ │ │ 21: iload 5 │ │ │ │ 23: iload_2 │ │ │ │ 24: if_icmplt 99 │ │ │ │ 27: aload_1 │ │ │ │ - 28: invokevirtual #43 // Method com/google/zxing/datamatrix/encoder/EncoderContext.getMessage:()Ljava/lang/String; │ │ │ │ + 28: invokevirtual #40 // Method com/google/zxing/datamatrix/encoder/EncoderContext.getMessage:()Ljava/lang/String; │ │ │ │ 31: astore_3 │ │ │ │ 32: aload_1 │ │ │ │ - 33: getfield #47 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ + 33: getfield #44 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ 36: istore 4 │ │ │ │ 38: aload_3 │ │ │ │ 39: iload 4 │ │ │ │ - 41: invokevirtual #57 // Method java/lang/String.charAt:(I)C │ │ │ │ - 44: istore 6 │ │ │ │ + 41: invokevirtual #54 // Method java/lang/String.charAt:(I)C │ │ │ │ + 44: istore 5 │ │ │ │ 46: aload_1 │ │ │ │ - 47: invokevirtual #43 // Method com/google/zxing/datamatrix/encoder/EncoderContext.getMessage:()Ljava/lang/String; │ │ │ │ - 50: astore 7 │ │ │ │ + 47: invokevirtual #40 // Method com/google/zxing/datamatrix/encoder/EncoderContext.getMessage:()Ljava/lang/String; │ │ │ │ + 50: astore 6 │ │ │ │ 52: aload_1 │ │ │ │ - 53: getfield #47 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ + 53: getfield #44 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ 56: iconst_1 │ │ │ │ 57: iadd │ │ │ │ - 58: istore 8 │ │ │ │ - 60: aload 7 │ │ │ │ - 62: iload 8 │ │ │ │ - 64: invokevirtual #57 // Method java/lang/String.charAt:(I)C │ │ │ │ + 58: istore 7 │ │ │ │ + 60: aload 6 │ │ │ │ + 62: iload 7 │ │ │ │ + 64: invokevirtual #54 // Method java/lang/String.charAt:(I)C │ │ │ │ 67: istore 4 │ │ │ │ - 69: iload 6 │ │ │ │ + 69: iload 5 │ │ │ │ 71: iload 4 │ │ │ │ - 73: invokestatic #61 // Method encodeASCIIDigits:(CC)C │ │ │ │ - 76: istore 6 │ │ │ │ + 73: invokestatic #58 // Method encodeASCIIDigits:(CC)C │ │ │ │ + 76: istore 5 │ │ │ │ 78: aload_1 │ │ │ │ - 79: iload 6 │ │ │ │ - 81: invokevirtual #65 // Method com/google/zxing/datamatrix/encoder/EncoderContext.writeCodeword:(C)V │ │ │ │ + 79: iload 5 │ │ │ │ + 81: invokevirtual #62 // Method com/google/zxing/datamatrix/encoder/EncoderContext.writeCodeword:(C)V │ │ │ │ 84: aload_1 │ │ │ │ - 85: getfield #47 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ + 85: getfield #44 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ 88: iconst_2 │ │ │ │ 89: iadd │ │ │ │ - 90: istore 6 │ │ │ │ + 90: istore 5 │ │ │ │ 92: aload_1 │ │ │ │ - 93: iload 6 │ │ │ │ - 95: putfield #47 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ + 93: iload 5 │ │ │ │ + 95: putfield #44 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ 98: return │ │ │ │ 99: aload_1 │ │ │ │ - 100: invokevirtual #69 // Method com/google/zxing/datamatrix/encoder/EncoderContext.getCurrentChar:()C │ │ │ │ - 103: istore 9 │ │ │ │ + 100: invokevirtual #66 // Method com/google/zxing/datamatrix/encoder/EncoderContext.getCurrentChar:()C │ │ │ │ + 103: istore 8 │ │ │ │ 105: aload_1 │ │ │ │ - 106: invokevirtual #43 // Method com/google/zxing/datamatrix/encoder/EncoderContext.getMessage:()Ljava/lang/String; │ │ │ │ + 106: invokevirtual #40 // Method com/google/zxing/datamatrix/encoder/EncoderContext.getMessage:()Ljava/lang/String; │ │ │ │ 109: astore_3 │ │ │ │ 110: aload_1 │ │ │ │ - 111: getfield #47 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ + 111: getfield #44 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ 114: istore 4 │ │ │ │ 116: aload_0 │ │ │ │ - 117: invokevirtual #73 // Method getEncodingMode:()I │ │ │ │ - 120: istore 8 │ │ │ │ + 117: invokevirtual #70 // Method getEncodingMode:()I │ │ │ │ + 120: istore 7 │ │ │ │ 122: aload_3 │ │ │ │ 123: iload 4 │ │ │ │ - 125: iload 8 │ │ │ │ - 127: invokestatic #77 // Method com/google/zxing/datamatrix/encoder/HighLevelEncoder.lookAheadTest:(Ljava/lang/CharSequence;II)I │ │ │ │ - 130: istore 10 │ │ │ │ + 125: iload 7 │ │ │ │ + 127: invokestatic #74 // Method com/google/zxing/datamatrix/encoder/HighLevelEncoder.lookAheadTest:(Ljava/lang/CharSequence;II)I │ │ │ │ + 130: istore 9 │ │ │ │ 132: aload_0 │ │ │ │ - 133: invokevirtual #73 // Method getEncodingMode:()I │ │ │ │ - 136: istore 6 │ │ │ │ - 138: iload 10 │ │ │ │ - 140: iload 6 │ │ │ │ - 142: if_icmpeq 314 │ │ │ │ - 145: iload 10 │ │ │ │ + 133: invokevirtual #70 // Method getEncodingMode:()I │ │ │ │ + 136: istore 5 │ │ │ │ + 138: iload 9 │ │ │ │ + 140: iload 5 │ │ │ │ + 142: if_icmpeq 311 │ │ │ │ + 145: iload 9 │ │ │ │ 147: tableswitch { // 1 to 5 │ │ │ │ - 1: 238 │ │ │ │ - 2: 276 │ │ │ │ - 3: 257 │ │ │ │ - 4: 295 │ │ │ │ - 5: 219 │ │ │ │ + 1: 235 │ │ │ │ + 2: 273 │ │ │ │ + 3: 254 │ │ │ │ + 4: 292 │ │ │ │ + 5: 216 │ │ │ │ default: 180 │ │ │ │ } │ │ │ │ - 180: new #79 // class java/lang/IllegalStateException │ │ │ │ + 180: new #76 // class java/lang/IllegalStateException │ │ │ │ 183: astore_3 │ │ │ │ 184: new #20 // class java/lang/StringBuilder │ │ │ │ - 187: astore 7 │ │ │ │ - 189: aload 7 │ │ │ │ - 191: invokespecial #21 // Method java/lang/StringBuilder."":()V │ │ │ │ - 194: aload 7 │ │ │ │ - 196: ldc #81 // String Illegal mode: │ │ │ │ - 198: invokevirtual #27 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ │ │ - 201: iload 10 │ │ │ │ - 203: invokevirtual #84 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; │ │ │ │ - 206: invokevirtual #34 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ - 209: astore 7 │ │ │ │ - 211: aload_3 │ │ │ │ - 212: aload 7 │ │ │ │ - 214: invokespecial #85 // Method java/lang/IllegalStateException."":(Ljava/lang/String;)V │ │ │ │ - 217: aload_3 │ │ │ │ - 218: athrow │ │ │ │ - 219: aload_1 │ │ │ │ - 220: sipush 231 │ │ │ │ - 223: invokevirtual #65 // Method com/google/zxing/datamatrix/encoder/EncoderContext.writeCodeword:(C)V │ │ │ │ - 226: iconst_5 │ │ │ │ - 227: istore 6 │ │ │ │ - 229: aload_1 │ │ │ │ - 230: iload 6 │ │ │ │ - 232: invokevirtual #91 // Method com/google/zxing/datamatrix/encoder/EncoderContext.signalEncoderChange:(I)V │ │ │ │ - 235: goto 98 │ │ │ │ - 238: aload_1 │ │ │ │ - 239: sipush 230 │ │ │ │ - 242: invokevirtual #65 // Method com/google/zxing/datamatrix/encoder/EncoderContext.writeCodeword:(C)V │ │ │ │ - 245: iconst_1 │ │ │ │ - 246: istore 6 │ │ │ │ - 248: aload_1 │ │ │ │ - 249: iload 6 │ │ │ │ - 251: invokevirtual #91 // Method com/google/zxing/datamatrix/encoder/EncoderContext.signalEncoderChange:(I)V │ │ │ │ - 254: goto 98 │ │ │ │ - 257: aload_1 │ │ │ │ - 258: sipush 238 │ │ │ │ - 261: invokevirtual #65 // Method com/google/zxing/datamatrix/encoder/EncoderContext.writeCodeword:(C)V │ │ │ │ - 264: iconst_3 │ │ │ │ - 265: istore 6 │ │ │ │ - 267: aload_1 │ │ │ │ - 268: iload 6 │ │ │ │ - 270: invokevirtual #91 // Method com/google/zxing/datamatrix/encoder/EncoderContext.signalEncoderChange:(I)V │ │ │ │ - 273: goto 98 │ │ │ │ - 276: sipush 239 │ │ │ │ - 279: istore 6 │ │ │ │ - 281: aload_1 │ │ │ │ - 282: iload 6 │ │ │ │ - 284: invokevirtual #65 // Method com/google/zxing/datamatrix/encoder/EncoderContext.writeCodeword:(C)V │ │ │ │ - 287: aload_1 │ │ │ │ - 288: iload_2 │ │ │ │ - 289: invokevirtual #91 // Method com/google/zxing/datamatrix/encoder/EncoderContext.signalEncoderChange:(I)V │ │ │ │ - 292: goto 98 │ │ │ │ - 295: aload_1 │ │ │ │ - 296: sipush 240 │ │ │ │ - 299: invokevirtual #65 // Method com/google/zxing/datamatrix/encoder/EncoderContext.writeCodeword:(C)V │ │ │ │ - 302: iconst_4 │ │ │ │ - 303: istore 6 │ │ │ │ - 305: aload_1 │ │ │ │ - 306: iload 6 │ │ │ │ - 308: invokevirtual #91 // Method com/google/zxing/datamatrix/encoder/EncoderContext.signalEncoderChange:(I)V │ │ │ │ - 311: goto 98 │ │ │ │ - 314: iload 9 │ │ │ │ - 316: invokestatic #101 // Method com/google/zxing/datamatrix/encoder/HighLevelEncoder.isExtendedASCII:(C)Z │ │ │ │ - 319: istore 6 │ │ │ │ - 321: iload 6 │ │ │ │ - 323: ifeq 366 │ │ │ │ - 326: aload_1 │ │ │ │ - 327: sipush 235 │ │ │ │ - 330: invokevirtual #65 // Method com/google/zxing/datamatrix/encoder/EncoderContext.writeCodeword:(C)V │ │ │ │ - 333: iload 9 │ │ │ │ - 335: bipush -128 │ │ │ │ - 337: iadd │ │ │ │ - 338: iconst_1 │ │ │ │ - 339: iadd │ │ │ │ - 340: i2c │ │ │ │ - 341: istore 6 │ │ │ │ - 343: aload_1 │ │ │ │ - 344: iload 6 │ │ │ │ - 346: invokevirtual #65 // Method com/google/zxing/datamatrix/encoder/EncoderContext.writeCodeword:(C)V │ │ │ │ - 349: aload_1 │ │ │ │ - 350: getfield #47 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ - 353: iconst_1 │ │ │ │ - 354: iadd │ │ │ │ - 355: istore 6 │ │ │ │ - 357: aload_1 │ │ │ │ - 358: iload 6 │ │ │ │ - 360: putfield #47 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ - 363: goto 98 │ │ │ │ - 366: iload 9 │ │ │ │ - 368: iconst_1 │ │ │ │ - 369: iadd │ │ │ │ - 370: i2c │ │ │ │ - 371: istore 6 │ │ │ │ - 373: aload_1 │ │ │ │ - 374: iload 6 │ │ │ │ - 376: invokevirtual #65 // Method com/google/zxing/datamatrix/encoder/EncoderContext.writeCodeword:(C)V │ │ │ │ - 379: aload_1 │ │ │ │ - 380: getfield #47 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ - 383: iconst_1 │ │ │ │ - 384: iadd │ │ │ │ - 385: istore 6 │ │ │ │ - 387: aload_1 │ │ │ │ - 388: iload 6 │ │ │ │ - 390: putfield #47 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ - 393: goto 98 │ │ │ │ + 187: astore 6 │ │ │ │ + 189: aload 6 │ │ │ │ + 191: ldc #78 // String Illegal mode: │ │ │ │ + 193: invokespecial #25 // Method java/lang/StringBuilder."":(Ljava/lang/String;)V │ │ │ │ + 196: aload 6 │ │ │ │ + 198: iload 9 │ │ │ │ + 200: invokevirtual #81 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; │ │ │ │ + 203: invokevirtual #33 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; │ │ │ │ + 206: astore 6 │ │ │ │ + 208: aload_3 │ │ │ │ + 209: aload 6 │ │ │ │ + 211: invokespecial #82 // Method java/lang/IllegalStateException."":(Ljava/lang/String;)V │ │ │ │ + 214: aload_3 │ │ │ │ + 215: athrow │ │ │ │ + 216: aload_1 │ │ │ │ + 217: sipush 231 │ │ │ │ + 220: invokevirtual #62 // Method com/google/zxing/datamatrix/encoder/EncoderContext.writeCodeword:(C)V │ │ │ │ + 223: iconst_5 │ │ │ │ + 224: istore 5 │ │ │ │ + 226: aload_1 │ │ │ │ + 227: iload 5 │ │ │ │ + 229: invokevirtual #88 // Method com/google/zxing/datamatrix/encoder/EncoderContext.signalEncoderChange:(I)V │ │ │ │ + 232: goto 98 │ │ │ │ + 235: aload_1 │ │ │ │ + 236: sipush 230 │ │ │ │ + 239: invokevirtual #62 // Method com/google/zxing/datamatrix/encoder/EncoderContext.writeCodeword:(C)V │ │ │ │ + 242: iconst_1 │ │ │ │ + 243: istore 5 │ │ │ │ + 245: aload_1 │ │ │ │ + 246: iload 5 │ │ │ │ + 248: invokevirtual #88 // Method com/google/zxing/datamatrix/encoder/EncoderContext.signalEncoderChange:(I)V │ │ │ │ + 251: goto 98 │ │ │ │ + 254: aload_1 │ │ │ │ + 255: sipush 238 │ │ │ │ + 258: invokevirtual #62 // Method com/google/zxing/datamatrix/encoder/EncoderContext.writeCodeword:(C)V │ │ │ │ + 261: iconst_3 │ │ │ │ + 262: istore 5 │ │ │ │ + 264: aload_1 │ │ │ │ + 265: iload 5 │ │ │ │ + 267: invokevirtual #88 // Method com/google/zxing/datamatrix/encoder/EncoderContext.signalEncoderChange:(I)V │ │ │ │ + 270: goto 98 │ │ │ │ + 273: sipush 239 │ │ │ │ + 276: istore 5 │ │ │ │ + 278: aload_1 │ │ │ │ + 279: iload 5 │ │ │ │ + 281: invokevirtual #62 // Method com/google/zxing/datamatrix/encoder/EncoderContext.writeCodeword:(C)V │ │ │ │ + 284: aload_1 │ │ │ │ + 285: iload_2 │ │ │ │ + 286: invokevirtual #88 // Method com/google/zxing/datamatrix/encoder/EncoderContext.signalEncoderChange:(I)V │ │ │ │ + 289: goto 98 │ │ │ │ + 292: aload_1 │ │ │ │ + 293: sipush 240 │ │ │ │ + 296: invokevirtual #62 // Method com/google/zxing/datamatrix/encoder/EncoderContext.writeCodeword:(C)V │ │ │ │ + 299: iconst_4 │ │ │ │ + 300: istore 5 │ │ │ │ + 302: aload_1 │ │ │ │ + 303: iload 5 │ │ │ │ + 305: invokevirtual #88 // Method com/google/zxing/datamatrix/encoder/EncoderContext.signalEncoderChange:(I)V │ │ │ │ + 308: goto 98 │ │ │ │ + 311: iload 8 │ │ │ │ + 313: invokestatic #98 // Method com/google/zxing/datamatrix/encoder/HighLevelEncoder.isExtendedASCII:(C)Z │ │ │ │ + 316: istore 5 │ │ │ │ + 318: iload 5 │ │ │ │ + 320: ifeq 363 │ │ │ │ + 323: aload_1 │ │ │ │ + 324: sipush 235 │ │ │ │ + 327: invokevirtual #62 // Method com/google/zxing/datamatrix/encoder/EncoderContext.writeCodeword:(C)V │ │ │ │ + 330: iload 8 │ │ │ │ + 332: bipush -128 │ │ │ │ + 334: iadd │ │ │ │ + 335: iconst_1 │ │ │ │ + 336: iadd │ │ │ │ + 337: i2c │ │ │ │ + 338: istore 5 │ │ │ │ + 340: aload_1 │ │ │ │ + 341: iload 5 │ │ │ │ + 343: invokevirtual #62 // Method com/google/zxing/datamatrix/encoder/EncoderContext.writeCodeword:(C)V │ │ │ │ + 346: aload_1 │ │ │ │ + 347: getfield #44 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ + 350: iconst_1 │ │ │ │ + 351: iadd │ │ │ │ + 352: istore 5 │ │ │ │ + 354: aload_1 │ │ │ │ + 355: iload 5 │ │ │ │ + 357: putfield #44 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ + 360: goto 98 │ │ │ │ + 363: iload 8 │ │ │ │ + 365: iconst_1 │ │ │ │ + 366: iadd │ │ │ │ + 367: i2c │ │ │ │ + 368: istore 5 │ │ │ │ + 370: aload_1 │ │ │ │ + 371: iload 5 │ │ │ │ + 373: invokevirtual #62 // Method com/google/zxing/datamatrix/encoder/EncoderContext.writeCodeword:(C)V │ │ │ │ + 376: aload_1 │ │ │ │ + 377: getfield #44 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ + 380: iconst_1 │ │ │ │ + 381: iadd │ │ │ │ + 382: istore 5 │ │ │ │ + 384: aload_1 │ │ │ │ + 385: iload 5 │ │ │ │ + 387: putfield #44 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ + 390: goto 98 │ │ │ │ │ │ │ │ public int getEncodingMode(); │ │ │ │ descriptor: ()I │ │ │ │ flags: ACC_PUBLIC │ │ │ │ Code: │ │ │ │ stack=300, locals=1, args_size=1 │ │ │ │ 0: iconst_0 │ │ ├── com/google/zxing/datamatrix/encoder/Base256Encoder.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -17,47 +17,46 @@ │ │ │ │ else { │ │ │ │ c2 = (char)(n2 - 256); │ │ │ │ } │ │ │ │ return c2; │ │ │ │ } │ │ │ │ │ │ │ │ public void encode(final EncoderContext encoderContext) { │ │ │ │ - final int n = 249; │ │ │ │ - final int n2 = 1; │ │ │ │ + final int n = 1; │ │ │ │ final StringBuilder sb = new StringBuilder(); │ │ │ │ sb.append('\0'); │ │ │ │ while (encoderContext.hasMoreCharacters()) { │ │ │ │ sb.append(encoderContext.getCurrentChar()); │ │ │ │ ++encoderContext.pos; │ │ │ │ final int lookAheadTest = HighLevelEncoder.lookAheadTest((CharSequence)encoderContext.getMessage(), encoderContext.pos, this.getEncodingMode()); │ │ │ │ if (lookAheadTest != this.getEncodingMode()) { │ │ │ │ encoderContext.signalEncoderChange(lookAheadTest); │ │ │ │ break; │ │ │ │ } │ │ │ │ } │ │ │ │ - final int n3 = sb.length() - 1; │ │ │ │ - final int n4 = encoderContext.getCodewordCount() + n3 + 1; │ │ │ │ - encoderContext.updateSymbolInfo(n4); │ │ │ │ - int n5; │ │ │ │ - if (encoderContext.getSymbolInfo().getDataCapacity() - n4 > 0) { │ │ │ │ - n5 = n2; │ │ │ │ + final int n2 = sb.length() - 1; │ │ │ │ + final int n3 = encoderContext.getCodewordCount() + n2 + 1; │ │ │ │ + encoderContext.updateSymbolInfo(n3); │ │ │ │ + int n4; │ │ │ │ + if (encoderContext.getSymbolInfo().getDataCapacity() - n3 > 0) { │ │ │ │ + n4 = n; │ │ │ │ } │ │ │ │ else { │ │ │ │ - n5 = 0; │ │ │ │ + n4 = 0; │ │ │ │ } │ │ │ │ - if (encoderContext.hasMoreCharacters() || n5 != 0) { │ │ │ │ - if (n3 <= n) { │ │ │ │ - sb.setCharAt(0, (char)n3); │ │ │ │ + if (encoderContext.hasMoreCharacters() || n4 != 0) { │ │ │ │ + if (n2 <= 249) { │ │ │ │ + sb.setCharAt(0, (char)n2); │ │ │ │ } │ │ │ │ else { │ │ │ │ - if (n3 <= n || n3 > 1555) { │ │ │ │ - throw new IllegalStateException("Message length not in valid ranges: " + n3); │ │ │ │ + if (n2 > 1555) { │ │ │ │ + throw new IllegalStateException("Message length not in valid ranges: " + n2); │ │ │ │ } │ │ │ │ - sb.setCharAt(0, (char)(n3 / 250 + 249)); │ │ │ │ - sb.insert(n2, (char)(n3 % 250)); │ │ │ │ + sb.setCharAt(0, (char)(n2 / 250 + 249)); │ │ │ │ + sb.insert(n, (char)(n2 % 250)); │ │ │ │ } │ │ │ │ } │ │ │ │ for (int i = 0; i < sb.length(); ++i) { │ │ │ │ encoderContext.writeCodeword(randomize255State(sb.charAt(i), encoderContext.getCodewordCount() + 1)); │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/datamatrix/encoder/C40Encoder.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -24,29 +24,32 @@ │ │ │ │ │ │ │ │ static void writeNextTriplet(final EncoderContext encoderContext, final StringBuilder sb) { │ │ │ │ encoderContext.writeCodewords(encodeToCodewords((CharSequence)sb, 0)); │ │ │ │ sb.delete(0, 3); │ │ │ │ } │ │ │ │ │ │ │ │ public void encode(final EncoderContext encoderContext) { │ │ │ │ + final int n = 3; │ │ │ │ + final boolean b = true; │ │ │ │ + final int n2 = 2; │ │ │ │ final StringBuilder sb = new StringBuilder(); │ │ │ │ while (encoderContext.hasMoreCharacters()) { │ │ │ │ final char currentChar = encoderContext.getCurrentChar(); │ │ │ │ ++encoderContext.pos; │ │ │ │ - int n = this.encodeChar(currentChar, sb); │ │ │ │ - final int n2 = encoderContext.getCodewordCount() + sb.length() / 3 * 2; │ │ │ │ - encoderContext.updateSymbolInfo(n2); │ │ │ │ - final int n3 = encoderContext.getSymbolInfo().getDataCapacity() - n2; │ │ │ │ + int n3 = this.encodeChar(currentChar, sb); │ │ │ │ + final int n4 = encoderContext.getCodewordCount() + (sb.length() / 3 << 1); │ │ │ │ + encoderContext.updateSymbolInfo(n4); │ │ │ │ + final int n5 = encoderContext.getSymbolInfo().getDataCapacity() - n4; │ │ │ │ if (!encoderContext.hasMoreCharacters()) { │ │ │ │ final StringBuilder sb2 = new StringBuilder(); │ │ │ │ - if (sb.length() % 3 == 2 && (n3 < 2 || n3 > 2)) { │ │ │ │ - n = this.backtrackOneCharacter(encoderContext, sb, sb2, n); │ │ │ │ + if (sb.length() % 3 == n2 && (n5 < n2 || n5 > n2)) { │ │ │ │ + n3 = this.backtrackOneCharacter(encoderContext, sb, sb2, n3); │ │ │ │ } │ │ │ │ - while (sb.length() % 3 == 1 && ((n <= 3 && n3 != 1) || n > 3)) { │ │ │ │ - n = this.backtrackOneCharacter(encoderContext, sb, sb2, n); │ │ │ │ + while (sb.length() % 3 == (b ? 1 : 0) && ((n3 <= n && n5 != (b ? 1 : 0)) || n3 > n)) { │ │ │ │ + n3 = this.backtrackOneCharacter(encoderContext, sb, sb2, n3); │ │ │ │ } │ │ │ │ break; │ │ │ │ } │ │ │ │ if (sb.length() % 3 != 0) { │ │ │ │ continue; │ │ │ │ } │ │ │ │ final int lookAheadTest = HighLevelEncoder.lookAheadTest((CharSequence)encoderContext.getMessage(), encoderContext.pos, this.getEncodingMode()); │ │ │ │ @@ -96,28 +99,28 @@ │ │ │ │ n = c2; │ │ │ │ } │ │ │ │ else { │ │ │ │ if (c < '\u0080') { │ │ │ │ throw new IllegalArgumentException("Illegal character: " + c); │ │ │ │ } │ │ │ │ sb.append("\u0001\u001e"); │ │ │ │ - n = 2 + this.encodeChar((char)(c - 128), sb); │ │ │ │ + n = this.encodeChar((char)(c - 128), sb) + 2; │ │ │ │ } │ │ │ │ return n; │ │ │ │ } │ │ │ │ │ │ │ │ public int getEncodingMode() { │ │ │ │ return 1; │ │ │ │ } │ │ │ │ │ │ │ │ void handleEOD(final EncoderContext encoderContext, final StringBuilder sb) { │ │ │ │ final boolean b = true; │ │ │ │ final char c = '\u00fe'; │ │ │ │ final int n = 3; │ │ │ │ - final int n2 = sb.length() / 3 * 2; │ │ │ │ + final int n2 = sb.length() / 3 << 1; │ │ │ │ final int n3 = sb.length() % 3; │ │ │ │ final int n4 = encoderContext.getCodewordCount() + n2; │ │ │ │ encoderContext.updateSymbolInfo(n4); │ │ │ │ final int n5 = encoderContext.getSymbolInfo().getDataCapacity() - n4; │ │ │ │ if (n3 == 2) { │ │ │ │ sb.append('\0'); │ │ │ │ while (sb.length() >= n) { │ │ ├── com/google/zxing/datamatrix/encoder/EdifactEncoder.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -333,15 +333,15 @@ │ │ │ │ 252: istore 10 │ │ │ │ 254: goto 92 │ │ │ │ │ │ │ │ private static void handleEOD(com.google.zxing.datamatrix.encoder.EncoderContext, java.lang.CharSequence); │ │ │ │ descriptor: (Lcom/google/zxing/datamatrix/encoder/EncoderContext;Ljava/lang/CharSequence;)V │ │ │ │ flags: ACC_PRIVATE, ACC_STATIC │ │ │ │ Code: │ │ │ │ - stack=300, locals=14, args_size=2 │ │ │ │ + stack=300, locals=12, args_size=2 │ │ │ │ 0: iconst_2 │ │ │ │ 1: istore_2 │ │ │ │ 2: iconst_1 │ │ │ │ 3: istore_3 │ │ │ │ 4: aload_1 │ │ │ │ 5: invokeinterface #34, 1 // InterfaceMethod java/lang/CharSequence.length:()I │ │ │ │ 10: istore 4 │ │ │ │ @@ -367,16 +367,16 @@ │ │ │ │ 50: istore 7 │ │ │ │ 52: iload 6 │ │ │ │ 54: iload 7 │ │ │ │ 56: isub │ │ │ │ 57: istore 8 │ │ │ │ 59: aload_0 │ │ │ │ 60: invokevirtual #77 // Method com/google/zxing/datamatrix/encoder/EncoderContext.getRemainingCharacters:()I │ │ │ │ - 63: istore 9 │ │ │ │ - 65: iload 9 │ │ │ │ + 63: istore 6 │ │ │ │ + 65: iload 6 │ │ │ │ 67: ifne 84 │ │ │ │ 70: iload 8 │ │ │ │ 72: iload_2 │ │ │ │ 73: if_icmpgt 84 │ │ │ │ 76: aload_0 │ │ │ │ 77: iconst_0 │ │ │ │ 78: invokevirtual #59 // Method com/google/zxing/datamatrix/encoder/EncoderContext.signalEncoderChange:(I)V │ │ │ │ @@ -385,56 +385,56 @@ │ │ │ │ 85: istore 6 │ │ │ │ 87: iload 4 │ │ │ │ 89: iload 6 │ │ │ │ 91: if_icmple 123 │ │ │ │ 94: new #36 // class java/lang/IllegalStateException │ │ │ │ 97: astore 5 │ │ │ │ 99: ldc #79 // String Count must not exceed 4 │ │ │ │ - 101: astore 10 │ │ │ │ + 101: astore 9 │ │ │ │ 103: aload 5 │ │ │ │ - 105: aload 10 │ │ │ │ + 105: aload 9 │ │ │ │ 107: invokespecial #41 // Method java/lang/IllegalStateException."":(Ljava/lang/String;)V │ │ │ │ 110: aload 5 │ │ │ │ 112: athrow │ │ │ │ 113: astore 5 │ │ │ │ 115: aload_0 │ │ │ │ 116: iconst_0 │ │ │ │ 117: invokevirtual #59 // Method com/google/zxing/datamatrix/encoder/EncoderContext.signalEncoderChange:(I)V │ │ │ │ 120: aload 5 │ │ │ │ 122: athrow │ │ │ │ 123: iload 4 │ │ │ │ 125: iconst_m1 │ │ │ │ 126: iadd │ │ │ │ - 127: istore 11 │ │ │ │ + 127: istore 10 │ │ │ │ 129: iconst_0 │ │ │ │ 130: istore 6 │ │ │ │ 132: aconst_null │ │ │ │ 133: astore 5 │ │ │ │ 135: aload_1 │ │ │ │ 136: iconst_0 │ │ │ │ 137: invokestatic #83 // Method encodeToCodewords:(Ljava/lang/CharSequence;I)Ljava/lang/String; │ │ │ │ - 140: astore 12 │ │ │ │ + 140: astore 11 │ │ │ │ 142: aload_0 │ │ │ │ 143: invokevirtual #87 // Method com/google/zxing/datamatrix/encoder/EncoderContext.hasMoreCharacters:()Z │ │ │ │ 146: istore 6 │ │ │ │ 148: iload 6 │ │ │ │ 150: ifne 283 │ │ │ │ 153: iload_3 │ │ │ │ - 154: istore 13 │ │ │ │ - 156: iload 13 │ │ │ │ - 158: ifeq 289 │ │ │ │ - 161: iload 11 │ │ │ │ + 154: istore 6 │ │ │ │ + 156: iload 6 │ │ │ │ + 158: ifeq 292 │ │ │ │ + 161: iload 10 │ │ │ │ 163: iload_2 │ │ │ │ - 164: if_icmpgt 289 │ │ │ │ - 167: iload 11 │ │ │ │ + 164: if_icmpgt 292 │ │ │ │ + 167: iload 10 │ │ │ │ 169: iload_2 │ │ │ │ 170: if_icmpgt 252 │ │ │ │ 173: aload_0 │ │ │ │ 174: invokevirtual #74 // Method com/google/zxing/datamatrix/encoder/EncoderContext.getCodewordCount:()I │ │ │ │ - 177: iload 11 │ │ │ │ + 177: iload 10 │ │ │ │ 179: iadd │ │ │ │ 180: istore 6 │ │ │ │ 182: aload_0 │ │ │ │ 183: iload 6 │ │ │ │ 185: invokevirtual #89 // Method com/google/zxing/datamatrix/encoder/EncoderContext.updateSymbolInfo:(I)V │ │ │ │ 188: aload_0 │ │ │ │ 189: invokevirtual #66 // Method com/google/zxing/datamatrix/encoder/EncoderContext.getSymbolInfo:()Lcom/google/zxing/datamatrix/encoder/SymbolInfo; │ │ │ │ @@ -444,61 +444,63 @@ │ │ │ │ 199: istore 6 │ │ │ │ 201: aload_0 │ │ │ │ 202: invokevirtual #74 // Method com/google/zxing/datamatrix/encoder/EncoderContext.getCodewordCount:()I │ │ │ │ 205: istore 7 │ │ │ │ 207: iload 6 │ │ │ │ 209: iload 7 │ │ │ │ 211: isub │ │ │ │ - 212: istore 8 │ │ │ │ + 212: istore 6 │ │ │ │ 214: iconst_3 │ │ │ │ - 215: istore 6 │ │ │ │ - 217: iload 8 │ │ │ │ - 219: iload 6 │ │ │ │ + 215: istore 7 │ │ │ │ + 217: iload 6 │ │ │ │ + 219: iload 7 │ │ │ │ 221: if_icmplt 252 │ │ │ │ 224: iconst_0 │ │ │ │ 225: istore_3 │ │ │ │ 226: aload_0 │ │ │ │ 227: invokevirtual #74 // Method com/google/zxing/datamatrix/encoder/EncoderContext.getCodewordCount:()I │ │ │ │ 230: istore 6 │ │ │ │ - 232: aload 12 │ │ │ │ + 232: aload 11 │ │ │ │ 234: invokevirtual #92 // Method java/lang/String.length:()I │ │ │ │ 237: istore 7 │ │ │ │ 239: iload 6 │ │ │ │ 241: iload 7 │ │ │ │ 243: iadd │ │ │ │ 244: istore 6 │ │ │ │ 246: aload_0 │ │ │ │ 247: iload 6 │ │ │ │ 249: invokevirtual #89 // Method com/google/zxing/datamatrix/encoder/EncoderContext.updateSymbolInfo:(I)V │ │ │ │ 252: iload_3 │ │ │ │ - 253: ifeq 294 │ │ │ │ + 253: ifeq 297 │ │ │ │ 256: aload_0 │ │ │ │ 257: invokevirtual #95 // Method com/google/zxing/datamatrix/encoder/EncoderContext.resetSymbolInfo:()V │ │ │ │ 260: aload_0 │ │ │ │ 261: getfield #99 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ - 264: iload 11 │ │ │ │ + 264: iload 10 │ │ │ │ 266: isub │ │ │ │ 267: istore 6 │ │ │ │ 269: aload_0 │ │ │ │ 270: iload 6 │ │ │ │ 272: putfield #99 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ 275: aload_0 │ │ │ │ 276: iconst_0 │ │ │ │ 277: invokevirtual #59 // Method com/google/zxing/datamatrix/encoder/EncoderContext.signalEncoderChange:(I)V │ │ │ │ 280: goto 22 │ │ │ │ 283: iconst_0 │ │ │ │ - 284: istore 13 │ │ │ │ - 286: goto 156 │ │ │ │ - 289: iconst_0 │ │ │ │ - 290: istore_3 │ │ │ │ - 291: goto 167 │ │ │ │ - 294: aload_0 │ │ │ │ - 295: aload 12 │ │ │ │ - 297: invokevirtual #102 // Method com/google/zxing/datamatrix/encoder/EncoderContext.writeCodewords:(Ljava/lang/String;)V │ │ │ │ - 300: goto 275 │ │ │ │ + 284: istore 6 │ │ │ │ + 286: aconst_null │ │ │ │ + 287: astore 5 │ │ │ │ + 289: goto 156 │ │ │ │ + 292: iconst_0 │ │ │ │ + 293: istore_3 │ │ │ │ + 294: goto 167 │ │ │ │ + 297: aload_0 │ │ │ │ + 298: aload 11 │ │ │ │ + 300: invokevirtual #102 // Method com/google/zxing/datamatrix/encoder/EncoderContext.writeCodewords:(Ljava/lang/String;)V │ │ │ │ + 303: goto 275 │ │ │ │ Exception table: │ │ │ │ from to target type │ │ │ │ 4 10 113 any │ │ │ │ 29 33 113 any │ │ │ │ 33 37 113 any │ │ │ │ 39 44 113 any │ │ │ │ 46 50 113 any │ │ │ │ @@ -515,95 +517,93 @@ │ │ │ │ 201 205 113 any │ │ │ │ 226 230 113 any │ │ │ │ 232 237 113 any │ │ │ │ 247 252 113 any │ │ │ │ 256 260 113 any │ │ │ │ 260 264 113 any │ │ │ │ 270 275 113 any │ │ │ │ - 295 300 113 any │ │ │ │ + 298 303 113 any │ │ │ │ │ │ │ │ public void encode(com.google.zxing.datamatrix.encoder.EncoderContext); │ │ │ │ descriptor: (Lcom/google/zxing/datamatrix/encoder/EncoderContext;)V │ │ │ │ flags: ACC_PUBLIC │ │ │ │ Code: │ │ │ │ - stack=300, locals=11, args_size=2 │ │ │ │ + stack=300, locals=8, args_size=2 │ │ │ │ 0: iconst_4 │ │ │ │ 1: istore_2 │ │ │ │ 2: new #14 // class java/lang/StringBuilder │ │ │ │ 5: astore_3 │ │ │ │ 6: aload_3 │ │ │ │ 7: invokespecial #103 // Method java/lang/StringBuilder."":()V │ │ │ │ 10: aload_1 │ │ │ │ 11: invokevirtual #87 // Method com/google/zxing/datamatrix/encoder/EncoderContext.hasMoreCharacters:()Z │ │ │ │ 14: istore 4 │ │ │ │ 16: iload 4 │ │ │ │ - 18: ifeq 126 │ │ │ │ + 18: ifeq 122 │ │ │ │ 21: aload_1 │ │ │ │ 22: invokevirtual #107 // Method com/google/zxing/datamatrix/encoder/EncoderContext.getCurrentChar:()C │ │ │ │ - 25: istore 5 │ │ │ │ - 27: iload 5 │ │ │ │ - 29: aload_3 │ │ │ │ - 30: invokestatic #111 // Method encodeChar:(CLjava/lang/StringBuilder;)V │ │ │ │ - 33: aload_1 │ │ │ │ - 34: getfield #99 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ - 37: iconst_1 │ │ │ │ - 38: iadd │ │ │ │ - 39: istore 4 │ │ │ │ - 41: aload_1 │ │ │ │ - 42: iload 4 │ │ │ │ - 44: putfield #99 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ - 47: aload_3 │ │ │ │ - 48: invokevirtual #112 // Method java/lang/StringBuilder.length:()I │ │ │ │ - 51: istore 6 │ │ │ │ - 53: iload 6 │ │ │ │ - 55: iload_2 │ │ │ │ - 56: if_icmplt 10 │ │ │ │ - 59: aload_3 │ │ │ │ - 60: iconst_0 │ │ │ │ - 61: invokestatic #83 // Method encodeToCodewords:(Ljava/lang/CharSequence;I)Ljava/lang/String; │ │ │ │ - 64: astore 7 │ │ │ │ - 66: aload_1 │ │ │ │ - 67: aload 7 │ │ │ │ - 69: invokevirtual #102 // Method com/google/zxing/datamatrix/encoder/EncoderContext.writeCodewords:(Ljava/lang/String;)V │ │ │ │ - 72: aload_3 │ │ │ │ - 73: iconst_0 │ │ │ │ - 74: iload_2 │ │ │ │ - 75: invokevirtual #116 // Method java/lang/StringBuilder.delete:(II)Ljava/lang/StringBuilder; │ │ │ │ - 78: pop │ │ │ │ - 79: aload_1 │ │ │ │ - 80: invokevirtual #119 // Method com/google/zxing/datamatrix/encoder/EncoderContext.getMessage:()Ljava/lang/String; │ │ │ │ - 83: astore 7 │ │ │ │ - 85: aload_1 │ │ │ │ - 86: getfield #99 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ - 89: istore 8 │ │ │ │ - 91: aload_0 │ │ │ │ - 92: invokevirtual #122 // Method getEncodingMode:()I │ │ │ │ - 95: istore 9 │ │ │ │ - 97: aload 7 │ │ │ │ - 99: iload 8 │ │ │ │ - 101: iload 9 │ │ │ │ - 103: invokestatic #126 // Method com/google/zxing/datamatrix/encoder/HighLevelEncoder.lookAheadTest:(Ljava/lang/CharSequence;II)I │ │ │ │ - 106: istore 10 │ │ │ │ - 108: aload_0 │ │ │ │ - 109: invokevirtual #122 // Method getEncodingMode:()I │ │ │ │ - 112: istore 4 │ │ │ │ - 114: iload 10 │ │ │ │ - 116: iload 4 │ │ │ │ - 118: if_icmpeq 10 │ │ │ │ - 121: aload_1 │ │ │ │ - 122: iconst_0 │ │ │ │ - 123: invokevirtual #59 // Method com/google/zxing/datamatrix/encoder/EncoderContext.signalEncoderChange:(I)V │ │ │ │ - 126: aload_3 │ │ │ │ - 127: bipush 31 │ │ │ │ - 129: invokevirtual #18 // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder; │ │ │ │ - 132: pop │ │ │ │ - 133: aload_1 │ │ │ │ - 134: aload_3 │ │ │ │ - 135: invokestatic #131 // Method handleEOD:(Lcom/google/zxing/datamatrix/encoder/EncoderContext;Ljava/lang/CharSequence;)V │ │ │ │ - 138: return │ │ │ │ + 25: aload_3 │ │ │ │ + 26: invokestatic #111 // Method encodeChar:(CLjava/lang/StringBuilder;)V │ │ │ │ + 29: aload_1 │ │ │ │ + 30: getfield #99 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ + 33: iconst_1 │ │ │ │ + 34: iadd │ │ │ │ + 35: istore 4 │ │ │ │ + 37: aload_1 │ │ │ │ + 38: iload 4 │ │ │ │ + 40: putfield #99 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ + 43: aload_3 │ │ │ │ + 44: invokevirtual #112 // Method java/lang/StringBuilder.length:()I │ │ │ │ + 47: istore 4 │ │ │ │ + 49: iload 4 │ │ │ │ + 51: iload_2 │ │ │ │ + 52: if_icmplt 10 │ │ │ │ + 55: aload_3 │ │ │ │ + 56: iconst_0 │ │ │ │ + 57: invokestatic #83 // Method encodeToCodewords:(Ljava/lang/CharSequence;I)Ljava/lang/String; │ │ │ │ + 60: astore 5 │ │ │ │ + 62: aload_1 │ │ │ │ + 63: aload 5 │ │ │ │ + 65: invokevirtual #102 // Method com/google/zxing/datamatrix/encoder/EncoderContext.writeCodewords:(Ljava/lang/String;)V │ │ │ │ + 68: aload_3 │ │ │ │ + 69: iconst_0 │ │ │ │ + 70: iload_2 │ │ │ │ + 71: invokevirtual #116 // Method java/lang/StringBuilder.delete:(II)Ljava/lang/StringBuilder; │ │ │ │ + 74: pop │ │ │ │ + 75: aload_1 │ │ │ │ + 76: invokevirtual #119 // Method com/google/zxing/datamatrix/encoder/EncoderContext.getMessage:()Ljava/lang/String; │ │ │ │ + 79: astore 5 │ │ │ │ + 81: aload_1 │ │ │ │ + 82: getfield #99 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ + 85: istore 6 │ │ │ │ + 87: aload_0 │ │ │ │ + 88: invokevirtual #122 // Method getEncodingMode:()I │ │ │ │ + 91: istore 7 │ │ │ │ + 93: aload 5 │ │ │ │ + 95: iload 6 │ │ │ │ + 97: iload 7 │ │ │ │ + 99: invokestatic #126 // Method com/google/zxing/datamatrix/encoder/HighLevelEncoder.lookAheadTest:(Ljava/lang/CharSequence;II)I │ │ │ │ + 102: istore 4 │ │ │ │ + 104: aload_0 │ │ │ │ + 105: invokevirtual #122 // Method getEncodingMode:()I │ │ │ │ + 108: istore 6 │ │ │ │ + 110: iload 4 │ │ │ │ + 112: iload 6 │ │ │ │ + 114: if_icmpeq 10 │ │ │ │ + 117: aload_1 │ │ │ │ + 118: iconst_0 │ │ │ │ + 119: invokevirtual #59 // Method com/google/zxing/datamatrix/encoder/EncoderContext.signalEncoderChange:(I)V │ │ │ │ + 122: aload_3 │ │ │ │ + 123: bipush 31 │ │ │ │ + 125: invokevirtual #18 // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder; │ │ │ │ + 128: pop │ │ │ │ + 129: aload_1 │ │ │ │ + 130: aload_3 │ │ │ │ + 131: invokestatic #131 // Method handleEOD:(Lcom/google/zxing/datamatrix/encoder/EncoderContext;Ljava/lang/CharSequence;)V │ │ │ │ + 134: return │ │ │ │ │ │ │ │ public int getEncodingMode(); │ │ │ │ descriptor: ()I │ │ │ │ flags: ACC_PUBLIC │ │ │ │ Code: │ │ │ │ stack=300, locals=1, args_size=1 │ │ │ │ 0: iconst_4 │ │ ├── com/google/zxing/maxicode/MaxiCodeReader.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -325,44 +325,44 @@ │ │ │ │ 29: astore 5 │ │ │ │ 31: aload_0 │ │ │ │ 32: getfield #29 // Field decoder:Lcom/google/zxing/maxicode/decoder/Decoder; │ │ │ │ 35: aload 5 │ │ │ │ 37: aload_2 │ │ │ │ 38: invokevirtual #85 // Method com/google/zxing/maxicode/decoder/Decoder.decode:(Lcom/google/zxing/common/BitMatrix;Ljava/util/Map;)Lcom/google/zxing/common/DecoderResult; │ │ │ │ 41: astore 6 │ │ │ │ - 43: getstatic #20 // Field NO_POINTS:[Lcom/google/zxing/ResultPoint; │ │ │ │ + 43: new #87 // class com/google/zxing/Result │ │ │ │ 46: astore 7 │ │ │ │ - 48: new #87 // class com/google/zxing/Result │ │ │ │ - 51: astore 8 │ │ │ │ - 53: aload 6 │ │ │ │ - 55: invokevirtual #93 // Method com/google/zxing/common/DecoderResult.getText:()Ljava/lang/String; │ │ │ │ - 58: astore_3 │ │ │ │ - 59: aload 6 │ │ │ │ - 61: invokevirtual #97 // Method com/google/zxing/common/DecoderResult.getRawBytes:()[B │ │ │ │ + 48: aload 6 │ │ │ │ + 50: invokevirtual #93 // Method com/google/zxing/common/DecoderResult.getText:()Ljava/lang/String; │ │ │ │ + 53: astore_3 │ │ │ │ + 54: aload 6 │ │ │ │ + 56: invokevirtual #97 // Method com/google/zxing/common/DecoderResult.getRawBytes:()[B │ │ │ │ + 59: astore 8 │ │ │ │ + 61: getstatic #20 // Field NO_POINTS:[Lcom/google/zxing/ResultPoint; │ │ │ │ 64: astore 9 │ │ │ │ 66: getstatic #103 // Field com/google/zxing/BarcodeFormat.MAXICODE:Lcom/google/zxing/BarcodeFormat; │ │ │ │ 69: astore 10 │ │ │ │ - 71: aload 8 │ │ │ │ + 71: aload 7 │ │ │ │ 73: aload_3 │ │ │ │ - 74: aload 9 │ │ │ │ - 76: aload 7 │ │ │ │ + 74: aload 8 │ │ │ │ + 76: aload 9 │ │ │ │ 78: aload 10 │ │ │ │ 80: invokespecial #106 // Method com/google/zxing/Result."":(Ljava/lang/String;[B[Lcom/google/zxing/ResultPoint;Lcom/google/zxing/BarcodeFormat;)V │ │ │ │ 83: aload 6 │ │ │ │ 85: invokevirtual #109 // Method com/google/zxing/common/DecoderResult.getECLevel:()Ljava/lang/String; │ │ │ │ 88: astore 11 │ │ │ │ 90: aload 11 │ │ │ │ 92: ifnull 107 │ │ │ │ 95: getstatic #115 // Field com/google/zxing/ResultMetadataType.ERROR_CORRECTION_LEVEL:Lcom/google/zxing/ResultMetadataType; │ │ │ │ 98: astore_3 │ │ │ │ - 99: aload 8 │ │ │ │ + 99: aload 7 │ │ │ │ 101: aload_3 │ │ │ │ 102: aload 11 │ │ │ │ 104: invokevirtual #119 // Method com/google/zxing/Result.putMetadata:(Lcom/google/zxing/ResultMetadataType;Ljava/lang/Object;)V │ │ │ │ - 107: aload 8 │ │ │ │ + 107: aload 7 │ │ │ │ 109: areturn │ │ │ │ 110: invokestatic #43 // Method com/google/zxing/NotFoundException.getNotFoundInstance:()Lcom/google/zxing/NotFoundException; │ │ │ │ 113: athrow │ │ │ │ │ │ │ │ public void reset(); │ │ │ │ descriptor: ()V │ │ │ │ flags: ACC_PUBLIC │ │ ├── com/google/zxing/multi/GenericMultipleBarcodeReader.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -20,103 +20,83 @@ │ │ │ │ │ │ │ │ public GenericMultipleBarcodeReader(final Reader delegate) { │ │ │ │ this.delegate = delegate; │ │ │ │ } │ │ │ │ │ │ │ │ private void doDecodeMultiple(final BinaryBitmap binaryBitmap, final Map map, final List list, final int n, final int n2, final int n3) { │ │ │ │ if (n3 <= 4) { │ │ │ │ - int width; │ │ │ │ - int height; │ │ │ │ - float n4 = 0.0f; │ │ │ │ - float n5 = 0.0f; │ │ │ │ - float n6 = 0.0f; │ │ │ │ - float n7 = 0.0f; │ │ │ │ - while (true) { │ │ │ │ - while (true) { │ │ │ │ - ResultPoint resultPoint = null; │ │ │ │ - Label_0225: { │ │ │ │ - try { │ │ │ │ - final Result decode = this.delegate.decode(binaryBitmap, map); │ │ │ │ - boolean b = false; │ │ │ │ - final Iterator iterator = list.iterator(); │ │ │ │ - while (iterator.hasNext()) { │ │ │ │ - if (((Result)iterator.next()).getText().equals(decode.getText())) { │ │ │ │ - b = true; │ │ │ │ - break; │ │ │ │ - } │ │ │ │ + try { │ │ │ │ + final Result decode = this.delegate.decode(binaryBitmap, map); │ │ │ │ + boolean b = false; │ │ │ │ + final Iterator iterator = list.iterator(); │ │ │ │ + while (iterator.hasNext()) { │ │ │ │ + if (((Result)iterator.next()).getText().equals(decode.getText())) { │ │ │ │ + b = true; │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + if (!b) { │ │ │ │ + list.add(translateResultPoints(decode, n, n2)); │ │ │ │ + } │ │ │ │ + final ResultPoint[] resultPoints = decode.getResultPoints(); │ │ │ │ + if (resultPoints != null && resultPoints.length != 0) { │ │ │ │ + final int width = binaryBitmap.getWidth(); │ │ │ │ + final int height = binaryBitmap.getHeight(); │ │ │ │ + float n4 = (float)width; │ │ │ │ + float n5 = (float)height; │ │ │ │ + float n6 = 0.0f; │ │ │ │ + float n7 = 0.0f; │ │ │ │ + for (int length = resultPoints.length, i = 0; i < length; ++i) { │ │ │ │ + final ResultPoint resultPoint = resultPoints[i]; │ │ │ │ + if (resultPoint != null) { │ │ │ │ + final float x = resultPoint.getX(); │ │ │ │ + final float y = resultPoint.getY(); │ │ │ │ + if (x < n4) { │ │ │ │ + n4 = x; │ │ │ │ } │ │ │ │ - if (!b) { │ │ │ │ - list.add(translateResultPoints(decode, n, n2)); │ │ │ │ + if (y < n5) { │ │ │ │ + n5 = y; │ │ │ │ } │ │ │ │ - final ResultPoint[] resultPoints = decode.getResultPoints(); │ │ │ │ - if (resultPoints != null && resultPoints.length != 0) { │ │ │ │ - width = binaryBitmap.getWidth(); │ │ │ │ - height = binaryBitmap.getHeight(); │ │ │ │ - n4 = width; │ │ │ │ - n5 = height; │ │ │ │ - n6 = 0.0f; │ │ │ │ - n7 = 0.0f; │ │ │ │ - for (int length = resultPoints.length, i = 0; i < length; ++i) { │ │ │ │ - resultPoint = resultPoints[i]; │ │ │ │ - if (resultPoint != null) { │ │ │ │ - break Label_0225; │ │ │ │ - } │ │ │ │ - } │ │ │ │ - break; │ │ │ │ + if (x > n6) { │ │ │ │ + n6 = x; │ │ │ │ + } │ │ │ │ + if (y > n7) { │ │ │ │ + n7 = y; │ │ │ │ } │ │ │ │ - return; │ │ │ │ - } │ │ │ │ - catch (ReaderException ex) { │ │ │ │ - return; │ │ │ │ } │ │ │ │ } │ │ │ │ - final float x = resultPoint.getX(); │ │ │ │ - final float y = resultPoint.getY(); │ │ │ │ - if (x < n4) { │ │ │ │ - n4 = x; │ │ │ │ - } │ │ │ │ - if (y < n5) { │ │ │ │ - n5 = y; │ │ │ │ - } │ │ │ │ - if (x > n6) { │ │ │ │ - n6 = x; │ │ │ │ - } │ │ │ │ - if (y > n7) { │ │ │ │ - n7 = y; │ │ │ │ - continue; │ │ │ │ + if (n4 > 100.0f) { │ │ │ │ + this.doDecodeMultiple(binaryBitmap.crop(0, 0, (int)n4, height), map, list, n, n2, n3 + 1); │ │ │ │ + } │ │ │ │ + if (n5 > 100.0f) { │ │ │ │ + this.doDecodeMultiple(binaryBitmap.crop(0, 0, width, (int)n5), map, list, n, n2, n3 + 1); │ │ │ │ + } │ │ │ │ + if (n6 < width - 100) { │ │ │ │ + this.doDecodeMultiple(binaryBitmap.crop((int)n6, 0, width - (int)n6, height), map, list, n + (int)n6, n2, n3 + 1); │ │ │ │ + } │ │ │ │ + if (n7 < height - 100) { │ │ │ │ + this.doDecodeMultiple(binaryBitmap.crop(0, (int)n7, width, height - (int)n7), map, list, n, n2 + (int)n7, n3 + 1); │ │ │ │ } │ │ │ │ - continue; │ │ │ │ } │ │ │ │ } │ │ │ │ - if (n4 > 100.0f) { │ │ │ │ - this.doDecodeMultiple(binaryBitmap.crop(0, 0, (int)n4, height), map, list, n, n2, n3 + 1); │ │ │ │ - } │ │ │ │ - if (n5 > 100.0f) { │ │ │ │ - this.doDecodeMultiple(binaryBitmap.crop(0, 0, width, (int)n5), map, list, n, n2, n3 + 1); │ │ │ │ - } │ │ │ │ - if (n6 < width - 100) { │ │ │ │ - this.doDecodeMultiple(binaryBitmap.crop((int)n6, 0, width - (int)n6, height), map, list, n + (int)n6, n2, n3 + 1); │ │ │ │ - } │ │ │ │ - if (n7 < height - 100) { │ │ │ │ - this.doDecodeMultiple(binaryBitmap.crop(0, (int)n7, width, height - (int)n7), map, list, n, n2 + (int)n7, n3 + 1); │ │ │ │ - } │ │ │ │ + catch (ReaderException ex) {} │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ private static Result translateResultPoints(Result result, final int n, final int n2) { │ │ │ │ final ResultPoint[] resultPoints = result.getResultPoints(); │ │ │ │ if (resultPoints != null) { │ │ │ │ final ResultPoint[] array = new ResultPoint[resultPoints.length]; │ │ │ │ for (int i = 0; i < resultPoints.length; ++i) { │ │ │ │ final ResultPoint resultPoint = resultPoints[i]; │ │ │ │ if (resultPoint != null) { │ │ │ │ array[i] = new ResultPoint(resultPoint.getX() + n, resultPoint.getY() + n2); │ │ │ │ } │ │ │ │ } │ │ │ │ - final Result result2 = new Result(result.getText(), result.getRawBytes(), array, result.getBarcodeFormat()); │ │ │ │ + final Result result2 = new Result(result.getText(), result.getRawBytes(), result.getNumBits(), array, result.getBarcodeFormat(), result.getTimestamp()); │ │ │ │ result2.putAllMetadata(result.getResultMetadata()); │ │ │ │ result = result2; │ │ │ │ } │ │ │ │ return result; │ │ │ │ } │ │ │ │ │ │ │ │ public Result[] decodeMultiple(final BinaryBitmap binaryBitmap) { │ │ ├── com/google/zxing/multi/qrcode/detector/MultiDetector.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -109,15 +109,15 @@ │ │ │ │ 2: invokespecial #14 // Method com/google/zxing/qrcode/detector/Detector."":(Lcom/google/zxing/common/BitMatrix;)V │ │ │ │ 5: return │ │ │ │ │ │ │ │ public com.google.zxing.common.DetectorResult[] detectMulti(java.util.Map); │ │ │ │ descriptor: (Ljava/util/Map;)[Lcom/google/zxing/common/DetectorResult; │ │ │ │ flags: ACC_PUBLIC │ │ │ │ Code: │ │ │ │ - stack=300, locals=12, args_size=2 │ │ │ │ + stack=300, locals=11, args_size=2 │ │ │ │ 0: aload_0 │ │ │ │ 1: invokevirtual #18 // Method getImage:()Lcom/google/zxing/common/BitMatrix; │ │ │ │ 4: astore_2 │ │ │ │ 5: aload_1 │ │ │ │ 6: ifnonnull 45 │ │ │ │ 9: aconst_null │ │ │ │ 10: astore_3 │ │ │ │ @@ -135,75 +135,75 @@ │ │ │ │ 33: arraylength │ │ │ │ 34: istore 6 │ │ │ │ 36: iload 6 │ │ │ │ 38: ifne 69 │ │ │ │ 41: invokestatic #33 // Method com/google/zxing/NotFoundException.getNotFoundInstance:()Lcom/google/zxing/NotFoundException; │ │ │ │ 44: athrow │ │ │ │ 45: getstatic #39 // Field com/google/zxing/DecodeHintType.NEED_RESULT_POINT_CALLBACK:Lcom/google/zxing/DecodeHintType; │ │ │ │ - 48: astore 7 │ │ │ │ + 48: astore 4 │ │ │ │ 50: aload_1 │ │ │ │ - 51: aload 7 │ │ │ │ + 51: aload 4 │ │ │ │ 53: invokeinterface #45, 2 // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object; │ │ │ │ 58: checkcast #47 // class com/google/zxing/ResultPointCallback │ │ │ │ - 61: astore 7 │ │ │ │ - 63: aload 7 │ │ │ │ + 61: astore 4 │ │ │ │ + 63: aload 4 │ │ │ │ 65: astore_3 │ │ │ │ 66: goto 11 │ │ │ │ 69: new #49 // class java/util/ArrayList │ │ │ │ - 72: astore 8 │ │ │ │ - 74: aload 8 │ │ │ │ + 72: astore 7 │ │ │ │ + 74: aload 7 │ │ │ │ 76: invokespecial #52 // Method java/util/ArrayList."":()V │ │ │ │ 79: aload 5 │ │ │ │ 81: arraylength │ │ │ │ - 82: istore 9 │ │ │ │ + 82: istore 8 │ │ │ │ 84: iconst_0 │ │ │ │ 85: istore 6 │ │ │ │ 87: aconst_null │ │ │ │ - 88: astore 7 │ │ │ │ + 88: astore 4 │ │ │ │ 90: iload 6 │ │ │ │ - 92: iload 9 │ │ │ │ + 92: iload 8 │ │ │ │ 94: if_icmpge 131 │ │ │ │ 97: aload 5 │ │ │ │ 99: iload 6 │ │ │ │ 101: aaload │ │ │ │ - 102: astore 10 │ │ │ │ + 102: astore 9 │ │ │ │ 104: aload_0 │ │ │ │ - 105: aload 10 │ │ │ │ + 105: aload 9 │ │ │ │ 107: invokevirtual #56 // Method processFinderPatternInfo:(Lcom/google/zxing/qrcode/detector/FinderPatternInfo;)Lcom/google/zxing/common/DetectorResult; │ │ │ │ - 110: astore 11 │ │ │ │ - 112: aload 8 │ │ │ │ - 114: aload 11 │ │ │ │ + 110: astore 10 │ │ │ │ + 112: aload 7 │ │ │ │ + 114: aload 10 │ │ │ │ 116: invokeinterface #62, 2 // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z │ │ │ │ 121: pop │ │ │ │ 122: iload 6 │ │ │ │ 124: iconst_1 │ │ │ │ 125: iadd │ │ │ │ 126: istore 6 │ │ │ │ 128: goto 90 │ │ │ │ - 131: aload 8 │ │ │ │ + 131: aload 7 │ │ │ │ 133: invokeinterface #66, 1 // InterfaceMethod java/util/List.isEmpty:()Z │ │ │ │ 138: istore 6 │ │ │ │ 140: iload 6 │ │ │ │ 142: ifeq 153 │ │ │ │ 145: getstatic #10 // Field EMPTY_DETECTOR_RESULTS:[Lcom/google/zxing/common/DetectorResult; │ │ │ │ - 148: astore 7 │ │ │ │ - 150: aload 7 │ │ │ │ + 148: astore 4 │ │ │ │ + 150: aload 4 │ │ │ │ 152: areturn │ │ │ │ - 153: aload 8 │ │ │ │ + 153: aload 7 │ │ │ │ 155: invokeinterface #70, 1 // InterfaceMethod java/util/List.size:()I │ │ │ │ 160: istore 6 │ │ │ │ 162: iload 6 │ │ │ │ 164: anewarray #8 // class com/google/zxing/common/DetectorResult │ │ │ │ - 167: astore 7 │ │ │ │ - 169: aload 8 │ │ │ │ - 171: aload 7 │ │ │ │ + 167: astore 4 │ │ │ │ + 169: aload 7 │ │ │ │ + 171: aload 4 │ │ │ │ 173: invokeinterface #74, 2 // InterfaceMethod java/util/List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object; │ │ │ │ 178: checkcast #75 // class "[Lcom/google/zxing/common/DetectorResult;" │ │ │ │ - 181: astore 7 │ │ │ │ + 181: astore 4 │ │ │ │ 183: goto 150 │ │ │ │ - 186: astore 11 │ │ │ │ + 186: astore 10 │ │ │ │ 188: goto 122 │ │ │ │ Exception table: │ │ │ │ from to target type │ │ │ │ 105 110 186 Class com/google/zxing/ReaderException │ │ │ │ 114 122 186 Class com/google/zxing/ReaderException │ │ │ │ } │ │ ├── com/google/zxing/multi/qrcode/detector/MultiFinderPatternFinder.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -244,15 +244,15 @@ │ │ │ │ 3: invokespecial #27 // Method com/google/zxing/qrcode/detector/FinderPatternFinder."":(Lcom/google/zxing/common/BitMatrix;Lcom/google/zxing/ResultPointCallback;)V │ │ │ │ 6: return │ │ │ │ │ │ │ │ private com.google.zxing.qrcode.detector.FinderPattern[][] selectMutipleBestPatterns(); │ │ │ │ descriptor: ()[[Lcom/google/zxing/qrcode/detector/FinderPattern; │ │ │ │ flags: ACC_PRIVATE │ │ │ │ Code: │ │ │ │ - stack=300, locals=36, args_size=1 │ │ │ │ + stack=300, locals=32, args_size=1 │ │ │ │ 0: aload_0 │ │ │ │ 1: invokevirtual #31 // Method getPossibleCenters:()Ljava/util/List; │ │ │ │ 4: astore_1 │ │ │ │ 5: aload_1 │ │ │ │ 6: invokeinterface #37, 1 // InterfaceMethod java/util/List.size:()I │ │ │ │ 11: istore_2 │ │ │ │ 12: iconst_3 │ │ │ │ @@ -352,355 +352,354 @@ │ │ │ │ 184: bipush -2 │ │ │ │ 186: iadd │ │ │ │ 187: istore_3 │ │ │ │ 188: iload_3 │ │ │ │ 189: istore 5 │ │ │ │ 191: iload 14 │ │ │ │ 193: iload_3 │ │ │ │ - 194: if_icmpge 827 │ │ │ │ + 194: if_icmpge 824 │ │ │ │ 197: aload_1 │ │ │ │ 198: iload 14 │ │ │ │ 200: invokeinterface #53, 2 // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object; │ │ │ │ 205: checkcast #49 // class com/google/zxing/qrcode/detector/FinderPattern │ │ │ │ 208: astore 15 │ │ │ │ 210: aload 15 │ │ │ │ - 212: ifnonnull 224 │ │ │ │ + 212: ifnull 815 │ │ │ │ 215: iload 14 │ │ │ │ 217: iconst_1 │ │ │ │ 218: iadd │ │ │ │ - 219: istore 14 │ │ │ │ - 221: goto 183 │ │ │ │ - 224: iload 14 │ │ │ │ - 226: iconst_1 │ │ │ │ - 227: iadd │ │ │ │ - 228: istore 16 │ │ │ │ - 230: iload_2 │ │ │ │ - 231: iconst_m1 │ │ │ │ - 232: iadd │ │ │ │ - 233: istore_3 │ │ │ │ - 234: iload_3 │ │ │ │ - 235: istore 5 │ │ │ │ - 237: iload 16 │ │ │ │ - 239: iload_3 │ │ │ │ - 240: if_icmpge 215 │ │ │ │ - 243: aload_1 │ │ │ │ - 244: iload 16 │ │ │ │ - 246: invokeinterface #53, 2 // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object; │ │ │ │ - 251: checkcast #49 // class com/google/zxing/qrcode/detector/FinderPattern │ │ │ │ - 254: astore 17 │ │ │ │ - 256: aload 17 │ │ │ │ - 258: ifnonnull 270 │ │ │ │ - 261: iload 16 │ │ │ │ - 263: iconst_1 │ │ │ │ - 264: iadd │ │ │ │ - 265: istore 16 │ │ │ │ - 267: goto 230 │ │ │ │ - 270: aload 15 │ │ │ │ - 272: invokevirtual #74 // Method com/google/zxing/qrcode/detector/FinderPattern.getEstimatedModuleSize:()F │ │ │ │ - 275: fstore 4 │ │ │ │ - 277: aload 17 │ │ │ │ - 279: invokevirtual #74 // Method com/google/zxing/qrcode/detector/FinderPattern.getEstimatedModuleSize:()F │ │ │ │ - 282: fstore 12 │ │ │ │ - 284: fload 4 │ │ │ │ - 286: fload 12 │ │ │ │ - 288: fsub │ │ │ │ - 289: fstore 4 │ │ │ │ - 291: aload 15 │ │ │ │ - 293: invokevirtual #74 // Method com/google/zxing/qrcode/detector/FinderPattern.getEstimatedModuleSize:()F │ │ │ │ - 296: fstore 12 │ │ │ │ - 298: aload 17 │ │ │ │ - 300: invokevirtual #74 // Method com/google/zxing/qrcode/detector/FinderPattern.getEstimatedModuleSize:()F │ │ │ │ - 303: fstore 7 │ │ │ │ - 305: fload 12 │ │ │ │ - 307: fload 7 │ │ │ │ - 309: invokestatic #80 // Method java/lang/Math.min:(FF)F │ │ │ │ - 312: fstore 12 │ │ │ │ - 314: fload 4 │ │ │ │ - 316: fload 12 │ │ │ │ - 318: fdiv │ │ │ │ - 319: fstore 18 │ │ │ │ - 321: aload 15 │ │ │ │ - 323: invokevirtual #74 // Method com/google/zxing/qrcode/detector/FinderPattern.getEstimatedModuleSize:()F │ │ │ │ - 326: fstore 4 │ │ │ │ - 328: aload 17 │ │ │ │ - 330: invokevirtual #74 // Method com/google/zxing/qrcode/detector/FinderPattern.getEstimatedModuleSize:()F │ │ │ │ - 333: fstore 12 │ │ │ │ - 335: fload 4 │ │ │ │ - 337: fload 12 │ │ │ │ - 339: fsub │ │ │ │ - 340: invokestatic #84 // Method java/lang/Math.abs:(F)F │ │ │ │ - 343: fstore 19 │ │ │ │ - 345: ldc #8 // float 0.5f │ │ │ │ - 347: fstore 4 │ │ │ │ - 349: fload 19 │ │ │ │ - 351: fload 4 │ │ │ │ - 353: fcmpl │ │ │ │ - 354: istore_3 │ │ │ │ - 355: iload_3 │ │ │ │ - 356: ifle 373 │ │ │ │ - 359: ldc #10 // float 0.05f │ │ │ │ - 361: fstore 4 │ │ │ │ - 363: fload 18 │ │ │ │ - 365: fload 4 │ │ │ │ - 367: fcmpl │ │ │ │ - 368: istore_3 │ │ │ │ - 369: iload_3 │ │ │ │ - 370: ifge 215 │ │ │ │ - 373: iload 16 │ │ │ │ - 375: iconst_1 │ │ │ │ - 376: iadd │ │ │ │ - 377: istore 20 │ │ │ │ - 379: iload_2 │ │ │ │ - 380: istore 5 │ │ │ │ - 382: iload 20 │ │ │ │ - 384: iload_2 │ │ │ │ - 385: if_icmpge 261 │ │ │ │ - 388: aload_1 │ │ │ │ - 389: iload 20 │ │ │ │ - 391: invokeinterface #53, 2 // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object; │ │ │ │ - 396: checkcast #49 // class com/google/zxing/qrcode/detector/FinderPattern │ │ │ │ - 399: astore 21 │ │ │ │ - 401: aload 21 │ │ │ │ - 403: ifnonnull 415 │ │ │ │ - 406: iload 20 │ │ │ │ - 408: iconst_1 │ │ │ │ - 409: iadd │ │ │ │ - 410: istore 20 │ │ │ │ - 412: goto 379 │ │ │ │ - 415: aload 17 │ │ │ │ - 417: invokevirtual #74 // Method com/google/zxing/qrcode/detector/FinderPattern.getEstimatedModuleSize:()F │ │ │ │ - 420: fstore 4 │ │ │ │ - 422: aload 21 │ │ │ │ - 424: invokevirtual #74 // Method com/google/zxing/qrcode/detector/FinderPattern.getEstimatedModuleSize:()F │ │ │ │ - 427: fstore 12 │ │ │ │ - 429: fload 4 │ │ │ │ - 431: fload 12 │ │ │ │ - 433: fsub │ │ │ │ - 434: fstore 4 │ │ │ │ - 436: aload 17 │ │ │ │ - 438: invokevirtual #74 // Method com/google/zxing/qrcode/detector/FinderPattern.getEstimatedModuleSize:()F │ │ │ │ - 441: fstore 12 │ │ │ │ - 443: aload 21 │ │ │ │ - 445: invokevirtual #74 // Method com/google/zxing/qrcode/detector/FinderPattern.getEstimatedModuleSize:()F │ │ │ │ - 448: fstore 7 │ │ │ │ - 450: fload 12 │ │ │ │ - 452: fload 7 │ │ │ │ - 454: invokestatic #80 // Method java/lang/Math.min:(FF)F │ │ │ │ - 457: fstore 12 │ │ │ │ - 459: fload 4 │ │ │ │ - 461: fload 12 │ │ │ │ - 463: fdiv │ │ │ │ - 464: fstore 22 │ │ │ │ - 466: aload 17 │ │ │ │ - 468: invokevirtual #74 // Method com/google/zxing/qrcode/detector/FinderPattern.getEstimatedModuleSize:()F │ │ │ │ - 471: fstore 4 │ │ │ │ - 473: aload 21 │ │ │ │ - 475: invokevirtual #74 // Method com/google/zxing/qrcode/detector/FinderPattern.getEstimatedModuleSize:()F │ │ │ │ - 478: fstore 12 │ │ │ │ - 480: fload 4 │ │ │ │ - 482: fload 12 │ │ │ │ - 484: fsub │ │ │ │ - 485: invokestatic #84 // Method java/lang/Math.abs:(F)F │ │ │ │ - 488: fstore 23 │ │ │ │ - 490: ldc #8 // float 0.5f │ │ │ │ - 492: fstore 4 │ │ │ │ - 494: fload 23 │ │ │ │ - 496: fload 4 │ │ │ │ - 498: fcmpl │ │ │ │ - 499: istore_3 │ │ │ │ - 500: iload_3 │ │ │ │ - 501: ifle 518 │ │ │ │ - 504: ldc #10 // float 0.05f │ │ │ │ - 506: fstore 4 │ │ │ │ - 508: fload 22 │ │ │ │ - 510: fload 4 │ │ │ │ - 512: fcmpl │ │ │ │ - 513: istore_3 │ │ │ │ - 514: iload_3 │ │ │ │ - 515: ifge 261 │ │ │ │ - 518: iconst_3 │ │ │ │ - 519: istore 5 │ │ │ │ - 521: iload 5 │ │ │ │ - 523: anewarray #49 // class com/google/zxing/qrcode/detector/FinderPattern │ │ │ │ - 526: astore 9 │ │ │ │ - 528: aload 9 │ │ │ │ - 530: iconst_0 │ │ │ │ - 531: aload 15 │ │ │ │ - 533: aastore │ │ │ │ - 534: aload 9 │ │ │ │ - 536: iconst_1 │ │ │ │ - 537: aload 17 │ │ │ │ - 539: aastore │ │ │ │ - 540: aload 9 │ │ │ │ - 542: iconst_2 │ │ │ │ - 543: aload 21 │ │ │ │ - 545: aastore │ │ │ │ - 546: aload 9 │ │ │ │ - 548: invokestatic #92 // Method com/google/zxing/ResultPoint.orderBestPatterns:([Lcom/google/zxing/ResultPoint;)V │ │ │ │ - 551: new #18 // class com/google/zxing/qrcode/detector/FinderPatternInfo │ │ │ │ - 554: astore 24 │ │ │ │ - 556: aload 24 │ │ │ │ - 558: aload 9 │ │ │ │ - 560: invokespecial #95 // Method com/google/zxing/qrcode/detector/FinderPatternInfo."":([Lcom/google/zxing/qrcode/detector/FinderPattern;)V │ │ │ │ - 563: aload 24 │ │ │ │ - 565: invokevirtual #99 // Method com/google/zxing/qrcode/detector/FinderPatternInfo.getTopLeft:()Lcom/google/zxing/qrcode/detector/FinderPattern; │ │ │ │ - 568: astore 10 │ │ │ │ - 570: aload 24 │ │ │ │ - 572: invokevirtual #102 // Method com/google/zxing/qrcode/detector/FinderPatternInfo.getBottomLeft:()Lcom/google/zxing/qrcode/detector/FinderPattern; │ │ │ │ - 575: astore 6 │ │ │ │ - 577: aload 10 │ │ │ │ - 579: aload 6 │ │ │ │ - 581: invokestatic #106 // Method com/google/zxing/ResultPoint.distance:(Lcom/google/zxing/ResultPoint;Lcom/google/zxing/ResultPoint;)F │ │ │ │ - 584: fstore 25 │ │ │ │ - 586: aload 24 │ │ │ │ - 588: invokevirtual #109 // Method com/google/zxing/qrcode/detector/FinderPatternInfo.getTopRight:()Lcom/google/zxing/qrcode/detector/FinderPattern; │ │ │ │ - 591: astore 10 │ │ │ │ - 593: aload 24 │ │ │ │ - 595: invokevirtual #102 // Method com/google/zxing/qrcode/detector/FinderPatternInfo.getBottomLeft:()Lcom/google/zxing/qrcode/detector/FinderPattern; │ │ │ │ - 598: astore 6 │ │ │ │ - 600: aload 10 │ │ │ │ - 602: aload 6 │ │ │ │ - 604: invokestatic #106 // Method com/google/zxing/ResultPoint.distance:(Lcom/google/zxing/ResultPoint;Lcom/google/zxing/ResultPoint;)F │ │ │ │ - 607: fstore 26 │ │ │ │ - 609: aload 24 │ │ │ │ - 611: invokevirtual #99 // Method com/google/zxing/qrcode/detector/FinderPatternInfo.getTopLeft:()Lcom/google/zxing/qrcode/detector/FinderPattern; │ │ │ │ - 614: astore 10 │ │ │ │ - 616: aload 24 │ │ │ │ - 618: invokevirtual #109 // Method com/google/zxing/qrcode/detector/FinderPatternInfo.getTopRight:()Lcom/google/zxing/qrcode/detector/FinderPattern; │ │ │ │ - 621: astore 6 │ │ │ │ - 623: aload 10 │ │ │ │ - 625: aload 6 │ │ │ │ - 627: invokestatic #106 // Method com/google/zxing/ResultPoint.distance:(Lcom/google/zxing/ResultPoint;Lcom/google/zxing/ResultPoint;)F │ │ │ │ - 630: fstore 27 │ │ │ │ - 632: fload 25 │ │ │ │ - 634: fload 27 │ │ │ │ - 636: fadd │ │ │ │ - 637: fstore 4 │ │ │ │ - 639: aload 15 │ │ │ │ - 641: invokevirtual #74 // Method com/google/zxing/qrcode/detector/FinderPattern.getEstimatedModuleSize:()F │ │ │ │ - 644: fstore 12 │ │ │ │ - 646: ldc #111 // float 2.0f │ │ │ │ - 648: fstore 7 │ │ │ │ - 650: fload 12 │ │ │ │ - 652: fload 7 │ │ │ │ - 654: fmul │ │ │ │ - 655: fstore 12 │ │ │ │ + 219: istore 16 │ │ │ │ + 221: iload_2 │ │ │ │ + 222: iconst_m1 │ │ │ │ + 223: iadd │ │ │ │ + 224: istore_3 │ │ │ │ + 225: iload_3 │ │ │ │ + 226: istore 5 │ │ │ │ + 228: iload 16 │ │ │ │ + 230: iload_3 │ │ │ │ + 231: if_icmpge 815 │ │ │ │ + 234: aload_1 │ │ │ │ + 235: iload 16 │ │ │ │ + 237: invokeinterface #53, 2 // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object; │ │ │ │ + 242: checkcast #49 // class com/google/zxing/qrcode/detector/FinderPattern │ │ │ │ + 245: astore 17 │ │ │ │ + 247: aload 17 │ │ │ │ + 249: ifnull 806 │ │ │ │ + 252: aload 15 │ │ │ │ + 254: invokevirtual #74 // Method com/google/zxing/qrcode/detector/FinderPattern.getEstimatedModuleSize:()F │ │ │ │ + 257: fstore 4 │ │ │ │ + 259: aload 17 │ │ │ │ + 261: invokevirtual #74 // Method com/google/zxing/qrcode/detector/FinderPattern.getEstimatedModuleSize:()F │ │ │ │ + 264: fstore 12 │ │ │ │ + 266: fload 4 │ │ │ │ + 268: fload 12 │ │ │ │ + 270: fsub │ │ │ │ + 271: fstore 4 │ │ │ │ + 273: aload 15 │ │ │ │ + 275: invokevirtual #74 // Method com/google/zxing/qrcode/detector/FinderPattern.getEstimatedModuleSize:()F │ │ │ │ + 278: fstore 12 │ │ │ │ + 280: aload 17 │ │ │ │ + 282: invokevirtual #74 // Method com/google/zxing/qrcode/detector/FinderPattern.getEstimatedModuleSize:()F │ │ │ │ + 285: fstore 7 │ │ │ │ + 287: fload 12 │ │ │ │ + 289: fload 7 │ │ │ │ + 291: invokestatic #80 // Method java/lang/Math.min:(FF)F │ │ │ │ + 294: fstore 12 │ │ │ │ + 296: fload 4 │ │ │ │ + 298: fload 12 │ │ │ │ + 300: fdiv │ │ │ │ + 301: fstore 18 │ │ │ │ + 303: aload 15 │ │ │ │ + 305: invokevirtual #74 // Method com/google/zxing/qrcode/detector/FinderPattern.getEstimatedModuleSize:()F │ │ │ │ + 308: fstore 4 │ │ │ │ + 310: aload 17 │ │ │ │ + 312: invokevirtual #74 // Method com/google/zxing/qrcode/detector/FinderPattern.getEstimatedModuleSize:()F │ │ │ │ + 315: fstore 12 │ │ │ │ + 317: fload 4 │ │ │ │ + 319: fload 12 │ │ │ │ + 321: fsub │ │ │ │ + 322: invokestatic #84 // Method java/lang/Math.abs:(F)F │ │ │ │ + 325: fstore 4 │ │ │ │ + 327: ldc #8 // float 0.5f │ │ │ │ + 329: fstore 12 │ │ │ │ + 331: fload 4 │ │ │ │ + 333: fload 12 │ │ │ │ + 335: fcmpl │ │ │ │ + 336: istore_3 │ │ │ │ + 337: iload_3 │ │ │ │ + 338: ifle 355 │ │ │ │ + 341: ldc #10 // float 0.05f │ │ │ │ + 343: fstore 4 │ │ │ │ + 345: fload 18 │ │ │ │ + 347: fload 4 │ │ │ │ + 349: fcmpl │ │ │ │ + 350: istore_3 │ │ │ │ + 351: iload_3 │ │ │ │ + 352: ifge 815 │ │ │ │ + 355: iload 16 │ │ │ │ + 357: iconst_1 │ │ │ │ + 358: iadd │ │ │ │ + 359: istore 19 │ │ │ │ + 361: iload_2 │ │ │ │ + 362: istore 5 │ │ │ │ + 364: iload 19 │ │ │ │ + 366: iload_2 │ │ │ │ + 367: if_icmpge 806 │ │ │ │ + 370: aload_1 │ │ │ │ + 371: iload 19 │ │ │ │ + 373: invokeinterface #53, 2 // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object; │ │ │ │ + 378: checkcast #49 // class com/google/zxing/qrcode/detector/FinderPattern │ │ │ │ + 381: astore 20 │ │ │ │ + 383: aload 20 │ │ │ │ + 385: ifnull 797 │ │ │ │ + 388: aload 17 │ │ │ │ + 390: invokevirtual #74 // Method com/google/zxing/qrcode/detector/FinderPattern.getEstimatedModuleSize:()F │ │ │ │ + 393: fstore 4 │ │ │ │ + 395: aload 20 │ │ │ │ + 397: invokevirtual #74 // Method com/google/zxing/qrcode/detector/FinderPattern.getEstimatedModuleSize:()F │ │ │ │ + 400: fstore 12 │ │ │ │ + 402: fload 4 │ │ │ │ + 404: fload 12 │ │ │ │ + 406: fsub │ │ │ │ + 407: fstore 4 │ │ │ │ + 409: aload 17 │ │ │ │ + 411: invokevirtual #74 // Method com/google/zxing/qrcode/detector/FinderPattern.getEstimatedModuleSize:()F │ │ │ │ + 414: fstore 12 │ │ │ │ + 416: aload 20 │ │ │ │ + 418: invokevirtual #74 // Method com/google/zxing/qrcode/detector/FinderPattern.getEstimatedModuleSize:()F │ │ │ │ + 421: fstore 7 │ │ │ │ + 423: fload 12 │ │ │ │ + 425: fload 7 │ │ │ │ + 427: invokestatic #80 // Method java/lang/Math.min:(FF)F │ │ │ │ + 430: fstore 12 │ │ │ │ + 432: fload 4 │ │ │ │ + 434: fload 12 │ │ │ │ + 436: fdiv │ │ │ │ + 437: fstore 21 │ │ │ │ + 439: aload 17 │ │ │ │ + 441: invokevirtual #74 // Method com/google/zxing/qrcode/detector/FinderPattern.getEstimatedModuleSize:()F │ │ │ │ + 444: fstore 4 │ │ │ │ + 446: aload 20 │ │ │ │ + 448: invokevirtual #74 // Method com/google/zxing/qrcode/detector/FinderPattern.getEstimatedModuleSize:()F │ │ │ │ + 451: fstore 12 │ │ │ │ + 453: fload 4 │ │ │ │ + 455: fload 12 │ │ │ │ + 457: fsub │ │ │ │ + 458: invokestatic #84 // Method java/lang/Math.abs:(F)F │ │ │ │ + 461: fstore 4 │ │ │ │ + 463: ldc #8 // float 0.5f │ │ │ │ + 465: fstore 12 │ │ │ │ + 467: fload 4 │ │ │ │ + 469: fload 12 │ │ │ │ + 471: fcmpl │ │ │ │ + 472: istore_3 │ │ │ │ + 473: iload_3 │ │ │ │ + 474: ifle 491 │ │ │ │ + 477: ldc #10 // float 0.05f │ │ │ │ + 479: fstore 4 │ │ │ │ + 481: fload 21 │ │ │ │ + 483: fload 4 │ │ │ │ + 485: fcmpl │ │ │ │ + 486: istore_3 │ │ │ │ + 487: iload_3 │ │ │ │ + 488: ifge 806 │ │ │ │ + 491: iconst_3 │ │ │ │ + 492: istore 5 │ │ │ │ + 494: iload 5 │ │ │ │ + 496: anewarray #49 // class com/google/zxing/qrcode/detector/FinderPattern │ │ │ │ + 499: astore 9 │ │ │ │ + 501: aload 9 │ │ │ │ + 503: iconst_0 │ │ │ │ + 504: aload 15 │ │ │ │ + 506: aastore │ │ │ │ + 507: aload 9 │ │ │ │ + 509: iconst_1 │ │ │ │ + 510: aload 17 │ │ │ │ + 512: aastore │ │ │ │ + 513: aload 9 │ │ │ │ + 515: iconst_2 │ │ │ │ + 516: aload 20 │ │ │ │ + 518: aastore │ │ │ │ + 519: aload 9 │ │ │ │ + 521: invokestatic #92 // Method com/google/zxing/ResultPoint.orderBestPatterns:([Lcom/google/zxing/ResultPoint;)V │ │ │ │ + 524: new #18 // class com/google/zxing/qrcode/detector/FinderPatternInfo │ │ │ │ + 527: astore 22 │ │ │ │ + 529: aload 22 │ │ │ │ + 531: aload 9 │ │ │ │ + 533: invokespecial #95 // Method com/google/zxing/qrcode/detector/FinderPatternInfo."":([Lcom/google/zxing/qrcode/detector/FinderPattern;)V │ │ │ │ + 536: aload 22 │ │ │ │ + 538: invokevirtual #99 // Method com/google/zxing/qrcode/detector/FinderPatternInfo.getTopLeft:()Lcom/google/zxing/qrcode/detector/FinderPattern; │ │ │ │ + 541: astore 10 │ │ │ │ + 543: aload 22 │ │ │ │ + 545: invokevirtual #102 // Method com/google/zxing/qrcode/detector/FinderPatternInfo.getBottomLeft:()Lcom/google/zxing/qrcode/detector/FinderPattern; │ │ │ │ + 548: astore 6 │ │ │ │ + 550: aload 10 │ │ │ │ + 552: aload 6 │ │ │ │ + 554: invokestatic #106 // Method com/google/zxing/ResultPoint.distance:(Lcom/google/zxing/ResultPoint;Lcom/google/zxing/ResultPoint;)F │ │ │ │ + 557: fstore 23 │ │ │ │ + 559: aload 22 │ │ │ │ + 561: invokevirtual #109 // Method com/google/zxing/qrcode/detector/FinderPatternInfo.getTopRight:()Lcom/google/zxing/qrcode/detector/FinderPattern; │ │ │ │ + 564: astore 10 │ │ │ │ + 566: aload 22 │ │ │ │ + 568: invokevirtual #102 // Method com/google/zxing/qrcode/detector/FinderPatternInfo.getBottomLeft:()Lcom/google/zxing/qrcode/detector/FinderPattern; │ │ │ │ + 571: astore 6 │ │ │ │ + 573: aload 10 │ │ │ │ + 575: aload 6 │ │ │ │ + 577: invokestatic #106 // Method com/google/zxing/ResultPoint.distance:(Lcom/google/zxing/ResultPoint;Lcom/google/zxing/ResultPoint;)F │ │ │ │ + 580: fstore 24 │ │ │ │ + 582: aload 22 │ │ │ │ + 584: invokevirtual #99 // Method com/google/zxing/qrcode/detector/FinderPatternInfo.getTopLeft:()Lcom/google/zxing/qrcode/detector/FinderPattern; │ │ │ │ + 587: astore 10 │ │ │ │ + 589: aload 22 │ │ │ │ + 591: invokevirtual #109 // Method com/google/zxing/qrcode/detector/FinderPatternInfo.getTopRight:()Lcom/google/zxing/qrcode/detector/FinderPattern; │ │ │ │ + 594: astore 6 │ │ │ │ + 596: aload 10 │ │ │ │ + 598: aload 6 │ │ │ │ + 600: invokestatic #106 // Method com/google/zxing/ResultPoint.distance:(Lcom/google/zxing/ResultPoint;Lcom/google/zxing/ResultPoint;)F │ │ │ │ + 603: fstore 25 │ │ │ │ + 605: fload 23 │ │ │ │ + 607: fload 25 │ │ │ │ + 609: fadd │ │ │ │ + 610: fstore 4 │ │ │ │ + 612: aload 15 │ │ │ │ + 614: invokevirtual #74 // Method com/google/zxing/qrcode/detector/FinderPattern.getEstimatedModuleSize:()F │ │ │ │ + 617: fstore 12 │ │ │ │ + 619: ldc #111 // float 2.0f │ │ │ │ + 621: fstore 7 │ │ │ │ + 623: fload 12 │ │ │ │ + 625: fload 7 │ │ │ │ + 627: fmul │ │ │ │ + 628: fstore 12 │ │ │ │ + 630: fload 4 │ │ │ │ + 632: fload 12 │ │ │ │ + 634: fdiv │ │ │ │ + 635: fstore 26 │ │ │ │ + 637: ldc #14 // float 180.0f │ │ │ │ + 639: fstore 4 │ │ │ │ + 641: fload 26 │ │ │ │ + 643: fload 4 │ │ │ │ + 645: fcmpl │ │ │ │ + 646: istore_3 │ │ │ │ + 647: iload_3 │ │ │ │ + 648: ifgt 797 │ │ │ │ + 651: ldc #16 // float 9.0f │ │ │ │ + 653: fstore 4 │ │ │ │ + 655: fload 26 │ │ │ │ 657: fload 4 │ │ │ │ - 659: fload 12 │ │ │ │ - 661: fdiv │ │ │ │ - 662: fstore 28 │ │ │ │ - 664: ldc #14 // float 180.0f │ │ │ │ - 666: fstore 4 │ │ │ │ - 668: fload 28 │ │ │ │ - 670: fload 4 │ │ │ │ - 672: fcmpl │ │ │ │ - 673: istore_3 │ │ │ │ - 674: iload_3 │ │ │ │ - 675: ifgt 406 │ │ │ │ - 678: ldc #16 // float 9.0f │ │ │ │ - 680: fstore 4 │ │ │ │ - 682: fload 28 │ │ │ │ - 684: fload 4 │ │ │ │ - 686: fcmpg │ │ │ │ - 687: istore_3 │ │ │ │ - 688: iload_3 │ │ │ │ - 689: iflt 406 │ │ │ │ - 692: fload 25 │ │ │ │ - 694: fload 27 │ │ │ │ - 696: fsub │ │ │ │ - 697: fstore 4 │ │ │ │ - 699: fload 25 │ │ │ │ - 701: fload 27 │ │ │ │ - 703: invokestatic #80 // Method java/lang/Math.min:(FF)F │ │ │ │ - 706: fstore 12 │ │ │ │ - 708: fload 4 │ │ │ │ - 710: fload 12 │ │ │ │ - 712: fdiv │ │ │ │ - 713: invokestatic #84 // Method java/lang/Math.abs:(F)F │ │ │ │ - 716: fstore 29 │ │ │ │ - 718: ldc #115 // float 0.1f │ │ │ │ - 720: fstore 4 │ │ │ │ - 722: fload 29 │ │ │ │ - 724: fload 4 │ │ │ │ - 726: fcmpl │ │ │ │ - 727: istore_3 │ │ │ │ - 728: iload_3 │ │ │ │ - 729: ifge 406 │ │ │ │ - 732: fload 25 │ │ │ │ - 734: fload 25 │ │ │ │ - 736: fmul │ │ │ │ - 737: fstore 4 │ │ │ │ - 739: fload 27 │ │ │ │ - 741: fload 27 │ │ │ │ - 743: fmul │ │ │ │ - 744: fstore 12 │ │ │ │ - 746: fload 4 │ │ │ │ - 748: fload 12 │ │ │ │ - 750: fadd │ │ │ │ - 751: f2d │ │ │ │ - 752: dstore 30 │ │ │ │ - 754: dload 30 │ │ │ │ - 756: dstore 32 │ │ │ │ - 758: dload 30 │ │ │ │ - 760: invokestatic #119 // Method java/lang/Math.sqrt:(D)D │ │ │ │ - 763: dstore 32 │ │ │ │ - 765: dload 32 │ │ │ │ - 767: dstore 30 │ │ │ │ - 769: dload 32 │ │ │ │ - 771: d2f │ │ │ │ - 772: fstore 34 │ │ │ │ - 774: fload 26 │ │ │ │ - 776: fload 34 │ │ │ │ - 778: fsub │ │ │ │ - 779: fstore 4 │ │ │ │ - 781: fload 26 │ │ │ │ - 783: fload 34 │ │ │ │ - 785: invokestatic #80 // Method java/lang/Math.min:(FF)F │ │ │ │ - 788: fstore 12 │ │ │ │ - 790: fload 4 │ │ │ │ - 792: fload 12 │ │ │ │ - 794: fdiv │ │ │ │ - 795: invokestatic #84 // Method java/lang/Math.abs:(F)F │ │ │ │ - 798: fstore 35 │ │ │ │ - 800: ldc #115 // float 0.1f │ │ │ │ - 802: fstore 4 │ │ │ │ - 804: fload 35 │ │ │ │ - 806: fload 4 │ │ │ │ - 808: fcmpl │ │ │ │ - 809: istore_3 │ │ │ │ - 810: iload_3 │ │ │ │ - 811: ifge 406 │ │ │ │ - 814: aload 13 │ │ │ │ - 816: aload 9 │ │ │ │ - 818: invokeinterface #123, 2 // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z │ │ │ │ - 823: pop │ │ │ │ - 824: goto 406 │ │ │ │ - 827: aload 13 │ │ │ │ - 829: invokeinterface #127, 1 // InterfaceMethod java/util/List.isEmpty:()Z │ │ │ │ - 834: istore_3 │ │ │ │ - 835: iload_3 │ │ │ │ - 836: ifne 877 │ │ │ │ - 839: aload 13 │ │ │ │ - 841: invokeinterface #37, 1 // InterfaceMethod java/util/List.size:()I │ │ │ │ - 846: istore_3 │ │ │ │ + 659: fcmpg │ │ │ │ + 660: istore_3 │ │ │ │ + 661: iload_3 │ │ │ │ + 662: iflt 797 │ │ │ │ + 665: fload 23 │ │ │ │ + 667: fload 25 │ │ │ │ + 669: fsub │ │ │ │ + 670: fstore 4 │ │ │ │ + 672: fload 23 │ │ │ │ + 674: fload 25 │ │ │ │ + 676: invokestatic #80 // Method java/lang/Math.min:(FF)F │ │ │ │ + 679: fstore 12 │ │ │ │ + 681: fload 4 │ │ │ │ + 683: fload 12 │ │ │ │ + 685: fdiv │ │ │ │ + 686: invokestatic #84 // Method java/lang/Math.abs:(F)F │ │ │ │ + 689: fstore 4 │ │ │ │ + 691: ldc #115 // float 0.1f │ │ │ │ + 693: fstore 12 │ │ │ │ + 695: fload 4 │ │ │ │ + 697: fload 12 │ │ │ │ + 699: fcmpl │ │ │ │ + 700: istore_3 │ │ │ │ + 701: iload_3 │ │ │ │ + 702: ifge 797 │ │ │ │ + 705: fload 23 │ │ │ │ + 707: fload 23 │ │ │ │ + 709: fmul │ │ │ │ + 710: fstore 4 │ │ │ │ + 712: fload 25 │ │ │ │ + 714: fload 25 │ │ │ │ + 716: fmul │ │ │ │ + 717: fstore 12 │ │ │ │ + 719: fload 4 │ │ │ │ + 721: fload 12 │ │ │ │ + 723: fadd │ │ │ │ + 724: f2d │ │ │ │ + 725: dstore 27 │ │ │ │ + 727: dload 27 │ │ │ │ + 729: dstore 29 │ │ │ │ + 731: dload 27 │ │ │ │ + 733: invokestatic #119 // Method java/lang/Math.sqrt:(D)D │ │ │ │ + 736: dstore 29 │ │ │ │ + 738: dload 29 │ │ │ │ + 740: dstore 27 │ │ │ │ + 742: dload 29 │ │ │ │ + 744: d2f │ │ │ │ + 745: fstore 31 │ │ │ │ + 747: fload 24 │ │ │ │ + 749: fload 31 │ │ │ │ + 751: fsub │ │ │ │ + 752: fstore 4 │ │ │ │ + 754: fload 24 │ │ │ │ + 756: fload 31 │ │ │ │ + 758: invokestatic #80 // Method java/lang/Math.min:(FF)F │ │ │ │ + 761: fstore 12 │ │ │ │ + 763: fload 4 │ │ │ │ + 765: fload 12 │ │ │ │ + 767: fdiv │ │ │ │ + 768: invokestatic #84 // Method java/lang/Math.abs:(F)F │ │ │ │ + 771: fstore 4 │ │ │ │ + 773: ldc #115 // float 0.1f │ │ │ │ + 775: fstore 12 │ │ │ │ + 777: fload 4 │ │ │ │ + 779: fload 12 │ │ │ │ + 781: fcmpl │ │ │ │ + 782: istore_3 │ │ │ │ + 783: iload_3 │ │ │ │ + 784: ifge 797 │ │ │ │ + 787: aload 13 │ │ │ │ + 789: aload 9 │ │ │ │ + 791: invokeinterface #123, 2 // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z │ │ │ │ + 796: pop │ │ │ │ + 797: iload 19 │ │ │ │ + 799: iconst_1 │ │ │ │ + 800: iadd │ │ │ │ + 801: istore 19 │ │ │ │ + 803: goto 361 │ │ │ │ + 806: iload 16 │ │ │ │ + 808: iconst_1 │ │ │ │ + 809: iadd │ │ │ │ + 810: istore 16 │ │ │ │ + 812: goto 221 │ │ │ │ + 815: iload 14 │ │ │ │ + 817: iconst_1 │ │ │ │ + 818: iadd │ │ │ │ + 819: istore 14 │ │ │ │ + 821: goto 183 │ │ │ │ + 824: aload 13 │ │ │ │ + 826: invokeinterface #127, 1 // InterfaceMethod java/util/List.isEmpty:()Z │ │ │ │ + 831: istore_3 │ │ │ │ + 832: iload_3 │ │ │ │ + 833: ifne 874 │ │ │ │ + 836: aload 13 │ │ │ │ + 838: invokeinterface #37, 1 // InterfaceMethod java/util/List.size:()I │ │ │ │ + 843: istore_3 │ │ │ │ + 844: iload_3 │ │ │ │ + 845: istore 5 │ │ │ │ 847: iload_3 │ │ │ │ - 848: istore 5 │ │ │ │ - 850: iload_3 │ │ │ │ - 851: anewarray #47 // class "[Lcom/google/zxing/qrcode/detector/FinderPattern;" │ │ │ │ - 854: astore 9 │ │ │ │ - 856: aload 9 │ │ │ │ - 858: astore 10 │ │ │ │ - 860: aload 13 │ │ │ │ - 862: aload 9 │ │ │ │ - 864: invokeinterface #131, 2 // InterfaceMethod java/util/List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object; │ │ │ │ - 869: checkcast #133 // class "[[Lcom/google/zxing/qrcode/detector/FinderPattern;" │ │ │ │ - 872: astore 10 │ │ │ │ - 874: goto 140 │ │ │ │ - 877: invokestatic #44 // Method com/google/zxing/NotFoundException.getNotFoundInstance:()Lcom/google/zxing/NotFoundException; │ │ │ │ - 880: athrow │ │ │ │ + 848: anewarray #47 // class "[Lcom/google/zxing/qrcode/detector/FinderPattern;" │ │ │ │ + 851: astore 9 │ │ │ │ + 853: aload 9 │ │ │ │ + 855: astore 10 │ │ │ │ + 857: aload 13 │ │ │ │ + 859: aload 9 │ │ │ │ + 861: invokeinterface #131, 2 // InterfaceMethod java/util/List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object; │ │ │ │ + 866: checkcast #133 // class "[[Lcom/google/zxing/qrcode/detector/FinderPattern;" │ │ │ │ + 869: astore 10 │ │ │ │ + 871: goto 140 │ │ │ │ + 874: invokestatic #44 // Method com/google/zxing/NotFoundException.getNotFoundInstance:()Lcom/google/zxing/NotFoundException; │ │ │ │ + 877: athrow │ │ │ │ │ │ │ │ public com.google.zxing.qrcode.detector.FinderPatternInfo[] findMulti(java.util.Map); │ │ │ │ descriptor: (Ljava/util/Map;)[Lcom/google/zxing/qrcode/detector/FinderPatternInfo; │ │ │ │ flags: ACC_PUBLIC │ │ │ │ Code: │ │ │ │ stack=300, locals=21, args_size=2 │ │ │ │ 0: aload_1 │ │ ├── com/google/zxing/oned/OneDReader.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,396 +1,157 @@ │ │ │ │ │ │ │ │ package com.google.zxing.oned; │ │ │ │ │ │ │ │ +import java.util.Arrays; │ │ │ │ +import com.google.zxing.ReaderException; │ │ │ │ import com.google.zxing.ResultPoint; │ │ │ │ import com.google.zxing.ResultMetadataType; │ │ │ │ -import com.google.zxing.DecodeHintType; │ │ │ │ +import java.util.EnumMap; │ │ │ │ import com.google.zxing.NotFoundException; │ │ │ │ -import java.util.Arrays; │ │ │ │ +import com.google.zxing.DecodeHintType; │ │ │ │ import com.google.zxing.common.BitArray; │ │ │ │ import com.google.zxing.Result; │ │ │ │ import java.util.Map; │ │ │ │ import com.google.zxing.BinaryBitmap; │ │ │ │ import com.google.zxing.Reader; │ │ │ │ │ │ │ │ public abstract class OneDReader implements Reader │ │ │ │ { │ │ │ │ - private Result doDecode(final BinaryBitmap p0, final Map p1) { │ │ │ │ - // │ │ │ │ - // This method could not be decompiled. │ │ │ │ - // │ │ │ │ - // Original Bytecode: │ │ │ │ - // │ │ │ │ - // 1: invokevirtual com/google/zxing/BinaryBitmap.getWidth:()I │ │ │ │ - // 4: istore_3 │ │ │ │ - // 5: aload_1 │ │ │ │ - // 6: invokevirtual com/google/zxing/BinaryBitmap.getHeight:()I │ │ │ │ - // 9: istore 4 │ │ │ │ - // 11: new Lcom/google/zxing/common/BitArray; │ │ │ │ - // 14: astore 5 │ │ │ │ - // 16: aload 5 │ │ │ │ - // 18: iload_3 │ │ │ │ - // 19: invokespecial com/google/zxing/common/BitArray.:(I)V │ │ │ │ - // 22: iload 4 │ │ │ │ - // 24: iconst_1 │ │ │ │ - // 25: ishr │ │ │ │ - // 26: istore 6 │ │ │ │ - // 28: aload_2 │ │ │ │ - // 29: ifnull 174 │ │ │ │ - // 32: getstatic com/google/zxing/DecodeHintType.TRY_HARDER:Lcom/google/zxing/DecodeHintType; │ │ │ │ - // 35: astore 7 │ │ │ │ - // 37: aload_2 │ │ │ │ - // 38: astore 8 │ │ │ │ - // 40: aload_2 │ │ │ │ - // 41: aload 7 │ │ │ │ - // 43: invokeinterface java/util/Map.containsKey:(Ljava/lang/Object;)Z │ │ │ │ - // 48: istore 9 │ │ │ │ - // 50: iload 9 │ │ │ │ - // 52: ifeq 174 │ │ │ │ - // 55: iconst_1 │ │ │ │ - // 56: istore 10 │ │ │ │ - // 58: iconst_1 │ │ │ │ - // 59: istore 11 │ │ │ │ - // 61: ldc 1.4E-45 │ │ │ │ - // 63: fstore 12 │ │ │ │ - // 65: iload 10 │ │ │ │ - // 67: ifeq 180 │ │ │ │ - // 70: bipush 8 │ │ │ │ - // 72: istore 9 │ │ │ │ - // 74: ldc 1.1E-44 │ │ │ │ - // 76: fstore 13 │ │ │ │ - // 78: iload 4 │ │ │ │ - // 80: iload 9 │ │ │ │ - // 82: ishr │ │ │ │ - // 83: istore 9 │ │ │ │ - // 85: fload 12 │ │ │ │ - // 87: fstore 14 │ │ │ │ - // 89: iload 11 │ │ │ │ - // 91: iload 9 │ │ │ │ - // 93: invokestatic java/lang/Math.max:(II)I │ │ │ │ - // 96: istore 15 │ │ │ │ - // 98: iload 10 │ │ │ │ - // 100: ifeq 190 │ │ │ │ - // 103: iload 4 │ │ │ │ - // 105: istore 16 │ │ │ │ - // 107: iconst_0 │ │ │ │ - // 108: istore 17 │ │ │ │ - // 110: iload 17 │ │ │ │ - // 112: iload 16 │ │ │ │ - // 114: if_icmpge 170 │ │ │ │ - // 117: iload 17 │ │ │ │ - // 119: iconst_1 │ │ │ │ - // 120: iadd │ │ │ │ - // 121: iconst_2 │ │ │ │ - // 122: idiv │ │ │ │ - // 123: istore 18 │ │ │ │ - // 125: iload 17 │ │ │ │ - // 127: iconst_1 │ │ │ │ - // 128: iand │ │ │ │ - // 129: istore 9 │ │ │ │ - // 131: iload 9 │ │ │ │ - // 133: ifne 197 │ │ │ │ - // 136: iconst_1 │ │ │ │ - // 137: istore 19 │ │ │ │ - // 139: iload 19 │ │ │ │ - // 141: ifeq 203 │ │ │ │ - // 144: iload 15 │ │ │ │ - // 146: iload 18 │ │ │ │ - // 148: imul │ │ │ │ - // 149: istore 9 │ │ │ │ - // 151: iload 6 │ │ │ │ - // 153: iload 9 │ │ │ │ - // 155: iadd │ │ │ │ - // 156: istore 20 │ │ │ │ - // 158: iload 20 │ │ │ │ - // 160: iflt 170 │ │ │ │ - // 163: iload 20 │ │ │ │ - // 165: iload 4 │ │ │ │ - // 167: if_icmplt 211 │ │ │ │ - // 170: invokestatic com/google/zxing/NotFoundException.getNotFoundInstance:()Lcom/google/zxing/NotFoundException; │ │ │ │ - // 173: athrow │ │ │ │ - // 174: iconst_0 │ │ │ │ - // 175: istore 10 │ │ │ │ - // 177: goto 58 │ │ │ │ - // 180: iconst_5 │ │ │ │ - // 181: istore 9 │ │ │ │ - // 183: ldc 7.0E-45 │ │ │ │ - // 185: fstore 13 │ │ │ │ - // 187: goto 78 │ │ │ │ - // 190: bipush 15 │ │ │ │ - // 192: istore 16 │ │ │ │ - // 194: goto 107 │ │ │ │ - // 197: iconst_0 │ │ │ │ - // 198: istore 19 │ │ │ │ - // 200: goto 139 │ │ │ │ - // 203: iload 18 │ │ │ │ - // 205: ineg │ │ │ │ - // 206: istore 18 │ │ │ │ - // 208: goto 144 │ │ │ │ - // 211: aload_1 │ │ │ │ - // 212: astore 8 │ │ │ │ - // 214: aload_1 │ │ │ │ - // 215: iload 20 │ │ │ │ - // 217: aload 5 │ │ │ │ - // 219: invokevirtual com/google/zxing/BinaryBitmap.getBlackRow:(ILcom/google/zxing/common/BitArray;)Lcom/google/zxing/common/BitArray; │ │ │ │ - // 222: astore 5 │ │ │ │ - // 224: iconst_0 │ │ │ │ - // 225: istore 21 │ │ │ │ - // 227: iconst_2 │ │ │ │ - // 228: istore 9 │ │ │ │ - // 230: ldc 2.8E-45 │ │ │ │ - // 232: fstore 13 │ │ │ │ - // 234: fload 13 │ │ │ │ - // 236: fstore 14 │ │ │ │ - // 238: iload 21 │ │ │ │ - // 240: iload 9 │ │ │ │ - // 242: if_icmpge 605 │ │ │ │ - // 245: iconst_1 │ │ │ │ - // 246: istore 9 │ │ │ │ - // 248: ldc 1.4E-45 │ │ │ │ - // 250: fstore 13 │ │ │ │ - // 252: fload 13 │ │ │ │ - // 254: fstore 14 │ │ │ │ - // 256: iload 21 │ │ │ │ - // 258: iload 9 │ │ │ │ - // 260: if_icmpne 344 │ │ │ │ - // 263: aload 5 │ │ │ │ - // 265: invokevirtual com/google/zxing/common/BitArray.reverse:()V │ │ │ │ - // 268: aload_2 │ │ │ │ - // 269: ifnull 344 │ │ │ │ - // 272: getstatic com/google/zxing/DecodeHintType.NEED_RESULT_POINT_CALLBACK:Lcom/google/zxing/DecodeHintType; │ │ │ │ - // 275: astore 7 │ │ │ │ - // 277: aload_2 │ │ │ │ - // 278: astore 8 │ │ │ │ - // 280: aload_2 │ │ │ │ - // 281: aload 7 │ │ │ │ - // 283: invokeinterface java/util/Map.containsKey:(Ljava/lang/Object;)Z │ │ │ │ - // 288: istore 9 │ │ │ │ - // 290: iload 9 │ │ │ │ - // 292: ifeq 344 │ │ │ │ - // 295: new Ljava/util/EnumMap; │ │ │ │ - // 298: astore 22 │ │ │ │ - // 300: ldc Lcom/google/zxing/DecodeHintType;.class │ │ │ │ - // 302: astore 8 │ │ │ │ - // 304: aload 22 │ │ │ │ - // 306: aload 8 │ │ │ │ - // 308: invokespecial java/util/EnumMap.:(Ljava/lang/Class;)V │ │ │ │ - // 311: aload_2 │ │ │ │ - // 312: astore 8 │ │ │ │ - // 314: aload 22 │ │ │ │ - // 316: aload_2 │ │ │ │ - // 317: invokeinterface java/util/Map.putAll:(Ljava/util/Map;)V │ │ │ │ - // 322: getstatic com/google/zxing/DecodeHintType.NEED_RESULT_POINT_CALLBACK:Lcom/google/zxing/DecodeHintType; │ │ │ │ - // 325: astore 7 │ │ │ │ - // 327: aload 7 │ │ │ │ - // 329: astore 8 │ │ │ │ - // 331: aload 22 │ │ │ │ - // 333: aload 7 │ │ │ │ - // 335: invokeinterface java/util/Map.remove:(Ljava/lang/Object;)Ljava/lang/Object; │ │ │ │ - // 340: pop │ │ │ │ - // 341: aload 22 │ │ │ │ - // 343: astore_2 │ │ │ │ - // 344: aload_0 │ │ │ │ - // 345: astore 8 │ │ │ │ - // 347: aload_0 │ │ │ │ - // 348: iload 20 │ │ │ │ - // 350: aload 5 │ │ │ │ - // 352: aload_2 │ │ │ │ - // 353: invokevirtual com/google/zxing/oned/OneDReader.decodeRow:(ILcom/google/zxing/common/BitArray;Ljava/util/Map;)Lcom/google/zxing/Result; │ │ │ │ - // 356: astore 23 │ │ │ │ - // 358: iconst_1 │ │ │ │ - // 359: istore 9 │ │ │ │ - // 361: ldc 1.4E-45 │ │ │ │ - // 363: fstore 13 │ │ │ │ - // 365: fload 13 │ │ │ │ - // 367: fstore 14 │ │ │ │ - // 369: iload 21 │ │ │ │ - // 371: iload 9 │ │ │ │ - // 373: if_icmpne 601 │ │ │ │ - // 376: getstatic com/google/zxing/ResultMetadataType.ORIENTATION:Lcom/google/zxing/ResultMetadataType; │ │ │ │ - // 379: astore 7 │ │ │ │ - // 381: sipush 180 │ │ │ │ - // 384: istore 11 │ │ │ │ - // 386: ldc 2.52E-43 │ │ │ │ - // 388: fstore 12 │ │ │ │ - // 390: iload 11 │ │ │ │ - // 392: invokestatic java/lang/Integer.valueOf:(I)Ljava/lang/Integer; │ │ │ │ - // 395: astore 24 │ │ │ │ - // 397: aload 7 │ │ │ │ - // 399: astore 8 │ │ │ │ - // 401: aload 23 │ │ │ │ - // 403: aload 7 │ │ │ │ - // 405: aload 24 │ │ │ │ - // 407: invokevirtual com/google/zxing/Result.putMetadata:(Lcom/google/zxing/ResultMetadataType;Ljava/lang/Object;)V │ │ │ │ - // 410: aload 23 │ │ │ │ - // 412: invokevirtual com/google/zxing/Result.getResultPoints:()[Lcom/google/zxing/ResultPoint; │ │ │ │ - // 415: astore 25 │ │ │ │ - // 417: aload 25 │ │ │ │ - // 419: ifnull 601 │ │ │ │ - // 422: iconst_0 │ │ │ │ - // 423: istore 9 │ │ │ │ - // 425: fconst_0 │ │ │ │ - // 426: fstore 13 │ │ │ │ - // 428: aconst_null │ │ │ │ - // 429: astore 7 │ │ │ │ - // 431: new Lcom/google/zxing/ResultPoint; │ │ │ │ - // 434: astore 24 │ │ │ │ - // 436: iload_3 │ │ │ │ - // 437: i2f │ │ │ │ - // 438: fstore 14 │ │ │ │ - // 440: fload 14 │ │ │ │ - // 442: fstore 26 │ │ │ │ - // 444: iconst_0 │ │ │ │ - // 445: istore 27 │ │ │ │ - // 447: fconst_0 │ │ │ │ - // 448: fstore 28 │ │ │ │ - // 450: aconst_null │ │ │ │ - // 451: astore 29 │ │ │ │ - // 453: aload 25 │ │ │ │ - // 455: iconst_0 │ │ │ │ - // 456: aaload │ │ │ │ - // 457: astore 29 │ │ │ │ - // 459: aload 29 │ │ │ │ - // 461: invokevirtual com/google/zxing/ResultPoint.getX:()F │ │ │ │ - // 464: fstore 28 │ │ │ │ - // 466: fload 14 │ │ │ │ - // 468: fload 28 │ │ │ │ - // 470: fsub │ │ │ │ - // 471: ldc 1.0 │ │ │ │ - // 473: fsub │ │ │ │ - // 474: fstore 26 │ │ │ │ - // 476: iconst_0 │ │ │ │ - // 477: istore 27 │ │ │ │ - // 479: fconst_0 │ │ │ │ - // 480: fstore 28 │ │ │ │ - // 482: aconst_null │ │ │ │ - // 483: astore 29 │ │ │ │ - // 485: aload 25 │ │ │ │ - // 487: iconst_0 │ │ │ │ - // 488: aaload │ │ │ │ - // 489: astore 29 │ │ │ │ - // 491: aload 29 │ │ │ │ - // 493: invokevirtual com/google/zxing/ResultPoint.getY:()F │ │ │ │ - // 496: fstore 28 │ │ │ │ - // 498: aload 24 │ │ │ │ - // 500: fload 26 │ │ │ │ - // 502: fload 28 │ │ │ │ - // 504: invokespecial com/google/zxing/ResultPoint.:(FF)V │ │ │ │ - // 507: aload 25 │ │ │ │ - // 509: iconst_0 │ │ │ │ - // 510: aload 24 │ │ │ │ - // 512: aastore │ │ │ │ - // 513: iconst_1 │ │ │ │ - // 514: istore 9 │ │ │ │ - // 516: ldc 1.4E-45 │ │ │ │ - // 518: fstore 13 │ │ │ │ - // 520: new Lcom/google/zxing/ResultPoint; │ │ │ │ - // 523: astore 24 │ │ │ │ - // 525: iload_3 │ │ │ │ - // 526: i2f │ │ │ │ - // 527: fstore 14 │ │ │ │ - // 529: fload 14 │ │ │ │ - // 531: fstore 26 │ │ │ │ - // 533: iconst_1 │ │ │ │ - // 534: istore 27 │ │ │ │ - // 536: ldc 1.4E-45 │ │ │ │ - // 538: fstore 28 │ │ │ │ - // 540: aload 25 │ │ │ │ - // 542: iload 27 │ │ │ │ - // 544: aaload │ │ │ │ - // 545: astore 29 │ │ │ │ - // 547: aload 29 │ │ │ │ - // 549: invokevirtual com/google/zxing/ResultPoint.getX:()F │ │ │ │ - // 552: fstore 28 │ │ │ │ - // 554: fload 14 │ │ │ │ - // 556: fload 28 │ │ │ │ - // 558: fsub │ │ │ │ - // 559: ldc 1.0 │ │ │ │ - // 561: fsub │ │ │ │ - // 562: fstore 26 │ │ │ │ - // 564: iconst_1 │ │ │ │ - // 565: istore 27 │ │ │ │ - // 567: ldc 1.4E-45 │ │ │ │ - // 569: fstore 28 │ │ │ │ - // 571: aload 25 │ │ │ │ - // 573: iload 27 │ │ │ │ - // 575: aaload │ │ │ │ - // 576: astore 29 │ │ │ │ - // 578: aload 29 │ │ │ │ - // 580: invokevirtual com/google/zxing/ResultPoint.getY:()F │ │ │ │ - // 583: fstore 28 │ │ │ │ - // 585: aload 24 │ │ │ │ - // 587: fload 26 │ │ │ │ - // 589: fload 28 │ │ │ │ - // 591: invokespecial com/google/zxing/ResultPoint.:(FF)V │ │ │ │ - // 594: aload 25 │ │ │ │ - // 596: iload 9 │ │ │ │ - // 598: aload 24 │ │ │ │ - // 600: aastore │ │ │ │ - // 601: aload 23 │ │ │ │ - // 603: areturn │ │ │ │ - // 604: pop │ │ │ │ - // 605: iload 17 │ │ │ │ - // 607: iconst_1 │ │ │ │ - // 608: iadd │ │ │ │ - // 609: istore 17 │ │ │ │ - // 611: goto 110 │ │ │ │ - // 614: astore 7 │ │ │ │ - // 616: iload 21 │ │ │ │ - // 618: iconst_1 │ │ │ │ - // 619: iadd │ │ │ │ - // 620: istore 21 │ │ │ │ - // 622: goto 227 │ │ │ │ - // Exceptions: │ │ │ │ - // Try Handler │ │ │ │ - // Start End Start End Type │ │ │ │ - // ----- ----- ----- ----- ------------------------------------ │ │ │ │ - // 217 222 604 605 Lcom/google/zxing/NotFoundException; │ │ │ │ - // 352 356 614 625 Lcom/google/zxing/ReaderException; │ │ │ │ - // 376 379 614 625 Lcom/google/zxing/ReaderException; │ │ │ │ - // 390 395 614 625 Lcom/google/zxing/ReaderException; │ │ │ │ - // 405 410 614 625 Lcom/google/zxing/ReaderException; │ │ │ │ - // 410 415 614 625 Lcom/google/zxing/ReaderException; │ │ │ │ - // 431 434 614 625 Lcom/google/zxing/ReaderException; │ │ │ │ - // 455 457 614 625 Lcom/google/zxing/ReaderException; │ │ │ │ - // 459 464 614 625 Lcom/google/zxing/ReaderException; │ │ │ │ - // 487 489 614 625 Lcom/google/zxing/ReaderException; │ │ │ │ - // 491 496 614 625 Lcom/google/zxing/ReaderException; │ │ │ │ - // 502 507 614 625 Lcom/google/zxing/ReaderException; │ │ │ │ - // 510 513 614 625 Lcom/google/zxing/ReaderException; │ │ │ │ - // 520 523 614 625 Lcom/google/zxing/ReaderException; │ │ │ │ - // 542 545 614 625 Lcom/google/zxing/ReaderException; │ │ │ │ - // 547 552 614 625 Lcom/google/zxing/ReaderException; │ │ │ │ - // 573 576 614 625 Lcom/google/zxing/ReaderException; │ │ │ │ - // 578 583 614 625 Lcom/google/zxing/ReaderException; │ │ │ │ - // 589 594 614 625 Lcom/google/zxing/ReaderException; │ │ │ │ - // 598 601 614 625 Lcom/google/zxing/ReaderException; │ │ │ │ - // │ │ │ │ - // The error that occurred was: │ │ │ │ - // │ │ │ │ - // java.lang.IllegalStateException: Expression is linked from several locations: Label_0601: │ │ │ │ - // at com.strobel.decompiler.ast.Error.expressionLinkedFromMultipleLocations(Error.java:27) │ │ │ │ - // at com.strobel.decompiler.ast.AstOptimizer.mergeDisparateObjectInitializations(AstOptimizer.java:2596) │ │ │ │ - // at com.strobel.decompiler.ast.AstOptimizer.optimize(AstOptimizer.java:235) │ │ │ │ - // at com.strobel.decompiler.ast.AstOptimizer.optimize(AstOptimizer.java:42) │ │ │ │ - // at com.strobel.decompiler.languages.java.ast.AstMethodBodyBuilder.createMethodBody(AstMethodBodyBuilder.java:214) │ │ │ │ - // at com.strobel.decompiler.languages.java.ast.AstMethodBodyBuilder.createMethodBody(AstMethodBodyBuilder.java:99) │ │ │ │ - // at com.strobel.decompiler.languages.java.ast.AstBuilder.createMethodBody(AstBuilder.java:757) │ │ │ │ - // at com.strobel.decompiler.languages.java.ast.AstBuilder.createMethod(AstBuilder.java:655) │ │ │ │ - // at com.strobel.decompiler.languages.java.ast.AstBuilder.addTypeMembers(AstBuilder.java:532) │ │ │ │ - // at com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeCore(AstBuilder.java:499) │ │ │ │ - // at com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeNoCache(AstBuilder.java:141) │ │ │ │ - // at com.strobel.decompiler.languages.java.ast.AstBuilder.createType(AstBuilder.java:130) │ │ │ │ - // at com.strobel.decompiler.languages.java.ast.AstBuilder.addType(AstBuilder.java:105) │ │ │ │ - // at com.strobel.decompiler.languages.java.JavaLanguage.buildAst(JavaLanguage.java:71) │ │ │ │ - // at com.strobel.decompiler.languages.java.JavaLanguage.decompileType(JavaLanguage.java:59) │ │ │ │ - // at com.strobel.decompiler.DecompilerDriver.decompileType(DecompilerDriver.java:336) │ │ │ │ - // at com.strobel.decompiler.DecompilerDriver.main(DecompilerDriver.java:144) │ │ │ │ - // │ │ │ │ - throw new IllegalStateException("An error occurred while decompiling this method."); │ │ │ │ + private Result doDecode(final BinaryBitmap binaryBitmap, Map enumMap) { │ │ │ │ + final int width = binaryBitmap.getWidth(); │ │ │ │ + final int height = binaryBitmap.getHeight(); │ │ │ │ + BitArray blackRow = new BitArray(width); │ │ │ │ + final int n = height >> 1; │ │ │ │ + while (true) { │ │ │ │ + int n6 = 0; │ │ │ │ + Label_0563: { │ │ │ │ + if (enumMap == null || !enumMap.containsKey(DecodeHintType.TRY_HARDER)) { │ │ │ │ + break Label_0563; │ │ │ │ + } │ │ │ │ + int n2 = 1; │ │ │ │ + final int n3 = 1; │ │ │ │ + Label_0569: { │ │ │ │ + if (n2 == 0) { │ │ │ │ + break Label_0569; │ │ │ │ + } │ │ │ │ + int n4 = 8; │ │ │ │ + Label_0078: │ │ │ │ + while (true) { │ │ │ │ + final int max = Math.max(n3, height >> n4); │ │ │ │ + Label_0579: { │ │ │ │ + if (n2 == 0) { │ │ │ │ + break Label_0579; │ │ │ │ + } │ │ │ │ + int n5 = height; │ │ │ │ + Label_0107: │ │ │ │ + while (true) { │ │ │ │ + n6 = 0; │ │ │ │ + if (n6 >= n5) { │ │ │ │ + throw NotFoundException.getNotFoundInstance(); │ │ │ │ + } │ │ │ │ + int n7 = (n6 + 1) / 2; │ │ │ │ + Label_0586: { │ │ │ │ + if ((n6 & 0x1) != 0x0) { │ │ │ │ + break Label_0586; │ │ │ │ + } │ │ │ │ + int n8 = 1; │ │ │ │ + Label_0139: │ │ │ │ + while (true) { │ │ │ │ + Label_0592: { │ │ │ │ + if (n8 == 0) { │ │ │ │ + break Label_0592; │ │ │ │ + } │ │ │ │ + Label_0144: │ │ │ │ + while (true) { │ │ │ │ + final int n9 = n + max * n7; │ │ │ │ + if (n9 < 0 || n9 >= height) { │ │ │ │ + throw NotFoundException.getNotFoundInstance(); │ │ │ │ + } │ │ │ │ + final int n10 = n9; │ │ │ │ + try { │ │ │ │ + blackRow = binaryBitmap.getBlackRow(n10, blackRow); │ │ │ │ + int i = 0; │ │ │ │ + while (i < 2) { │ │ │ │ + if (i == 1) { │ │ │ │ + blackRow.reverse(); │ │ │ │ + if (enumMap != null && enumMap.containsKey(DecodeHintType.NEED_RESULT_POINT_CALLBACK)) { │ │ │ │ + final EnumMap enumMap2 = new EnumMap((Class)DecodeHintType.class); │ │ │ │ + enumMap2.putAll(enumMap); │ │ │ │ + enumMap2.remove(DecodeHintType.NEED_RESULT_POINT_CALLBACK); │ │ │ │ + enumMap = enumMap2; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + final int n11 = n9; │ │ │ │ + final BitArray bitArray = blackRow; │ │ │ │ + try { │ │ │ │ + final Result decodeRow = this.decodeRow(n11, bitArray, enumMap); │ │ │ │ + if (i != 1) { │ │ │ │ + return decodeRow; │ │ │ │ + } │ │ │ │ + decodeRow.putMetadata(ResultMetadataType.ORIENTATION, (Object)180); │ │ │ │ + final ResultPoint[] resultPoints = decodeRow.getResultPoints(); │ │ │ │ + if (resultPoints == null) { │ │ │ │ + return decodeRow; │ │ │ │ + } │ │ │ │ + final float n12 = (float)width; │ │ │ │ + final ResultPoint resultPoint = resultPoints[0]; │ │ │ │ + try { │ │ │ │ + final float n13 = n12 - resultPoint.getX() - 1.0f; │ │ │ │ + final ResultPoint resultPoint2 = resultPoints[0]; │ │ │ │ + try { │ │ │ │ + resultPoints[0] = new ResultPoint(n13, resultPoint2.getY()); │ │ │ │ + final int n14 = 1; │ │ │ │ + final float n15 = (float)width; │ │ │ │ + final ResultPoint resultPoint3 = resultPoints[1]; │ │ │ │ + try { │ │ │ │ + final float n16 = n15 - resultPoint3.getX() - 1.0f; │ │ │ │ + final ResultPoint resultPoint4 = resultPoints[1]; │ │ │ │ + try { │ │ │ │ + resultPoints[n14] = new ResultPoint(n16, resultPoint4.getY()); │ │ │ │ + return decodeRow; │ │ │ │ + n5 = 15; │ │ │ │ + continue Label_0107; │ │ │ │ + n8 = 0; │ │ │ │ + continue Label_0139; │ │ │ │ + n4 = 5; │ │ │ │ + continue Label_0078; │ │ │ │ + n7 = -n7; │ │ │ │ + continue Label_0144; │ │ │ │ + n2 = 0; │ │ │ │ + } │ │ │ │ + catch (ReaderException ex) { │ │ │ │ + ++i; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + catch (ReaderException ex2) {} │ │ │ │ + } │ │ │ │ + catch (ReaderException ex3) {} │ │ │ │ + } │ │ │ │ + catch (ReaderException ex4) {} │ │ │ │ + } │ │ │ │ + catch (ReaderException ex5) {} │ │ │ │ + } │ │ │ │ + } │ │ │ │ + catch (NotFoundException ex6) {} │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + } │ │ │ │ + ++n6; │ │ │ │ + continue; │ │ │ │ + } │ │ │ │ } │ │ │ │ │ │ │ │ protected static float patternMatchVariance(final int[] array, final int[] array2, float n) { │ │ │ │ float n2 = 1.0f / 0.0f; │ │ │ │ final int length = array.length; │ │ │ │ int n3 = 0; │ │ │ │ int n4 = 0; │ │ │ │ @@ -483,15 +244,15 @@ │ │ │ │ throw ex; │ │ │ │ } │ │ │ │ final BinaryBitmap rotateCounterClockwise = binaryBitmap.rotateCounterClockwise(); │ │ │ │ final Result result = this.doDecode(rotateCounterClockwise, map); │ │ │ │ final Map resultMetadata = result.getResultMetadata(); │ │ │ │ int n = 270; │ │ │ │ if (resultMetadata != null && resultMetadata.containsKey(ResultMetadataType.ORIENTATION)) { │ │ │ │ - n = (resultMetadata.get(ResultMetadataType.ORIENTATION) + n) % 360; │ │ │ │ + n = (resultMetadata.get(ResultMetadataType.ORIENTATION) + 270) % 360; │ │ │ │ } │ │ │ │ result.putMetadata(ResultMetadataType.ORIENTATION, (Object)n); │ │ │ │ final ResultPoint[] resultPoints = result.getResultPoints(); │ │ │ │ if (resultPoints != null) { │ │ │ │ final int height = rotateCounterClockwise.getHeight(); │ │ │ │ for (int i = 0; i < resultPoints.length; ++i) { │ │ │ │ resultPoints[i] = new ResultPoint(height - resultPoints[i].getY() - 1.0f, resultPoints[i].getX()); │ │ ├── com/google/zxing/oned/OneDimensionalCodeWriter.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -53,19 +53,16 @@ │ │ │ │ if (s.isEmpty()) { │ │ │ │ throw new IllegalArgumentException("Found empty contents"); │ │ │ │ } │ │ │ │ if (n < 0 || n2 < 0) { │ │ │ │ throw new IllegalArgumentException("Negative size is not allowed. Input: " + n + 'x' + n2); │ │ │ │ } │ │ │ │ int n3 = this.getDefaultMargin(); │ │ │ │ - if (map != null) { │ │ │ │ - final Integer n4 = (Integer)map.get(EncodeHintType.MARGIN); │ │ │ │ - if (n4 != null) { │ │ │ │ - n3 = n4; │ │ │ │ - } │ │ │ │ + if (map != null && map.containsKey(EncodeHintType.MARGIN)) { │ │ │ │ + n3 = Integer.parseInt(map.get(EncodeHintType.MARGIN).toString()); │ │ │ │ } │ │ │ │ return renderResult(this.encode(s), n, n2, n3); │ │ │ │ } │ │ │ │ │ │ │ │ public abstract boolean[] encode(final String p0); │ │ │ │ │ │ │ │ public int getDefaultMargin() { │ │ ├── com/google/zxing/oned/UPCAWriter.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -31,15 +31,15 @@ │ │ │ │ n2 += n4 * n3; │ │ │ │ } │ │ │ │ string += (1000 - n2) % 10; │ │ │ │ } │ │ │ │ else if (length != 12) { │ │ │ │ throw new IllegalArgumentException("Requested contents should be 11 or 12 digits long, but got " + string.length()); │ │ │ │ } │ │ │ │ - return '0' + string; │ │ │ │ + return "0" + string; │ │ │ │ } │ │ │ │ │ │ │ │ public BitMatrix encode(final String s, final BarcodeFormat barcodeFormat, final int n, final int n2) { │ │ │ │ return this.encode(s, barcodeFormat, n, n2, null); │ │ │ │ } │ │ │ │ │ │ │ │ public BitMatrix encode(final String s, final BarcodeFormat barcodeFormat, final int n, final int n2, final Map map) { │ │ ├── com/google/zxing/oned/rss/expanded/decoders/AI01decoder.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -5,15 +5,15 @@ │ │ │ │ import java.io.IOException; │ │ │ │ import java.io.ObjectOutputStream; │ │ │ │ import java.io.Serializable; │ │ │ │ import com.google.zxing.common.BitArray; │ │ │ │ │ │ │ │ abstract class AI01decoder extends AbstractExpandedDecoder │ │ │ │ { │ │ │ │ - protected static final int GTIN_SIZE = 40; │ │ │ │ + static final int GTIN_SIZE = 40; │ │ │ │ │ │ │ │ AI01decoder(final BitArray bitArray) { │ │ │ │ super(bitArray); │ │ │ │ } │ │ │ │ │ │ │ │ private static void appendCheckDigit(final StringBuilder sb, final int n) { │ │ │ │ int n2 = 0; │ │ │ │ @@ -27,22 +27,22 @@ │ │ │ │ int n4 = 10 - n2 % 10; │ │ │ │ if (n4 == 10) { │ │ │ │ n4 = 0; │ │ │ │ } │ │ │ │ sb.append(n4); │ │ │ │ } │ │ │ │ │ │ │ │ - protected final void encodeCompressedGtin(final StringBuilder sb, final int n) { │ │ │ │ + final void encodeCompressedGtin(final StringBuilder sb, final int n) { │ │ │ │ sb.append("(01)"); │ │ │ │ final int length = sb.length(); │ │ │ │ sb.append('9'); │ │ │ │ this.encodeCompressedGtinWithoutAI(sb, n, length); │ │ │ │ } │ │ │ │ │ │ │ │ - protected final void encodeCompressedGtinWithoutAI(final StringBuilder sb, final int n, final int n2) { │ │ │ │ + final void encodeCompressedGtinWithoutAI(final StringBuilder sb, final int n, final int n2) { │ │ │ │ final char c = '0'; │ │ │ │ for (int i = 0; i < 4; ++i) { │ │ │ │ final int numericValueFromBitArray = this.getGeneralDecoder().extractNumericValueFromBitArray(i * 10 + n, 10); │ │ │ │ if (numericValueFromBitArray / 100 == 0) { │ │ │ │ sb.append(c); │ │ │ │ } │ │ │ │ if (numericValueFromBitArray / 10 == 0) { │ │ ├── com/google/zxing/pdf417/PDF417Writer.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -15,16 +15,15 @@ │ │ │ │ public final class PDF417Writer implements Writer │ │ │ │ { │ │ │ │ static final int DEFAULT_ERROR_CORRECTION_LEVEL = 2; │ │ │ │ static final int WHITE_SPACE = 30; │ │ │ │ │ │ │ │ private static BitMatrix bitMatrixFromEncoder(final PDF417 pdf417, final String s, final int n, final int n2, final int n3, final int n4) { │ │ │ │ pdf417.generateBarcodeLogic(s, n); │ │ │ │ - final int n5 = 4; │ │ │ │ - byte[][] array = pdf417.getBarcodeMatrix().getScaledMatrix(1, n5); │ │ │ │ + byte[][] array = pdf417.getBarcodeMatrix().getScaledMatrix(1, 4); │ │ │ │ boolean b = false; │ │ │ │ boolean b2; │ │ │ │ if (n3 > n2) { │ │ │ │ b2 = true; │ │ │ │ } │ │ │ │ else { │ │ │ │ b2 = false; │ │ │ │ @@ -36,26 +35,26 @@ │ │ │ │ else { │ │ │ │ b3 = false; │ │ │ │ } │ │ │ │ if (b2 ^ b3) { │ │ │ │ array = rotateArray(array); │ │ │ │ b = true; │ │ │ │ } │ │ │ │ - final int n6 = n2 / array[0].length; │ │ │ │ - final int n7 = n3 / array.length; │ │ │ │ - int n8; │ │ │ │ - if (n6 < n7) { │ │ │ │ - n8 = n6; │ │ │ │ + final int n5 = n2 / array[0].length; │ │ │ │ + final int n6 = n3 / array.length; │ │ │ │ + int n7; │ │ │ │ + if (n5 < n6) { │ │ │ │ + n7 = n5; │ │ │ │ } │ │ │ │ else { │ │ │ │ - n8 = n7; │ │ │ │ + n7 = n6; │ │ │ │ } │ │ │ │ BitMatrix bitMatrix; │ │ │ │ - if (n8 > 1) { │ │ │ │ - byte[][] array2 = pdf417.getBarcodeMatrix().getScaledMatrix(n8, n8 * n5); │ │ │ │ + if (n7 > 1) { │ │ │ │ + byte[][] array2 = pdf417.getBarcodeMatrix().getScaledMatrix(n7, n7 << 2); │ │ │ │ if (b) { │ │ │ │ array2 = rotateArray(array2); │ │ │ │ } │ │ │ │ bitMatrix = bitMatrixFrombitArray(array2, n4); │ │ │ │ } │ │ │ │ else { │ │ │ │ bitMatrix = bitMatrixFrombitArray(array, n4); │ │ │ │ @@ -92,33 +91,33 @@ │ │ │ │ } │ │ │ │ │ │ │ │ public BitMatrix encode(final String s, final BarcodeFormat barcodeFormat, final int n, final int n2, final Map map) { │ │ │ │ if (barcodeFormat != BarcodeFormat.PDF_417) { │ │ │ │ throw new IllegalArgumentException("Can only encode PDF_417, but got " + barcodeFormat); │ │ │ │ } │ │ │ │ final PDF417 pdf417 = new PDF417(); │ │ │ │ - int intValue = 30; │ │ │ │ - int intValue2 = 2; │ │ │ │ + int int1 = 30; │ │ │ │ + int int2 = 2; │ │ │ │ if (map != null) { │ │ │ │ if (map.containsKey(EncodeHintType.PDF417_COMPACT)) { │ │ │ │ - pdf417.setCompact((boolean)(Boolean)map.get(EncodeHintType.PDF417_COMPACT)); │ │ │ │ + pdf417.setCompact((boolean)Boolean.valueOf(map.get(EncodeHintType.PDF417_COMPACT).toString())); │ │ │ │ } │ │ │ │ if (map.containsKey(EncodeHintType.PDF417_COMPACTION)) { │ │ │ │ - pdf417.setCompaction((Compaction)map.get(EncodeHintType.PDF417_COMPACTION)); │ │ │ │ + pdf417.setCompaction(Compaction.valueOf(map.get(EncodeHintType.PDF417_COMPACTION).toString())); │ │ │ │ } │ │ │ │ if (map.containsKey(EncodeHintType.PDF417_DIMENSIONS)) { │ │ │ │ final Dimensions dimensions = (Dimensions)map.get(EncodeHintType.PDF417_DIMENSIONS); │ │ │ │ pdf417.setDimensions(dimensions.getMaxCols(), dimensions.getMinCols(), dimensions.getMaxRows(), dimensions.getMinRows()); │ │ │ │ } │ │ │ │ if (map.containsKey(EncodeHintType.MARGIN)) { │ │ │ │ - intValue = ((Number)map.get(EncodeHintType.MARGIN)).intValue(); │ │ │ │ + int1 = Integer.parseInt(map.get(EncodeHintType.MARGIN).toString()); │ │ │ │ } │ │ │ │ if (map.containsKey(EncodeHintType.ERROR_CORRECTION)) { │ │ │ │ - intValue2 = ((Number)map.get(EncodeHintType.ERROR_CORRECTION)).intValue(); │ │ │ │ + int2 = Integer.parseInt(map.get(EncodeHintType.ERROR_CORRECTION).toString()); │ │ │ │ } │ │ │ │ if (map.containsKey(EncodeHintType.CHARACTER_SET)) { │ │ │ │ - pdf417.setEncoding(Charset.forName((String)map.get(EncodeHintType.CHARACTER_SET))); │ │ │ │ + pdf417.setEncoding(Charset.forName(map.get(EncodeHintType.CHARACTER_SET).toString())); │ │ │ │ } │ │ │ │ } │ │ │ │ - return bitMatrixFromEncoder(pdf417, s, intValue2, n, n2, intValue); │ │ │ │ + return bitMatrixFromEncoder(pdf417, s, int2, n, n2, int1); │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/pdf417/decoder/DetectionResultRowIndicatorColumn.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,22 +1,67 @@ │ │ │ │ │ │ │ │ package com.google.zxing.pdf417.decoder; │ │ │ │ │ │ │ │ -import com.google.zxing.FormatException; │ │ │ │ import com.google.zxing.ResultPoint; │ │ │ │ │ │ │ │ final class DetectionResultRowIndicatorColumn extends DetectionResultColumn │ │ │ │ { │ │ │ │ private final boolean isLeft; │ │ │ │ │ │ │ │ DetectionResultRowIndicatorColumn(final BoundingBox boundingBox, final boolean isLeft) { │ │ │ │ super(boundingBox); │ │ │ │ this.isLeft = isLeft; │ │ │ │ } │ │ │ │ │ │ │ │ + private void adjustIncompleteIndicatorColumnRowNumbers(final BarcodeMetadata barcodeMetadata) { │ │ │ │ + final BoundingBox boundingBox = this.getBoundingBox(); │ │ │ │ + ResultPoint resultPoint; │ │ │ │ + if (this.isLeft) { │ │ │ │ + resultPoint = boundingBox.getTopLeft(); │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + resultPoint = boundingBox.getTopRight(); │ │ │ │ + } │ │ │ │ + ResultPoint resultPoint2; │ │ │ │ + if (this.isLeft) { │ │ │ │ + resultPoint2 = boundingBox.getBottomLeft(); │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + resultPoint2 = boundingBox.getBottomRight(); │ │ │ │ + } │ │ │ │ + final int imageRowToCodewordIndex = this.imageRowToCodewordIndex((int)resultPoint.getY()); │ │ │ │ + final int imageRowToCodewordIndex2 = this.imageRowToCodewordIndex((int)resultPoint2.getY()); │ │ │ │ + final Codeword[] codewords = this.getCodewords(); │ │ │ │ + int n = -1; │ │ │ │ + int max = 1; │ │ │ │ + int n2 = 0; │ │ │ │ + for (int i = imageRowToCodewordIndex; i < imageRowToCodewordIndex2; ++i) { │ │ │ │ + if (codewords[i] != null) { │ │ │ │ + final Codeword codeword = codewords[i]; │ │ │ │ + codeword.setRowNumberAsRowIndicatorColumn(); │ │ │ │ + final int n3 = codeword.getRowNumber() - n; │ │ │ │ + if (n3 == 0) { │ │ │ │ + ++n2; │ │ │ │ + } │ │ │ │ + else if (n3 == 1) { │ │ │ │ + max = Math.max(max, n2); │ │ │ │ + n2 = 1; │ │ │ │ + n = codeword.getRowNumber(); │ │ │ │ + } │ │ │ │ + else if (codeword.getRowNumber() >= barcodeMetadata.getRowCount()) { │ │ │ │ + codewords[i] = null; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + n = codeword.getRowNumber(); │ │ │ │ + n2 = 1; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + } │ │ │ │ + } │ │ │ │ + │ │ │ │ private void removeIncorrectCodewords(final Codeword[] array, final BarcodeMetadata barcodeMetadata) { │ │ │ │ for (int i = 0; i < array.length; ++i) { │ │ │ │ final Codeword codeword = array[i]; │ │ │ │ if (array[i] != null) { │ │ │ │ final int n = codeword.getValue() % 30; │ │ │ │ int rowNumber = codeword.getRowNumber(); │ │ │ │ if (rowNumber > barcodeMetadata.getRowCount()) { │ │ │ │ @@ -50,15 +95,25 @@ │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ - int adjustCompleteIndicatorColumnRowNumbers(final BarcodeMetadata barcodeMetadata) { │ │ │ │ + private void setRowNumbers() { │ │ │ │ + final Codeword[] codewords = this.getCodewords(); │ │ │ │ + for (int length = codewords.length, i = 0; i < length; ++i) { │ │ │ │ + final Codeword codeword = codewords[i]; │ │ │ │ + if (codeword != null) { │ │ │ │ + codeword.setRowNumberAsRowIndicatorColumn(); │ │ │ │ + } │ │ │ │ + } │ │ │ │ + } │ │ │ │ + │ │ │ │ + void adjustCompleteIndicatorColumnRowNumbers(final BarcodeMetadata barcodeMetadata) { │ │ │ │ final Codeword[] codewords = this.getCodewords(); │ │ │ │ this.setRowNumbers(); │ │ │ │ this.removeIncorrectCodewords(codewords, barcodeMetadata); │ │ │ │ final BoundingBox boundingBox = this.getBoundingBox(); │ │ │ │ ResultPoint resultPoint; │ │ │ │ if (this.isLeft) { │ │ │ │ resultPoint = boundingBox.getTopLeft(); │ │ │ │ @@ -71,119 +126,68 @@ │ │ │ │ resultPoint2 = boundingBox.getBottomLeft(); │ │ │ │ } │ │ │ │ else { │ │ │ │ resultPoint2 = boundingBox.getBottomRight(); │ │ │ │ } │ │ │ │ final int imageRowToCodewordIndex = this.imageRowToCodewordIndex((int)resultPoint.getY()); │ │ │ │ final int imageRowToCodewordIndex2 = this.imageRowToCodewordIndex((int)resultPoint2.getY()); │ │ │ │ - final float n = (imageRowToCodewordIndex2 - imageRowToCodewordIndex) / barcodeMetadata.getRowCount(); │ │ │ │ - int n2 = -1; │ │ │ │ + int n = -1; │ │ │ │ int max = 1; │ │ │ │ - int n3 = 0; │ │ │ │ + int n2 = 0; │ │ │ │ for (int i = imageRowToCodewordIndex; i < imageRowToCodewordIndex2; ++i) { │ │ │ │ if (codewords[i] != null) { │ │ │ │ final Codeword codeword = codewords[i]; │ │ │ │ - final int n4 = codeword.getRowNumber() - n2; │ │ │ │ - if (n4 == 0) { │ │ │ │ - ++n3; │ │ │ │ - } │ │ │ │ - else if (n4 == 1) { │ │ │ │ - max = Math.max(max, n3); │ │ │ │ - n3 = 1; │ │ │ │ - n2 = codeword.getRowNumber(); │ │ │ │ + final int n3 = codeword.getRowNumber() - n; │ │ │ │ + if (n3 == 0) { │ │ │ │ + ++n2; │ │ │ │ + } │ │ │ │ + else if (n3 == 1) { │ │ │ │ + max = Math.max(max, n2); │ │ │ │ + n2 = 1; │ │ │ │ + n = codeword.getRowNumber(); │ │ │ │ } │ │ │ │ else { │ │ │ │ final int rowNumber; │ │ │ │ - final int n5; │ │ │ │ - if (n4 < 0 || (rowNumber = codeword.getRowNumber()) >= barcodeMetadata.getRowCount() || (n5 = n4) > i) { │ │ │ │ + if (n3 < 0 || (rowNumber = codeword.getRowNumber()) >= barcodeMetadata.getRowCount() || n3 > i) { │ │ │ │ codewords[i] = null; │ │ │ │ } │ │ │ │ else { │ │ │ │ - int n6; │ │ │ │ + int n4; │ │ │ │ if (max > 2) { │ │ │ │ - n6 = (max - 2) * n4; │ │ │ │ + n4 = (max - 2) * n3; │ │ │ │ } │ │ │ │ else { │ │ │ │ - n6 = n4; │ │ │ │ + n4 = n3; │ │ │ │ } │ │ │ │ - int n7; │ │ │ │ - if (n6 >= i) { │ │ │ │ - n7 = 1; │ │ │ │ + int n5; │ │ │ │ + if (n4 >= i) { │ │ │ │ + n5 = 1; │ │ │ │ } │ │ │ │ else { │ │ │ │ - n7 = 0; │ │ │ │ + n5 = 0; │ │ │ │ } │ │ │ │ - for (int n8 = 1; n8 <= n6 && n7 == 0; ++n8) { │ │ │ │ - if (codewords[i - n8] != null) { │ │ │ │ - n7 = 1; │ │ │ │ + for (int n6 = 1; n6 <= n4 && n5 == 0; ++n6) { │ │ │ │ + if (codewords[i - n6] != null) { │ │ │ │ + n5 = 1; │ │ │ │ } │ │ │ │ else { │ │ │ │ - n7 = 0; │ │ │ │ + n5 = 0; │ │ │ │ } │ │ │ │ } │ │ │ │ - if (n7 != 0) { │ │ │ │ + if (n5 != 0) { │ │ │ │ codewords[i] = null; │ │ │ │ } │ │ │ │ else { │ │ │ │ - n2 = codeword.getRowNumber(); │ │ │ │ - n3 = 1; │ │ │ │ + n = codeword.getRowNumber(); │ │ │ │ + n2 = 1; │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ - return (int)(n + 0.5); │ │ │ │ - } │ │ │ │ - │ │ │ │ - int adjustIncompleteIndicatorColumnRowNumbers(final BarcodeMetadata barcodeMetadata) { │ │ │ │ - final BoundingBox boundingBox = this.getBoundingBox(); │ │ │ │ - ResultPoint resultPoint; │ │ │ │ - if (this.isLeft) { │ │ │ │ - resultPoint = boundingBox.getTopLeft(); │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - resultPoint = boundingBox.getTopRight(); │ │ │ │ - } │ │ │ │ - ResultPoint resultPoint2; │ │ │ │ - if (this.isLeft) { │ │ │ │ - resultPoint2 = boundingBox.getBottomLeft(); │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - resultPoint2 = boundingBox.getBottomRight(); │ │ │ │ - } │ │ │ │ - final int imageRowToCodewordIndex = this.imageRowToCodewordIndex((int)resultPoint.getY()); │ │ │ │ - final int imageRowToCodewordIndex2 = this.imageRowToCodewordIndex((int)resultPoint2.getY()); │ │ │ │ - final float n = (imageRowToCodewordIndex2 - imageRowToCodewordIndex) / barcodeMetadata.getRowCount(); │ │ │ │ - final Codeword[] codewords = this.getCodewords(); │ │ │ │ - int n2 = -1; │ │ │ │ - int max = 1; │ │ │ │ - int n3 = 0; │ │ │ │ - for (int i = imageRowToCodewordIndex; i < imageRowToCodewordIndex2; ++i) { │ │ │ │ - if (codewords[i] != null) { │ │ │ │ - final Codeword codeword = codewords[i]; │ │ │ │ - codeword.setRowNumberAsRowIndicatorColumn(); │ │ │ │ - final int n4 = codeword.getRowNumber() - n2; │ │ │ │ - if (n4 == 0) { │ │ │ │ - ++n3; │ │ │ │ - } │ │ │ │ - else if (n4 == 1) { │ │ │ │ - max = Math.max(max, n3); │ │ │ │ - n3 = 1; │ │ │ │ - n2 = codeword.getRowNumber(); │ │ │ │ - } │ │ │ │ - else if (codeword.getRowNumber() >= barcodeMetadata.getRowCount()) { │ │ │ │ - codewords[i] = null; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - n2 = codeword.getRowNumber(); │ │ │ │ - n3 = 1; │ │ │ │ - } │ │ │ │ - } │ │ │ │ - } │ │ │ │ - return (int)(n + 0.5); │ │ │ │ } │ │ │ │ │ │ │ │ BarcodeMetadata getBarcodeMetadata() { │ │ │ │ final Codeword[] codewords = this.getCodewords(); │ │ │ │ final BarcodeValue barcodeValue = new BarcodeValue(); │ │ │ │ final BarcodeValue barcodeValue2 = new BarcodeValue(); │ │ │ │ final BarcodeValue barcodeValue3 = new BarcodeValue(); │ │ │ │ @@ -211,15 +215,15 @@ │ │ │ │ barcodeValue.setValue(n + 1); │ │ │ │ break; │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ BarcodeMetadata barcodeMetadata; │ │ │ │ - if (barcodeValue.getValue().length == 0 || barcodeValue2.getValue().length == 0 || barcodeValue3.getValue().length == 0 || barcodeValue4.getValue().length == 0 || barcodeValue.getValue()[0] < 1 || barcodeValue2.getValue()[0] + barcodeValue3.getValue()[0] < 3 || barcodeValue2.getValue()[0] + barcodeValue3.getValue()[0] > 90) { │ │ │ │ + if (barcodeValue.getValue().length == 0 || barcodeValue2.getValue().length == 0 || barcodeValue3.getValue().length == 0 || barcodeValue4.getValue().length == 0 || barcodeValue.getValue()[0] <= 0 || barcodeValue2.getValue()[0] + barcodeValue3.getValue()[0] < 3 || barcodeValue2.getValue()[0] + barcodeValue3.getValue()[0] > 90) { │ │ │ │ barcodeMetadata = null; │ │ │ │ } │ │ │ │ else { │ │ │ │ barcodeMetadata = new BarcodeMetadata(barcodeValue.getValue()[0], barcodeValue2.getValue()[0], barcodeValue3.getValue()[0], barcodeValue4.getValue()[0]); │ │ │ │ this.removeIncorrectCodewords(codewords, barcodeMetadata); │ │ │ │ } │ │ │ │ return barcodeMetadata; │ │ │ │ @@ -235,35 +239,24 @@ │ │ │ │ this.adjustIncompleteIndicatorColumnRowNumbers(barcodeMetadata); │ │ │ │ array = new int[barcodeMetadata.getRowCount()]; │ │ │ │ final Codeword[] codewords = this.getCodewords(); │ │ │ │ for (int length = codewords.length, i = 0; i < length; ++i) { │ │ │ │ final Codeword codeword = codewords[i]; │ │ │ │ if (codeword != null) { │ │ │ │ final int rowNumber = codeword.getRowNumber(); │ │ │ │ - if (rowNumber >= array.length) { │ │ │ │ - throw FormatException.getFormatInstance(); │ │ │ │ + if (rowNumber < array.length) { │ │ │ │ + ++array[rowNumber]; │ │ │ │ } │ │ │ │ - ++array[rowNumber]; │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ return array; │ │ │ │ } │ │ │ │ │ │ │ │ boolean isLeft() { │ │ │ │ return this.isLeft; │ │ │ │ } │ │ │ │ │ │ │ │ - void setRowNumbers() { │ │ │ │ - final Codeword[] codewords = this.getCodewords(); │ │ │ │ - for (int length = codewords.length, i = 0; i < length; ++i) { │ │ │ │ - final Codeword codeword = codewords[i]; │ │ │ │ - if (codeword != null) { │ │ │ │ - codeword.setRowNumberAsRowIndicatorColumn(); │ │ │ │ - } │ │ │ │ - } │ │ │ │ - } │ │ │ │ - │ │ │ │ public String toString() { │ │ │ │ return "IsLeft: " + this.isLeft + '\n' + super.toString(); │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/qrcode/QRCodeReader.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -43,14 +43,18 @@ │ │ │ │ final int n3 = topLeftOnBit[0]; │ │ │ │ int n4 = bottomRightOnBit[0]; │ │ │ │ if (n3 >= n4 || n >= n2) { │ │ │ │ throw NotFoundException.getNotFoundInstance(); │ │ │ │ } │ │ │ │ if (n2 - n != n4 - n3) { │ │ │ │ n4 = n3 + (n2 - n); │ │ │ │ + final int width; │ │ │ │ + if (n4 >= (width = bitMatrix.getWidth())) { │ │ │ │ + throw NotFoundException.getNotFoundInstance(); │ │ │ │ + } │ │ │ │ } │ │ │ │ final int round = Math.round((float)(n4 - n3 + 1) / moduleSize); │ │ │ │ final int round2 = Math.round((float)(n2 - n + 1) / moduleSize); │ │ │ │ if (round <= 0 || round2 <= 0) { │ │ │ │ throw NotFoundException.getNotFoundInstance(); │ │ │ │ } │ │ │ │ if (round2 != round) { │ │ ├── com/google/zxing/qrcode/QRCodeWriter.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -18,16 +18,16 @@ │ │ │ │ private static BitMatrix renderResult(final QRCode qrCode, final int n, final int n2, final int n3) { │ │ │ │ final ByteMatrix matrix = qrCode.getMatrix(); │ │ │ │ if (matrix == null) { │ │ │ │ throw new IllegalStateException(); │ │ │ │ } │ │ │ │ final int width = matrix.getWidth(); │ │ │ │ final int height = matrix.getHeight(); │ │ │ │ - final int n4 = width + n3 * 2; │ │ │ │ - final int n5 = height + n3 * 2; │ │ │ │ + final int n4 = width + (n3 << 1); │ │ │ │ + final int n5 = height + (n3 << 1); │ │ │ │ final int max = Math.max(n, n4); │ │ │ │ final int max2 = Math.max(n2, n5); │ │ │ │ final int min = Math.min(max / n4, max2 / n5); │ │ │ │ final int n6 = (max - width * min) / 2; │ │ │ │ final int n7 = (max2 - height * min) / 2; │ │ │ │ final BitMatrix bitMatrix = new BitMatrix(max, max2); │ │ │ │ for (int i = 0, n8 = n7; i < height; ++i, n8 += min) { │ │ │ │ @@ -50,22 +50,20 @@ │ │ │ │ } │ │ │ │ if (barcodeFormat != BarcodeFormat.QR_CODE) { │ │ │ │ throw new IllegalArgumentException("Can only encode QR_CODE, but got " + barcodeFormat); │ │ │ │ } │ │ │ │ if (n < 0 || n2 < 0) { │ │ │ │ throw new IllegalArgumentException("Requested dimensions are too small: " + n + 'x' + n2); │ │ │ │ } │ │ │ │ - ErrorCorrectionLevel l = ErrorCorrectionLevel.L; │ │ │ │ - int intValue = 4; │ │ │ │ + ErrorCorrectionLevel errorCorrectionLevel = ErrorCorrectionLevel.L; │ │ │ │ + int int1 = 4; │ │ │ │ if (map != null) { │ │ │ │ - final ErrorCorrectionLevel errorCorrectionLevel = (ErrorCorrectionLevel)map.get(EncodeHintType.ERROR_CORRECTION); │ │ │ │ - if (errorCorrectionLevel != null) { │ │ │ │ - l = errorCorrectionLevel; │ │ │ │ + if (map.containsKey(EncodeHintType.ERROR_CORRECTION)) { │ │ │ │ + errorCorrectionLevel = ErrorCorrectionLevel.valueOf(map.get(EncodeHintType.ERROR_CORRECTION).toString()); │ │ │ │ } │ │ │ │ - final Integer n3 = (Integer)map.get(EncodeHintType.MARGIN); │ │ │ │ - if (n3 != null) { │ │ │ │ - intValue = n3; │ │ │ │ + if (map.containsKey(EncodeHintType.MARGIN)) { │ │ │ │ + int1 = Integer.parseInt(map.get(EncodeHintType.MARGIN).toString()); │ │ │ │ } │ │ │ │ } │ │ │ │ - return renderResult(Encoder.encode(s, l, map), n, n2, intValue); │ │ │ │ + return renderResult(Encoder.encode(s, errorCorrectionLevel, map), n, n2, int1); │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/client/result/BizcardResultParser.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -2,22 +2,24 @@ │ │ │ │ package com.google.zxing.client.result; │ │ │ │ │ │ │ │ import com.google.zxing.Result; │ │ │ │ import java.util.ArrayList; │ │ │ │ │ │ │ │ public final class BizcardResultParser extends AbstractDoCoMoResultParser │ │ │ │ { │ │ │ │ - private static String buildName(String string, String s) { │ │ │ │ - if (string != null) { │ │ │ │ - if (s != null) { │ │ │ │ - string = string + ' ' + s; │ │ │ │ + private static String buildName(final String s, String string) { │ │ │ │ + if (s != null) { │ │ │ │ + if (string == null) { │ │ │ │ + string = s; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + string = s + ' ' + string; │ │ │ │ } │ │ │ │ - s = string; │ │ │ │ } │ │ │ │ - return s; │ │ │ │ + return string; │ │ │ │ } │ │ │ │ │ │ │ │ private static String[] buildPhoneNumbers(final String s, final String s2, final String s3) { │ │ │ │ final ArrayList list = new ArrayList(3); │ │ │ │ if (s != null) { │ │ │ │ list.add(s); │ │ │ │ } │ │ ├── com/google/zxing/datamatrix/encoder/TextEncoder.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -48,15 +48,15 @@ │ │ │ │ else if (c >= '{' && c <= '\u007f') { │ │ │ │ sb.append(c2); │ │ │ │ sb.append((char)(c - 123 + 27)); │ │ │ │ n = c2; │ │ │ │ } │ │ │ │ else if (c >= '\u0080') { │ │ │ │ sb.append("\u0001\u001e"); │ │ │ │ - n = 2 + this.encodeChar((char)(c - 128), sb); │ │ │ │ + n = this.encodeChar((char)(c - 128), sb) + 2; │ │ │ │ } │ │ │ │ else { │ │ │ │ HighLevelEncoder.illegalCharacter(c); │ │ │ │ n = -1; │ │ │ │ } │ │ │ │ return n; │ │ │ │ } │ │ ├── com/google/zxing/datamatrix/encoder/X12Encoder.class │ │ │ ├── javap -verbose -constants -s -l -private {} │ │ │ │ @@ -117,24 +117,24 @@ │ │ │ │ 1: invokespecial #8 // Method com/google/zxing/datamatrix/encoder/C40Encoder."":()V │ │ │ │ 4: return │ │ │ │ │ │ │ │ public void encode(com.google.zxing.datamatrix.encoder.EncoderContext); │ │ │ │ descriptor: (Lcom/google/zxing/datamatrix/encoder/EncoderContext;)V │ │ │ │ flags: ACC_PUBLIC │ │ │ │ Code: │ │ │ │ - stack=300, locals=10, args_size=2 │ │ │ │ + stack=300, locals=9, args_size=2 │ │ │ │ 0: new #10 // class java/lang/StringBuilder │ │ │ │ 3: astore_2 │ │ │ │ 4: aload_2 │ │ │ │ 5: invokespecial #11 // Method java/lang/StringBuilder."":()V │ │ │ │ 8: aload_1 │ │ │ │ 9: invokevirtual #17 // Method com/google/zxing/datamatrix/encoder/EncoderContext.hasMoreCharacters:()Z │ │ │ │ 12: istore_3 │ │ │ │ 13: iload_3 │ │ │ │ - 14: ifeq 109 │ │ │ │ + 14: ifeq 105 │ │ │ │ 17: aload_1 │ │ │ │ 18: invokevirtual #21 // Method com/google/zxing/datamatrix/encoder/EncoderContext.getCurrentChar:()C │ │ │ │ 21: istore 4 │ │ │ │ 23: aload_1 │ │ │ │ 24: getfield #25 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ 27: iconst_1 │ │ │ │ 28: iadd │ │ │ │ @@ -145,52 +145,50 @@ │ │ │ │ 35: aload_0 │ │ │ │ 36: iload 4 │ │ │ │ 38: aload_2 │ │ │ │ 39: invokevirtual #29 // Method encodeChar:(CLjava/lang/StringBuilder;)I │ │ │ │ 42: pop │ │ │ │ 43: aload_2 │ │ │ │ 44: invokevirtual #33 // Method java/lang/StringBuilder.length:()I │ │ │ │ - 47: istore 5 │ │ │ │ - 49: iload 5 │ │ │ │ - 51: iconst_3 │ │ │ │ - 52: irem │ │ │ │ - 53: istore_3 │ │ │ │ - 54: iload_3 │ │ │ │ - 55: ifne 8 │ │ │ │ - 58: aload_1 │ │ │ │ - 59: aload_2 │ │ │ │ - 60: invokestatic #37 // Method writeNextTriplet:(Lcom/google/zxing/datamatrix/encoder/EncoderContext;Ljava/lang/StringBuilder;)V │ │ │ │ - 63: aload_1 │ │ │ │ - 64: invokevirtual #41 // Method com/google/zxing/datamatrix/encoder/EncoderContext.getMessage:()Ljava/lang/String; │ │ │ │ - 67: astore 6 │ │ │ │ - 69: aload_1 │ │ │ │ - 70: getfield #25 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ - 73: istore 7 │ │ │ │ - 75: aload_0 │ │ │ │ - 76: invokevirtual #44 // Method getEncodingMode:()I │ │ │ │ - 79: istore 8 │ │ │ │ - 81: aload 6 │ │ │ │ - 83: iload 7 │ │ │ │ - 85: iload 8 │ │ │ │ - 87: invokestatic #50 // Method com/google/zxing/datamatrix/encoder/HighLevelEncoder.lookAheadTest:(Ljava/lang/CharSequence;II)I │ │ │ │ - 90: istore 9 │ │ │ │ - 92: aload_0 │ │ │ │ - 93: invokevirtual #44 // Method getEncodingMode:()I │ │ │ │ - 96: istore_3 │ │ │ │ - 97: iload 9 │ │ │ │ - 99: iload_3 │ │ │ │ - 100: if_icmpeq 8 │ │ │ │ - 103: aload_1 │ │ │ │ - 104: iload 9 │ │ │ │ - 106: invokevirtual #54 // Method com/google/zxing/datamatrix/encoder/EncoderContext.signalEncoderChange:(I)V │ │ │ │ - 109: aload_0 │ │ │ │ - 110: aload_1 │ │ │ │ - 111: aload_2 │ │ │ │ - 112: invokevirtual #57 // Method handleEOD:(Lcom/google/zxing/datamatrix/encoder/EncoderContext;Ljava/lang/StringBuilder;)V │ │ │ │ - 115: return │ │ │ │ + 47: iconst_3 │ │ │ │ + 48: irem │ │ │ │ + 49: istore_3 │ │ │ │ + 50: iload_3 │ │ │ │ + 51: ifne 8 │ │ │ │ + 54: aload_1 │ │ │ │ + 55: aload_2 │ │ │ │ + 56: invokestatic #37 // Method writeNextTriplet:(Lcom/google/zxing/datamatrix/encoder/EncoderContext;Ljava/lang/StringBuilder;)V │ │ │ │ + 59: aload_1 │ │ │ │ + 60: invokevirtual #41 // Method com/google/zxing/datamatrix/encoder/EncoderContext.getMessage:()Ljava/lang/String; │ │ │ │ + 63: astore 5 │ │ │ │ + 65: aload_1 │ │ │ │ + 66: getfield #25 // Field com/google/zxing/datamatrix/encoder/EncoderContext.pos:I │ │ │ │ + 69: istore 6 │ │ │ │ + 71: aload_0 │ │ │ │ + 72: invokevirtual #44 // Method getEncodingMode:()I │ │ │ │ + 75: istore 7 │ │ │ │ + 77: aload 5 │ │ │ │ + 79: iload 6 │ │ │ │ + 81: iload 7 │ │ │ │ + 83: invokestatic #50 // Method com/google/zxing/datamatrix/encoder/HighLevelEncoder.lookAheadTest:(Ljava/lang/CharSequence;II)I │ │ │ │ + 86: istore 8 │ │ │ │ + 88: aload_0 │ │ │ │ + 89: invokevirtual #44 // Method getEncodingMode:()I │ │ │ │ + 92: istore_3 │ │ │ │ + 93: iload 8 │ │ │ │ + 95: iload_3 │ │ │ │ + 96: if_icmpeq 8 │ │ │ │ + 99: aload_1 │ │ │ │ + 100: iload 8 │ │ │ │ + 102: invokevirtual #54 // Method com/google/zxing/datamatrix/encoder/EncoderContext.signalEncoderChange:(I)V │ │ │ │ + 105: aload_0 │ │ │ │ + 106: aload_1 │ │ │ │ + 107: aload_2 │ │ │ │ + 108: invokevirtual #57 // Method handleEOD:(Lcom/google/zxing/datamatrix/encoder/EncoderContext;Ljava/lang/StringBuilder;)V │ │ │ │ + 111: return │ │ │ │ │ │ │ │ int encodeChar(char, java.lang.StringBuilder); │ │ │ │ descriptor: (CLjava/lang/StringBuilder;)I │ │ │ │ flags: │ │ │ │ Code: │ │ │ │ stack=300, locals=5, args_size=3 │ │ │ │ 0: iconst_1 │ │ ├── com/google/zxing/multi/qrcode/QRCodeMultiReader.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -90,24 +90,24 @@ │ │ │ │ } │ │ │ │ │ │ │ │ public Result[] decodeMultiple(final BinaryBitmap binaryBitmap) { │ │ │ │ return this.decodeMultiple(binaryBitmap, null); │ │ │ │ } │ │ │ │ │ │ │ │ public Result[] decodeMultiple(final BinaryBitmap binaryBitmap, final Map map) { │ │ │ │ - List processStructuredAppend = new ArrayList(); │ │ │ │ + final ArrayList list = new ArrayList(); │ │ │ │ final DetectorResult[] detectMulti = new MultiDetector(binaryBitmap.getBlackMatrix()).detectMulti(map); │ │ │ │ final int length = detectMulti.length; │ │ │ │ - int n = 0; │ │ │ │ + int size = 0; │ │ │ │ while (true) { │ │ │ │ Label_0314: { │ │ │ │ - if (n >= length) { │ │ │ │ + if (size >= length) { │ │ │ │ break Label_0314; │ │ │ │ } │ │ │ │ - final DetectorResult detectorResult = detectMulti[n]; │ │ │ │ + final DetectorResult detectorResult = detectMulti[size]; │ │ │ │ try { │ │ │ │ final Decoder decoder = this.getDecoder(); │ │ │ │ try { │ │ │ │ final DecoderResult decode = decoder.decode(detectorResult.getBits(), map); │ │ │ │ try { │ │ │ │ final ResultPoint[] points = detectorResult.getPoints(); │ │ │ │ try { │ │ │ │ @@ -142,27 +142,29 @@ │ │ │ │ try { │ │ │ │ result.putMetadata(structured_APPEND_SEQUENCE, (Object)structuredAppendSequenceNumber); │ │ │ │ final ResultMetadataType structured_APPEND_PARITY = ResultMetadataType.STRUCTURED_APPEND_PARITY; │ │ │ │ try { │ │ │ │ final int structuredAppendParity = decode.getStructuredAppendParity(); │ │ │ │ try { │ │ │ │ result.putMetadata(structured_APPEND_PARITY, (Object)structuredAppendParity); │ │ │ │ - final List list = processStructuredAppend; │ │ │ │ + final ArrayList list2 = list; │ │ │ │ try { │ │ │ │ - list.add(result); │ │ │ │ - ++n; │ │ │ │ + list2.add(result); │ │ │ │ + ++size; │ │ │ │ continue; │ │ │ │ + final List processStructuredAppend; │ │ │ │ Label_0335: { │ │ │ │ - processStructuredAppend = (List)processStructuredAppend(processStructuredAppend); │ │ │ │ + processStructuredAppend = processStructuredAppend(list); │ │ │ │ } │ │ │ │ - return (Result[])processStructuredAppend.toArray(new Result[processStructuredAppend.size()]); │ │ │ │ - // iftrue(Label_0335:, !processStructuredAppend.isEmpty()) │ │ │ │ + size = processStructuredAppend.size(); │ │ │ │ + return (Result[])processStructuredAppend.toArray(new Result[size]); │ │ │ │ empty_RESULT_ARRAY = QRCodeMultiReader.EMPTY_RESULT_ARRAY; │ │ │ │ return empty_RESULT_ARRAY; │ │ │ │ } │ │ │ │ + // iftrue(Label_0335:, !list.isEmpty()) │ │ │ │ catch (ReaderException ex) {} │ │ │ │ } │ │ │ │ catch (ReaderException ex2) {} │ │ │ │ } │ │ │ │ catch (ReaderException ex3) {} │ │ │ │ } │ │ │ │ catch (ReaderException ex4) {} │ │ ├── com/google/zxing/oned/CodaBarReader.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -80,15 +80,15 @@ │ │ │ │ return b; │ │ │ │ } │ │ │ │ │ │ │ │ private void counterAppend(final int n) { │ │ │ │ this.counters[this.counterLength] = n; │ │ │ │ ++this.counterLength; │ │ │ │ if (this.counterLength >= this.counters.length) { │ │ │ │ - final int[] counters = new int[this.counterLength * 2]; │ │ │ │ + final int[] counters = new int[this.counterLength << 1]; │ │ │ │ System.arraycopy(this.counters, 0, counters, 0, this.counterLength); │ │ │ │ this.counters = counters; │ │ │ │ } │ │ │ │ } │ │ │ │ │ │ │ │ private int findStartPattern() { │ │ │ │ for (int i = 1; i < this.counterLength; i += 2) { │ │ │ │ @@ -182,14 +182,67 @@ │ │ │ │ } │ │ │ │ } │ │ │ │ i = -1; │ │ │ │ } │ │ │ │ return i; │ │ │ │ } │ │ │ │ │ │ │ │ + private void validatePattern(final int n) { │ │ │ │ + final int[] array2; │ │ │ │ + final int[] array = array2 = new int[4]; │ │ │ │ + array2[1] = (array2[0] = 0); │ │ │ │ + array2[3] = (array2[2] = 0); │ │ │ │ + final int[] array4; │ │ │ │ + final int[] array3 = array4 = new int[4]; │ │ │ │ + array4[1] = (array4[0] = 0); │ │ │ │ + array4[3] = (array4[2] = 0); │ │ │ │ + final int n2 = this.decodeRowResult.length() - 1; │ │ │ │ + int n3 = n; │ │ │ │ + int n4 = 0; │ │ │ │ + while (true) { │ │ │ │ + int n5 = CodaBarReader.CHARACTER_ENCODINGS[this.decodeRowResult.charAt(n4)]; │ │ │ │ + for (int i = 6; i >= 0; --i) { │ │ │ │ + final int n6 = (i & 0x1) + ((n5 & 0x1) << 1); │ │ │ │ + array[n6] += this.counters[n3 + i]; │ │ │ │ + ++array3[n6]; │ │ │ │ + n5 >>= 1; │ │ │ │ + } │ │ │ │ + if (n4 >= n2) { │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + n3 += 8; │ │ │ │ + ++n4; │ │ │ │ + } │ │ │ │ + final float[] array5 = new float[4]; │ │ │ │ + final float[] array6 = new float[4]; │ │ │ │ + for (int j = 0; j < 2; ++j) { │ │ │ │ + array6[j] = 0.0f; │ │ │ │ + array5[j] = (array6[j + 2] = (array[j] / array3[j] + array[j + 2] / array3[j + 2]) / 2.0f); │ │ │ │ + array5[j + 2] = (array[j + 2] * 2.0f + 1.5f) / array3[j + 2]; │ │ │ │ + } │ │ │ │ + int n7 = n; │ │ │ │ + int n8 = 0; │ │ │ │ + while (true) { │ │ │ │ + int n9 = CodaBarReader.CHARACTER_ENCODINGS[this.decodeRowResult.charAt(n8)]; │ │ │ │ + for (int k = 6; k >= 0; --k) { │ │ │ │ + final int n10 = (k & 0x1) + ((n9 & 0x1) << 1); │ │ │ │ + final int n11 = this.counters[n7 + k]; │ │ │ │ + if (n11 < array6[n10] || n11 > array5[n10]) { │ │ │ │ + throw NotFoundException.getNotFoundInstance(); │ │ │ │ + } │ │ │ │ + n9 >>= 1; │ │ │ │ + } │ │ │ │ + if (n8 >= n2) { │ │ │ │ + return; │ │ │ │ + } │ │ │ │ + n7 += 8; │ │ │ │ + ++n8; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + │ │ │ │ public Result decodeRow(final int n, final BitArray counters, final Map map) { │ │ │ │ Arrays.fill(this.counters, 0); │ │ │ │ this.setCounters(counters); │ │ │ │ int startPattern; │ │ │ │ final int n2 = startPattern = this.findStartPattern(); │ │ │ │ this.decodeRowResult.setLength(0); │ │ │ │ int narrowWidePattern; │ │ │ │ @@ -232,61 +285,8 @@ │ │ │ │ } │ │ │ │ final float n6 = (float)n5; │ │ │ │ for (int l = n2; l < startPattern - 1; ++l) { │ │ │ │ n5 += this.counters[l]; │ │ │ │ } │ │ │ │ return new Result(this.decodeRowResult.toString(), (byte[])null, new ResultPoint[] { new ResultPoint(n6, (float)n), new ResultPoint((float)n5, (float)n) }, BarcodeFormat.CODABAR); │ │ │ │ } │ │ │ │ - │ │ │ │ - void validatePattern(final int n) { │ │ │ │ - final int[] array2; │ │ │ │ - final int[] array = array2 = new int[4]; │ │ │ │ - array2[1] = (array2[0] = 0); │ │ │ │ - array2[3] = (array2[2] = 0); │ │ │ │ - final int[] array4; │ │ │ │ - final int[] array3 = array4 = new int[4]; │ │ │ │ - array4[1] = (array4[0] = 0); │ │ │ │ - array4[3] = (array4[2] = 0); │ │ │ │ - final int n2 = this.decodeRowResult.length() - 1; │ │ │ │ - int n3 = n; │ │ │ │ - int n4 = 0; │ │ │ │ - while (true) { │ │ │ │ - int n5 = CodaBarReader.CHARACTER_ENCODINGS[this.decodeRowResult.charAt(n4)]; │ │ │ │ - for (int i = 6; i >= 0; --i) { │ │ │ │ - final int n6 = (i & 0x1) + (n5 & 0x1) * 2; │ │ │ │ - array[n6] += this.counters[n3 + i]; │ │ │ │ - ++array3[n6]; │ │ │ │ - n5 >>= 1; │ │ │ │ - } │ │ │ │ - if (n4 >= n2) { │ │ │ │ - break; │ │ │ │ - } │ │ │ │ - n3 += 8; │ │ │ │ - ++n4; │ │ │ │ - } │ │ │ │ - final float[] array5 = new float[4]; │ │ │ │ - final float[] array6 = new float[4]; │ │ │ │ - for (int j = 0; j < 2; ++j) { │ │ │ │ - array6[j] = 0.0f; │ │ │ │ - array5[j] = (array6[j + 2] = (array[j] / array3[j] + array[j + 2] / array3[j + 2]) / 2.0f); │ │ │ │ - array5[j + 2] = (array[j + 2] * 2.0f + 1.5f) / array3[j + 2]; │ │ │ │ - } │ │ │ │ - int n7 = n; │ │ │ │ - int n8 = 0; │ │ │ │ - while (true) { │ │ │ │ - int n9 = CodaBarReader.CHARACTER_ENCODINGS[this.decodeRowResult.charAt(n8)]; │ │ │ │ - for (int k = 6; k >= 0; --k) { │ │ │ │ - final int n10 = (k & 0x1) + (n9 & 0x1) * 2; │ │ │ │ - final int n11 = this.counters[n7 + k]; │ │ │ │ - if (n11 < array6[n10] || n11 > array5[n10]) { │ │ │ │ - throw NotFoundException.getNotFoundInstance(); │ │ │ │ - } │ │ │ │ - n9 >>= 1; │ │ │ │ - } │ │ │ │ - if (n8 >= n2) { │ │ │ │ - return; │ │ │ │ - } │ │ │ │ - n7 += 8; │ │ │ │ - ++n8; │ │ │ │ - } │ │ │ │ - } │ │ │ │ } │ │ ├── com/google/zxing/oned/CodaBarWriter.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -72,15 +72,15 @@ │ │ │ │ else { │ │ │ │ if (!CodaBarReader.arrayContains(CodaBarWriter.CHARS_WHICH_ARE_TEN_LENGTH_EACH_AFTER_DECODED, s.charAt(i))) { │ │ │ │ throw new IllegalArgumentException("Cannot encode : '" + s.charAt(i) + '\''); │ │ │ │ } │ │ │ │ n += 10; │ │ │ │ } │ │ │ │ } │ │ │ │ - final boolean[] array = new boolean[n + (s.length() - 1)]; │ │ │ │ + final boolean[] array = new boolean[s.length() - 1 + n]; │ │ │ │ int n2 = 0; │ │ │ │ for (int j = 0; j < s.length(); ++j) { │ │ │ │ char upperCase3 = Character.toUpperCase(s.charAt(j)); │ │ │ │ final int n3; │ │ │ │ if (j == 0 || j == (n3 = s.length() - 1)) { │ │ │ │ switch (upperCase3) { │ │ │ │ case 84: { │ │ ├── com/google/zxing/oned/Code128Reader.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -848,36 +848,35 @@ │ │ │ │ private static int[] findStartPattern(final BitArray bitArray) { │ │ │ │ final int size = bitArray.getSize(); │ │ │ │ final int nextSet = bitArray.getNextSet(0); │ │ │ │ int n = 0; │ │ │ │ final int[] array = new int[6]; │ │ │ │ int n2 = nextSet; │ │ │ │ boolean b = false; │ │ │ │ - final int length = array.length; │ │ │ │ for (int i = nextSet; i < size; ++i) { │ │ │ │ if (bitArray.get(i) ^ b) { │ │ │ │ ++array[n]; │ │ │ │ } │ │ │ │ else { │ │ │ │ - if (n == length - 1) { │ │ │ │ + if (n == 5) { │ │ │ │ float n3 = 0.25f; │ │ │ │ int n4 = -1; │ │ │ │ for (int j = 103; j <= 105; ++j) { │ │ │ │ final float patternMatchVariance = patternMatchVariance(array, Code128Reader.CODE_PATTERNS[j], 0.7f); │ │ │ │ if (patternMatchVariance < n3) { │ │ │ │ n3 = patternMatchVariance; │ │ │ │ n4 = j; │ │ │ │ } │ │ │ │ } │ │ │ │ if (n4 >= 0 && bitArray.isRange(Math.max(0, n2 - (i - n2) / 2), n2, false)) { │ │ │ │ return new int[] { n2, i, n4 }; │ │ │ │ } │ │ │ │ n2 += array[0] + array[1]; │ │ │ │ - System.arraycopy(array, 2, array, 0, length - 2); │ │ │ │ - array[length - 1] = (array[length - 2] = 0); │ │ │ │ + System.arraycopy(array, 2, array, 0, 4); │ │ │ │ + array[5] = (array[4] = 0); │ │ │ │ --n; │ │ │ │ } │ │ │ │ else { │ │ │ │ ++n; │ │ │ │ } │ │ │ │ array[n] = 1; │ │ │ │ b = !b; │ │ │ │ @@ -933,15 +932,15 @@ │ │ │ │ b2 = true; │ │ │ │ } │ │ │ │ if (decodeCode != 106) { │ │ │ │ ++n9; │ │ │ │ n8 += n9 * decodeCode; │ │ │ │ } │ │ │ │ n5 = n6; │ │ │ │ - for (int length = array.length, j = 0; j < length; ++j) { │ │ │ │ + for (int j = 0; j < 6; ++j) { │ │ │ │ n6 += array[j]; │ │ │ │ } │ │ │ │ switch (decodeCode) { │ │ │ │ default: { │ │ │ │ Label_0488: { │ │ │ │ switch (n3) { │ │ │ │ case 101: { │ │ │ │ @@ -1151,24 +1150,24 @@ │ │ │ │ final int nextUnset = bitArray.getNextUnset(n6); │ │ │ │ if (!bitArray.isRange(nextUnset, Math.min(bitArray.getSize(), (nextUnset - n5) / 2 + nextUnset), false)) { │ │ │ │ throw NotFoundException.getNotFoundInstance(); │ │ │ │ } │ │ │ │ if ((n8 - n9 * n7) % 103 != n7) { │ │ │ │ throw ChecksumException.getChecksumInstance(); │ │ │ │ } │ │ │ │ - final int length2 = sb.length(); │ │ │ │ - if (length2 == 0) { │ │ │ │ + final int length = sb.length(); │ │ │ │ + if (length == 0) { │ │ │ │ throw NotFoundException.getNotFoundInstance(); │ │ │ │ } │ │ │ │ - if (length2 > 0 && b2) { │ │ │ │ + if (length > 0 && b2) { │ │ │ │ if (n3 == 99) { │ │ │ │ - sb.delete(length2 - 2, length2); │ │ │ │ + sb.delete(length - 2, length); │ │ │ │ } │ │ │ │ else { │ │ │ │ - sb.delete(length2 - 1, length2); │ │ │ │ + sb.delete(length - 1, length); │ │ │ │ } │ │ │ │ } │ │ │ │ final float n14 = (startPattern[1] + startPattern[0]) / 2.0f; │ │ │ │ final float n15 = n5 + n13 / 2.0f; │ │ │ │ final int size = list.size(); │ │ │ │ final byte[] array2 = new byte[size]; │ │ │ │ for (int k = 0; k < size; ++k) { │ │ ├── com/google/zxing/oned/Code128Writer.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -19,45 +19,112 @@ │ │ │ │ private static final int CODE_START_C = 105; │ │ │ │ private static final int CODE_STOP = 106; │ │ │ │ private static final char ESCAPE_FNC_1 = '\u00f1'; │ │ │ │ private static final char ESCAPE_FNC_2 = '\u00f2'; │ │ │ │ private static final char ESCAPE_FNC_3 = '\u00f3'; │ │ │ │ private static final char ESCAPE_FNC_4 = '\u00f4'; │ │ │ │ │ │ │ │ - private static boolean isDigits(final CharSequence charSequence, final int n, final int n2) { │ │ │ │ - boolean b = false; │ │ │ │ - int n3 = n + n2; │ │ │ │ - final int length = charSequence.length(); │ │ │ │ - for (int n4 = n; n4 < n3 && n4 < length; ++n4) { │ │ │ │ - final char char1 = charSequence.charAt(n4); │ │ │ │ - if (char1 < '0' || char1 > '9') { │ │ │ │ - if (char1 != '\u00f1') { │ │ │ │ - return b; │ │ │ │ + private static int chooseCode(final CharSequence charSequence, final int n, int n2) { │ │ │ │ + final int n3 = 99; │ │ │ │ + final int n4 = 100; │ │ │ │ + Code128Writer$CType code128Writer$CType = findCType(charSequence, n); │ │ │ │ + if (code128Writer$CType == Code128Writer$CType.UNCODABLE || code128Writer$CType == Code128Writer$CType.ONE_DIGIT) { │ │ │ │ + n2 = n4; │ │ │ │ + } │ │ │ │ + else if (n2 != n3) { │ │ │ │ + if (n2 == n4) { │ │ │ │ + if (code128Writer$CType != Code128Writer$CType.FNC_1) { │ │ │ │ + final Code128Writer$CType cType = findCType(charSequence, n + 2); │ │ │ │ + if (cType != Code128Writer$CType.UNCODABLE && cType != Code128Writer$CType.ONE_DIGIT) { │ │ │ │ + if (cType == Code128Writer$CType.FNC_1) { │ │ │ │ + if (findCType(charSequence, n + 3) == Code128Writer$CType.TWO_DIGITS) { │ │ │ │ + n2 = n3; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + n2 = n4; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + int n5 = n + 4; │ │ │ │ + Code128Writer$CType cType2; │ │ │ │ + while (true) { │ │ │ │ + cType2 = findCType(charSequence, n5); │ │ │ │ + if (cType2 != Code128Writer$CType.TWO_DIGITS) { │ │ │ │ + break; │ │ │ │ + } │ │ │ │ + n5 += 2; │ │ │ │ + } │ │ │ │ + if (cType2 == Code128Writer$CType.ONE_DIGIT) { │ │ │ │ + n2 = n4; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + n2 = n3; │ │ │ │ + } │ │ │ │ + } │ │ │ │ + } │ │ │ │ + } │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + if (code128Writer$CType == Code128Writer$CType.FNC_1) { │ │ │ │ + code128Writer$CType = findCType(charSequence, n + 1); │ │ │ │ + } │ │ │ │ + if (code128Writer$CType == Code128Writer$CType.TWO_DIGITS) { │ │ │ │ + n2 = n3; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + n2 = n4; │ │ │ │ } │ │ │ │ - ++n3; │ │ │ │ } │ │ │ │ } │ │ │ │ - if (n3 <= length) { │ │ │ │ - b = true; │ │ │ │ - return b; │ │ │ │ + return n2; │ │ │ │ + } │ │ │ │ + │ │ │ │ + private static Code128Writer$CType findCType(final CharSequence charSequence, final int n) { │ │ │ │ + final char c = '9'; │ │ │ │ + final char c2 = '0'; │ │ │ │ + final int length = charSequence.length(); │ │ │ │ + Code128Writer$CType code128Writer$CType; │ │ │ │ + if (n >= length) { │ │ │ │ + code128Writer$CType = Code128Writer$CType.UNCODABLE; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + final char char1 = charSequence.charAt(n); │ │ │ │ + if (char1 == '\u00f1') { │ │ │ │ + code128Writer$CType = Code128Writer$CType.FNC_1; │ │ │ │ + } │ │ │ │ + else if (char1 < c2 || char1 > c) { │ │ │ │ + code128Writer$CType = Code128Writer$CType.UNCODABLE; │ │ │ │ + } │ │ │ │ + else if (n + 1 >= length) { │ │ │ │ + code128Writer$CType = Code128Writer$CType.ONE_DIGIT; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + final char char2 = charSequence.charAt(n + 1); │ │ │ │ + if (char2 < c2 || char2 > c) { │ │ │ │ + code128Writer$CType = Code128Writer$CType.ONE_DIGIT; │ │ │ │ + } │ │ │ │ + else { │ │ │ │ + code128Writer$CType = Code128Writer$CType.TWO_DIGITS; │ │ │ │ + } │ │ │ │ + } │ │ │ │ } │ │ │ │ - return b; │ │ │ │ + return code128Writer$CType; │ │ │ │ } │ │ │ │ │ │ │ │ public BitMatrix encode(final String s, final BarcodeFormat barcodeFormat, final int n, final int n2, final Map map) { │ │ │ │ if (barcodeFormat != BarcodeFormat.CODE_128) { │ │ │ │ throw new IllegalArgumentException("Can only encode CODE_128, but got " + barcodeFormat); │ │ │ │ } │ │ │ │ return super.encode(s, barcodeFormat, n, n2, map); │ │ │ │ } │ │ │ │ │ │ │ │ public boolean[] encode(final String s) { │ │ │ │ final int length = s.length(); │ │ │ │ final int n; │ │ │ │ - if (length < 1 || length > (n = 80)) { │ │ │ │ + if (length <= 0 || length > (n = 80)) { │ │ │ │ throw new IllegalArgumentException("Contents length should be between 1 and 80 characters, but got " + length); │ │ │ │ } │ │ │ │ for (int i = 0; i < length; ++i) { │ │ │ │ final char char1 = s.charAt(i); │ │ │ │ final int n2; │ │ │ │ if (char1 < ' ' || char1 > (n2 = 126)) { │ │ │ │ switch (char1) { │ │ │ │ @@ -75,30 +142,17 @@ │ │ │ │ } │ │ │ │ final ArrayList list = new ArrayList(); │ │ │ │ int n3 = 0; │ │ │ │ int n4 = 1; │ │ │ │ int n5 = 0; │ │ │ │ int j = 0; │ │ │ │ while (j < length) { │ │ │ │ - int n6; │ │ │ │ - if (n5 == 99) { │ │ │ │ - n6 = 2; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - n6 = 4; │ │ │ │ - } │ │ │ │ - int n7; │ │ │ │ - if (isDigits(s, j, n6)) { │ │ │ │ - n7 = 99; │ │ │ │ - } │ │ │ │ - else { │ │ │ │ - n7 = 100; │ │ │ │ - } │ │ │ │ + final int chooseCode = chooseCode(s, j, n5); │ │ │ │ int int1 = 0; │ │ │ │ - if (n7 == n5) { │ │ │ │ + if (chooseCode == n5) { │ │ │ │ switch (s.charAt(j)) { │ │ │ │ default: { │ │ │ │ if (n5 == 100) { │ │ │ │ int1 = s.charAt(j) - 32; │ │ │ │ break; │ │ │ │ } │ │ │ │ int1 = Integer.parseInt(s.substring(j, j + 2)); │ │ │ │ @@ -122,42 +176,42 @@ │ │ │ │ break; │ │ │ │ } │ │ │ │ } │ │ │ │ ++j; │ │ │ │ } │ │ │ │ else { │ │ │ │ if (n5 == 0) { │ │ │ │ - if (n7 == 100) { │ │ │ │ + if (chooseCode == 100) { │ │ │ │ int1 = 104; │ │ │ │ } │ │ │ │ else { │ │ │ │ int1 = 105; │ │ │ │ } │ │ │ │ } │ │ │ │ else { │ │ │ │ - int1 = n7; │ │ │ │ + int1 = chooseCode; │ │ │ │ } │ │ │ │ - n5 = n7; │ │ │ │ + n5 = chooseCode; │ │ │ │ } │ │ │ │ list.add(Code128Reader.CODE_PATTERNS[int1]); │ │ │ │ n3 += int1 * n4; │ │ │ │ if (j != 0) { │ │ │ │ ++n4; │ │ │ │ } │ │ │ │ } │ │ │ │ list.add(Code128Reader.CODE_PATTERNS[n3 % 103]); │ │ │ │ list.add(Code128Reader.CODE_PATTERNS[106]); │ │ │ │ - int n8 = 0; │ │ │ │ + int n6 = 0; │ │ │ │ for (final int[] array : list) { │ │ │ │ for (int length2 = array.length, k = 0; k < length2; ++k) { │ │ │ │ - n8 += array[k]; │ │ │ │ + n6 += array[k]; │ │ │ │ } │ │ │ │ } │ │ │ │ - final boolean[] array2 = new boolean[n8]; │ │ │ │ - int n9 = 0; │ │ │ │ + final boolean[] array2 = new boolean[n6]; │ │ │ │ + int n7 = 0; │ │ │ │ final Iterator iterator2 = list.iterator(); │ │ │ │ while (iterator2.hasNext()) { │ │ │ │ - n9 += appendPattern(array2, n9, (int[])iterator2.next(), true); │ │ │ │ + n7 += appendPattern(array2, n7, (int[])iterator2.next(), true); │ │ │ │ } │ │ │ │ return array2; │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/oned/Code39Reader.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -13,25 +13,24 @@ │ │ │ │ import java.util.Map; │ │ │ │ import com.google.zxing.NotFoundException; │ │ │ │ import com.google.zxing.common.BitArray; │ │ │ │ import com.google.zxing.FormatException; │ │ │ │ │ │ │ │ public final class Code39Reader extends OneDReader │ │ │ │ { │ │ │ │ - private static final char[] ALPHABET; │ │ │ │ static final String ALPHABET_STRING = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%"; │ │ │ │ - private static final int ASTERISK_ENCODING; │ │ │ │ + static final int ASTERISK_ENCODING = 0; │ │ │ │ static final int[] CHARACTER_ENCODINGS; │ │ │ │ + private static final String CHECK_DIGIT_STRING = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%"; │ │ │ │ private final int[] counters; │ │ │ │ private final StringBuilder decodeRowResult; │ │ │ │ private final boolean extendedMode; │ │ │ │ private final boolean usingCheckDigit; │ │ │ │ │ │ │ │ static { │ │ │ │ - ALPHABET = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%".toCharArray(); │ │ │ │ final int[] array; │ │ │ │ final int[] character_ENCODINGS = array = new int[44]; │ │ │ │ array[0] = 52; │ │ │ │ array[1] = 289; │ │ │ │ array[2] = 97; │ │ │ │ array[3] = 352; │ │ │ │ array[4] = 49; │ │ │ │ @@ -71,15 +70,14 @@ │ │ │ │ array[38] = 196; │ │ │ │ array[39] = 148; │ │ │ │ array[40] = 168; │ │ │ │ array[41] = 162; │ │ │ │ array[42] = 138; │ │ │ │ array[43] = 42; │ │ │ │ CHARACTER_ENCODINGS = character_ENCODINGS; │ │ │ │ - ASTERISK_ENCODING = Code39Reader.CHARACTER_ENCODINGS[39]; │ │ │ │ } │ │ │ │ │ │ │ │ public Code39Reader() { │ │ │ │ this(false); │ │ │ │ } │ │ │ │ │ │ │ │ public Code39Reader(final boolean b) { │ │ │ │ @@ -186,15 +184,15 @@ │ │ │ │ } │ │ │ │ throw NotFoundException.getNotFoundInstance(); │ │ │ │ } │ │ │ │ │ │ │ │ private static char patternToChar(final int n) { │ │ │ │ for (int i = 0; i < Code39Reader.CHARACTER_ENCODINGS.length; ++i) { │ │ │ │ if (Code39Reader.CHARACTER_ENCODINGS[i] == n) { │ │ │ │ - return Code39Reader.ALPHABET[i]; │ │ │ │ + return "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%".charAt(i); │ │ │ │ } │ │ │ │ } │ │ │ │ throw NotFoundException.getNotFoundInstance(); │ │ │ │ } │ │ │ │ │ │ │ │ private static int toNarrowWidePattern(final int[] array) { │ │ │ │ final int n = 3; │ │ │ │ @@ -223,15 +221,15 @@ │ │ │ │ } │ │ │ │ } │ │ │ │ if (i == n) { │ │ │ │ for (int n9 = 0; n9 < length && i > 0; ++n9) { │ │ │ │ final int n10 = array[n9]; │ │ │ │ if (n10 > n3) { │ │ │ │ --i; │ │ │ │ - if (n10 * 2 >= n6) { │ │ │ │ + if (n10 << 1 >= n6) { │ │ │ │ n7 = n2; │ │ │ │ break; │ │ │ │ } │ │ │ │ } │ │ │ │ } │ │ │ │ return n7; │ │ │ │ } │ │ │ │ @@ -266,25 +264,25 @@ │ │ │ │ decodeRowResult.setLength(decodeRowResult.length() - 1); │ │ │ │ int n4 = 0; │ │ │ │ for (int length2 = counters.length, j = 0; j < length2; ++j) { │ │ │ │ n4 += counters[j]; │ │ │ │ } │ │ │ │ final int n5 = n2 - n3 - n4; │ │ │ │ final int n6; │ │ │ │ - if (n2 != size && (n6 = n5 * 2) < n4) { │ │ │ │ + if (n2 != size && (n6 = n5 << 1) < n4) { │ │ │ │ throw NotFoundException.getNotFoundInstance(); │ │ │ │ } │ │ │ │ final boolean usingCheckDigit; │ │ │ │ if (usingCheckDigit = this.usingCheckDigit) { │ │ │ │ final int length3 = decodeRowResult.length() - 1; │ │ │ │ int n7 = 0; │ │ │ │ for (int k = 0; k < length3; ++k) { │ │ │ │ - n7 += "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%".indexOf(this.decodeRowResult.charAt(k)); │ │ │ │ + n7 += "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%".indexOf(this.decodeRowResult.charAt(k)); │ │ │ │ } │ │ │ │ - if (decodeRowResult.charAt(length3) != Code39Reader.ALPHABET[n7 % 43]) { │ │ │ │ + if (decodeRowResult.charAt(length3) != "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%".charAt(n7 % 43)) { │ │ │ │ throw ChecksumException.getChecksumInstance(); │ │ │ │ } │ │ │ │ decodeRowResult.setLength(length3); │ │ │ │ } │ │ │ │ if (decodeRowResult.length() == 0) { │ │ │ │ throw NotFoundException.getNotFoundInstance(); │ │ │ │ } │ │ ├── com/google/zxing/oned/Code39Writer.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -25,41 +25,41 @@ │ │ │ │ if (barcodeFormat != BarcodeFormat.CODE_39) { │ │ │ │ throw new IllegalArgumentException("Can only encode CODE_39, but got " + barcodeFormat); │ │ │ │ } │ │ │ │ return super.encode(s, barcodeFormat, n, n2, map); │ │ │ │ } │ │ │ │ │ │ │ │ public boolean[] encode(final String s) { │ │ │ │ - final int n = 39; │ │ │ │ + final int n = 9; │ │ │ │ final int n2 = 1; │ │ │ │ final int length = s.length(); │ │ │ │ if (length > 80) { │ │ │ │ throw new IllegalArgumentException("Requested contents should be less than 80 digits long, but got " + length); │ │ │ │ } │ │ │ │ - final int[] array = new int[9]; │ │ │ │ + final int[] array = new int[n]; │ │ │ │ int n3 = length + 25; │ │ │ │ for (int i = 0; i < length; ++i) { │ │ │ │ final int index = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%".indexOf(s.charAt(i)); │ │ │ │ if (index < 0) { │ │ │ │ throw new IllegalArgumentException("Bad contents: " + s); │ │ │ │ } │ │ │ │ toIntArray(Code39Reader.CHARACTER_ENCODINGS[index], array); │ │ │ │ - for (int length2 = array.length, j = 0; j < length2; ++j) { │ │ │ │ + for (int j = 0; j < n; ++j) { │ │ │ │ n3 += array[j]; │ │ │ │ } │ │ │ │ } │ │ │ │ final boolean[] array2 = new boolean[n3]; │ │ │ │ - toIntArray(Code39Reader.CHARACTER_ENCODINGS[n], array); │ │ │ │ + toIntArray(Code39Reader.ASTERISK_ENCODING, array); │ │ │ │ final int appendPattern = appendPattern(array2, 0, array, (boolean)(n2 != 0)); │ │ │ │ final int[] array3 = new int[n2]; │ │ │ │ array3[0] = n2; │ │ │ │ int n4 = appendPattern + appendPattern(array2, appendPattern, array3, false); │ │ │ │ for (int k = 0; k < length; ++k) { │ │ │ │ toIntArray(Code39Reader.CHARACTER_ENCODINGS["0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%".indexOf((int)s.charAt(k))], array); │ │ │ │ final int n5 = n4 + appendPattern(array2, n4, array, (boolean)(n2 != 0)); │ │ │ │ n4 = n5 + appendPattern(array2, n5, array3, false); │ │ │ │ } │ │ │ │ - toIntArray(Code39Reader.CHARACTER_ENCODINGS[n], array); │ │ │ │ + toIntArray(Code39Reader.ASTERISK_ENCODING, array); │ │ │ │ appendPattern(array2, n4, array, (boolean)(n2 != 0)); │ │ │ │ return array2; │ │ │ │ } │ │ │ │ } │ │ ├── com/google/zxing/oned/Code93Reader.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -14,17 +14,17 @@ │ │ │ │ import com.google.zxing.common.BitArray; │ │ │ │ import com.google.zxing.FormatException; │ │ │ │ import com.google.zxing.ChecksumException; │ │ │ │ │ │ │ │ public final class Code93Reader extends OneDReader │ │ │ │ { │ │ │ │ private static final char[] ALPHABET; │ │ │ │ - private static final String ALPHABET_STRING = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%abcd*"; │ │ │ │ + static final String ALPHABET_STRING = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%abcd*"; │ │ │ │ private static final int ASTERISK_ENCODING; │ │ │ │ - private static final int[] CHARACTER_ENCODINGS; │ │ │ │ + static final int[] CHARACTER_ENCODINGS; │ │ │ │ private final int[] counters; │ │ │ │ private final StringBuilder decodeRowResult; │ │ │ │ │ │ │ │ static { │ │ │ │ ALPHABET = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%abcd*".toCharArray(); │ │ │ │ final int[] array; │ │ │ │ final int[] character_ENCODINGS = array = new int[48]; │ │ │ │ @@ -73,15 +73,15 @@ │ │ │ │ array[42] = 430; │ │ │ │ array[43] = 294; │ │ │ │ array[44] = 474; │ │ │ │ array[45] = 470; │ │ │ │ array[46] = 306; │ │ │ │ array[47] = 350; │ │ │ │ CHARACTER_ENCODINGS = character_ENCODINGS; │ │ │ │ - ASTERISK_ENCODING = Code93Reader.CHARACTER_ENCODINGS[47]; │ │ │ │ + ASTERISK_ENCODING = character_ENCODINGS[47]; │ │ │ │ } │ │ │ │ │ │ │ │ public Code93Reader() { │ │ │ │ this.decodeRowResult = new StringBuilder(20); │ │ │ │ this.counters = new int[6]; │ │ │ │ } │ │ │ │ │ │ │ │ @@ -224,23 +224,22 @@ │ │ │ │ return Code93Reader.ALPHABET[i]; │ │ │ │ } │ │ │ │ } │ │ │ │ throw NotFoundException.getNotFoundInstance(); │ │ │ │ } │ │ │ │ │ │ │ │ private static int toPattern(final int[] array) { │ │ │ │ - final int length = array.length; │ │ │ │ int n = 0; │ │ │ │ - for (int length2 = array.length, i = 0; i < length2; ++i) { │ │ │ │ + for (int length = array.length, i = 0; i < length; ++i) { │ │ │ │ n += array[i]; │ │ │ │ } │ │ │ │ int n2 = 0; │ │ │ │ - for (int j = 0; j < length; ++j) { │ │ │ │ + for (int length2 = array.length, j = 0; j < length2; ++j) { │ │ │ │ final int round = Math.round(array[j] * 9.0f / (float)n); │ │ │ │ - if (round < 1 || round > 4) { │ │ │ │ + if (round <= 0 || round > 4) { │ │ │ │ n2 = -1; │ │ │ │ break; │ │ │ │ } │ │ │ │ if