package com.l7tech.common.io.csv;

import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import java.util.List;

public class CSVReader {
   protected final CSVPreference _preference;
   protected final Reader _reader;
   private static final String[] a;

   public CSVReader(Reader var1, CSVPreference var2) {
      this._reader = var1;
      this._preference = var2;
   }

   public static List<String> decode(CSVPreference var0, boolean var1, String var2) throws IOException {
      CSVReader var3 = new CSVReader(new StringReader(var2), var0);
      return var3.readRecord(var1);
   }

   public List<String> readRecord(boolean param1) throws IOException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 000: aload 0
      // 001: getfield com/l7tech/common/io/csv/CSVReader._preference Lcom/l7tech/common/io/csv/CSVPreference;
      // 004: invokevirtual com/l7tech/common/io/csv/CSVPreference.getQuote ()C
      // 007: istore 2
      // 008: aload 0
      // 009: getfield com/l7tech/common/io/csv/CSVReader._preference Lcom/l7tech/common/io/csv/CSVPreference;
      // 00c: invokevirtual com/l7tech/common/io/csv/CSVPreference.getSeparator ()C
      // 00f: istore 3
      // 010: aload 0
      // 011: getfield com/l7tech/common/io/csv/CSVReader._preference Lcom/l7tech/common/io/csv/CSVPreference;
      // 014: invokevirtual com/l7tech/common/io/csv/CSVPreference.getEndOfRecord ()Ljava/lang/String;
      // 017: astore 4
      // 019: new java/util/ArrayList
      // 01c: dup
      // 01d: invokespecial java/util/ArrayList.<init> ()V
      // 020: astore 5
      // 022: new java/lang/StringBuilder
      // 025: dup
      // 026: invokespecial java/lang/StringBuilder.<init> ()V
      // 029: astore 6
      // 02b: bipush 0
      // 02c: istore 7
      // 02e: bipush 0
      // 02f: istore 8
      // 031: getstatic com/l7tech/common/io/csv/CSVReader$ParsingState.BEFORE_VALUE Lcom/l7tech/common/io/csv/CSVReader$ParsingState;
      // 034: astore 9
      // 036: bipush -1
      // 037: istore 10
      // 039: aconst_null
      // 03a: astore 11
      // 03c: aload 11
      // 03e: ifnonnull 05e
      // 041: aload 0
      // 042: getfield com/l7tech/common/io/csv/CSVReader._reader Ljava/io/Reader;
      // 045: invokevirtual java/io/Reader.read ()I
      // 048: dup
      // 049: istore 10
      // 04b: bipush -1
      // 04c: if_icmpne 056
      // 04f: goto 2f8
      // 052: invokestatic com/l7tech/common/io/csv/CSVReader.a (Ljava/io/IOException;)Ljava/io/IOException;
      // 055: athrow
      // 056: iload 10
      // 058: i2c
      // 059: istore 12
      // 05b: goto 068
      // 05e: aload 11
      // 060: invokevirtual java/lang/Character.charValue ()C
      // 063: istore 12
      // 065: aconst_null
      // 066: astore 11
      // 068: aload 9
      // 06a: invokevirtual com/l7tech/common/io/csv/CSVReader$ParsingState.ordinal ()I
      // 06d: tableswitch 631 0 4 35 154 264 464 559
      // 090: iload 12
      // 092: bipush 32
      // 094: if_icmpne 0a5
      // 097: goto 09e
      // 09a: invokestatic com/l7tech/common/io/csv/CSVReader.a (Ljava/io/IOException;)Ljava/io/IOException;
      // 09d: athrow
      // 09e: goto 2f5
      // 0a1: invokestatic com/l7tech/common/io/csv/CSVReader.a (Ljava/io/IOException;)Ljava/io/IOException;
      // 0a4: athrow
      // 0a5: iload 12
      // 0a7: iload 3
      // 0a8: if_icmpne 0bc
      // 0ab: aload 5
      // 0ad: ldc ""
      // 0af: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 0b4: pop
      // 0b5: goto 2f5
      // 0b8: invokestatic com/l7tech/common/io/csv/CSVReader.a (Ljava/io/IOException;)Ljava/io/IOException;
      // 0bb: athrow
      // 0bc: iload 12
      // 0be: iload 2
      // 0bf: if_icmpne 0ca
      // 0c2: getstatic com/l7tech/common/io/csv/CSVReader$ParsingState.QUOTED_VALUE Lcom/l7tech/common/io/csv/CSVReader$ParsingState;
      // 0c5: astore 9
      // 0c7: goto 2f5
      // 0ca: iload 12
      // 0cc: aload 4
      // 0ce: bipush 0
      // 0cf: invokevirtual java/lang/String.charAt (I)C
      // 0d2: if_icmpne 0f7
      // 0d5: bipush 1
      // 0d6: istore 7
      // 0d8: getstatic com/l7tech/common/io/csv/CSVReader$ParsingState.END_OF_RECORD Lcom/l7tech/common/io/csv/CSVReader$ParsingState;
      // 0db: astore 9
      // 0dd: aload 5
      // 0df: ldc ""
      // 0e1: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 0e6: pop
      // 0e7: aload 4
      // 0e9: invokevirtual java/lang/String.length ()I
      // 0ec: bipush 1
      // 0ed: if_icmpne 2f5
      // 0f0: goto 2f8
      // 0f3: invokestatic com/l7tech/common/io/csv/CSVReader.a (Ljava/io/IOException;)Ljava/io/IOException;
      // 0f6: athrow
      // 0f7: getstatic com/l7tech/common/io/csv/CSVReader$ParsingState.UNQUOTED_VALUE Lcom/l7tech/common/io/csv/CSVReader$ParsingState;
      // 0fa: astore 9
      // 0fc: aload 6
      // 0fe: iload 12
      // 100: invokevirtual java/lang/StringBuilder.append (C)Ljava/lang/StringBuilder;
      // 103: pop
      // 104: goto 2f5
      // 107: iload 12
      // 109: bipush 32
      // 10b: if_icmpne 115
      // 10e: goto 2f5
      // 111: invokestatic com/l7tech/common/io/csv/CSVReader.a (Ljava/io/IOException;)Ljava/io/IOException;
      // 114: athrow
      // 115: iload 12
      // 117: iload 3
      // 118: if_icmpne 123
      // 11b: getstatic com/l7tech/common/io/csv/CSVReader$ParsingState.BEFORE_VALUE Lcom/l7tech/common/io/csv/CSVReader$ParsingState;
      // 11e: astore 9
      // 120: goto 2f5
      // 123: iload 12
      // 125: aload 4
      // 127: bipush 0
      // 128: invokevirtual java/lang/String.charAt (I)C
      // 12b: if_icmpne 146
      // 12e: bipush 1
      // 12f: istore 7
      // 131: getstatic com/l7tech/common/io/csv/CSVReader$ParsingState.END_OF_RECORD Lcom/l7tech/common/io/csv/CSVReader$ParsingState;
      // 134: astore 9
      // 136: aload 4
      // 138: invokevirtual java/lang/String.length ()I
      // 13b: bipush 1
      // 13c: if_icmpne 2f5
      // 13f: goto 2f8
      // 142: invokestatic com/l7tech/common/io/csv/CSVReader.a (Ljava/io/IOException;)Ljava/io/IOException;
      // 145: athrow
      // 146: iload 1
      // 147: ifeq 2f5
      // 14a: new com/l7tech/common/io/csv/CSVException
      // 14d: dup
      // 14e: iload 12
      // 150: iload 10
      // 152: invokestatic java/lang/Integer.toHexString (I)Ljava/lang/String;
      // 155: invokevirtual java/lang/String.toUpperCase ()Ljava/lang/String;
      // 158: getstatic com/l7tech/common/io/csv/CSVReader.a [Ljava/lang/String;
      // 15b: bipush 6
      // 15d: aaload
      // 15e: dup_x2
      // 15f: pop
      // 160: getstatic com/l7tech/common/io/csv/CSVReader.a [Ljava/lang/String;
      // 163: bipush 1
      // 164: aaload
      // 165: swap
      // 166: ldc ")"
      // 168: invokedynamic makeConcatWithConstants (Ljava/lang/String;CLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001\u0001" ]
      // 16d: invokespecial com/l7tech/common/io/csv/CSVException.<init> (Ljava/lang/String;)V
      // 170: athrow
      // 171: invokestatic com/l7tech/common/io/csv/CSVReader.a (Ljava/io/IOException;)Ljava/io/IOException;
      // 174: athrow
      // 175: iload 12
      // 177: iload 3
      // 178: if_icmpne 1c9
      // 17b: aload 6
      // 17d: invokevirtual java/lang/StringBuilder.length ()I
      // 180: bipush 1
      // 181: isub
      // 182: istore 13
      // 184: iload 13
      // 186: iflt 1ae
      // 189: aload 6
      // 18b: iload 13
      // 18d: invokevirtual java/lang/StringBuilder.charAt (I)C
      // 190: bipush 32
      // 192: if_icmpne 1ae
      // 195: goto 19c
      // 198: invokestatic com/l7tech/common/io/csv/CSVReader.a (Ljava/io/IOException;)Ljava/io/IOException;
      // 19b: athrow
      // 19c: aload 6
      // 19e: iload 13
      // 1a0: invokevirtual java/lang/StringBuilder.deleteCharAt (I)Ljava/lang/StringBuilder;
      // 1a3: pop
      // 1a4: iinc 13 -1
      // 1a7: goto 184
      // 1aa: invokestatic com/l7tech/common/io/csv/CSVReader.a (Ljava/io/IOException;)Ljava/io/IOException;
      // 1ad: athrow
      // 1ae: aload 5
      // 1b0: aload 6
      // 1b2: invokevirtual java/lang/StringBuilder.toString ()Ljava/lang/String;
      // 1b5: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 1ba: pop
      // 1bb: aload 6
      // 1bd: bipush 0
      // 1be: invokevirtual java/lang/StringBuilder.setLength (I)V
      // 1c1: getstatic com/l7tech/common/io/csv/CSVReader$ParsingState.BEFORE_VALUE Lcom/l7tech/common/io/csv/CSVReader$ParsingState;
      // 1c4: astore 9
      // 1c6: goto 2f5
      // 1c9: iload 12
      // 1cb: aload 4
      // 1cd: bipush 0
      // 1ce: invokevirtual java/lang/String.charAt (I)C
      // 1d1: if_icmpne 232
      // 1d4: aload 6
      // 1d6: invokevirtual java/lang/StringBuilder.length ()I
      // 1d9: bipush 1
      // 1da: isub
      // 1db: istore 13
      // 1dd: iload 13
      // 1df: iflt 207
      // 1e2: aload 6
      // 1e4: iload 13
      // 1e6: invokevirtual java/lang/StringBuilder.charAt (I)C
      // 1e9: bipush 32
      // 1eb: if_icmpne 207
      // 1ee: goto 1f5
      // 1f1: invokestatic com/l7tech/common/io/csv/CSVReader.a (Ljava/io/IOException;)Ljava/io/IOException;
      // 1f4: athrow
      // 1f5: aload 6
      // 1f7: iload 13
      // 1f9: invokevirtual java/lang/StringBuilder.deleteCharAt (I)Ljava/lang/StringBuilder;
      // 1fc: pop
      // 1fd: iinc 13 -1
      // 200: goto 1dd
      // 203: invokestatic com/l7tech/common/io/csv/CSVReader.a (Ljava/io/IOException;)Ljava/io/IOException;
      // 206: athrow
      // 207: aload 5
      // 209: aload 6
      // 20b: invokevirtual java/lang/StringBuilder.toString ()Ljava/lang/String;
      // 20e: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 213: pop
      // 214: aload 6
      // 216: bipush 0
      // 217: invokevirtual java/lang/StringBuilder.setLength (I)V
      // 21a: bipush 1
      // 21b: istore 7
      // 21d: getstatic com/l7tech/common/io/csv/CSVReader$ParsingState.END_OF_RECORD Lcom/l7tech/common/io/csv/CSVReader$ParsingState;
      // 220: astore 9
      // 222: aload 4
      // 224: invokevirtual java/lang/String.length ()I
      // 227: bipush 1
      // 228: if_icmpne 2f5
      // 22b: goto 2f8
      // 22e: invokestatic com/l7tech/common/io/csv/CSVReader.a (Ljava/io/IOException;)Ljava/io/IOException;
      // 231: athrow
      // 232: aload 6
      // 234: iload 12
      // 236: invokevirtual java/lang/StringBuilder.append (C)Ljava/lang/StringBuilder;
      // 239: pop
      // 23a: goto 2f5
      // 23d: iload 8
      // 23f: ifeq 288
      // 242: iload 12
      // 244: iload 2
      // 245: if_icmpne 256
      // 248: goto 24f
      // 24b: invokestatic com/l7tech/common/io/csv/CSVReader.a (Ljava/io/IOException;)Ljava/io/IOException;
      // 24e: athrow
      // 24f: goto 282
      // 252: invokestatic com/l7tech/common/io/csv/CSVReader.a (Ljava/io/IOException;)Ljava/io/IOException;
      // 255: athrow
      // 256: aload 6
      // 258: aload 6
      // 25a: invokevirtual java/lang/StringBuilder.length ()I
      // 25d: bipush 1
      // 25e: isub
      // 25f: invokevirtual java/lang/StringBuilder.deleteCharAt (I)Ljava/lang/StringBuilder;
      // 262: pop
      // 263: aload 5
      // 265: aload 6
      // 267: invokevirtual java/lang/StringBuilder.toString ()Ljava/lang/String;
      // 26a: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 26f: pop
      // 270: aload 6
      // 272: bipush 0
      // 273: invokevirtual java/lang/StringBuilder.setLength (I)V
      // 276: getstatic com/l7tech/common/io/csv/CSVReader$ParsingState.AFTER_VALUE Lcom/l7tech/common/io/csv/CSVReader$ParsingState;
      // 279: astore 9
      // 27b: iload 12
      // 27d: invokestatic java/lang/Character.valueOf (C)Ljava/lang/Character;
      // 280: astore 11
      // 282: bipush 0
      // 283: istore 8
      // 285: goto 2f5
      // 288: iload 12
      // 28a: iload 2
      // 28b: if_icmpne 291
      // 28e: bipush 1
      // 28f: istore 8
      // 291: aload 6
      // 293: iload 12
      // 295: invokevirtual java/lang/StringBuilder.append (C)Ljava/lang/StringBuilder;
      // 298: pop
      // 299: goto 2f5
      // 29c: iload 12
      // 29e: aload 4
      // 2a0: iload 7
      // 2a2: invokevirtual java/lang/String.charAt (I)C
      // 2a5: if_icmpne 2c3
      // 2a8: iinc 7 1
      // 2ab: iload 7
      // 2ad: aload 4
      // 2af: invokevirtual java/lang/String.length ()I
      // 2b2: if_icmpne 2f5
      // 2b5: goto 2bc
      // 2b8: invokestatic com/l7tech/common/io/csv/CSVReader.a (Ljava/io/IOException;)Ljava/io/IOException;
      // 2bb: athrow
      // 2bc: goto 2f8
      // 2bf: invokestatic com/l7tech/common/io/csv/CSVReader.a (Ljava/io/IOException;)Ljava/io/IOException;
      // 2c2: athrow
      // 2c3: new com/l7tech/common/io/csv/CSVException
      // 2c6: dup
      // 2c7: iload 7
      // 2c9: iload 12
      // 2cb: getstatic com/l7tech/common/io/csv/CSVReader.a [Ljava/lang/String;
      // 2ce: astore 14
      // 2d0: aload 14
      // 2d2: bipush 0
      // 2d3: aaload
      // 2d4: dup_x2
      // 2d5: pop
      // 2d6: aload 14
      // 2d8: bipush 2
      // 2d9: aaload
      // 2da: swap
      // 2db: invokedynamic makeConcatWithConstants (Ljava/lang/String;ILjava/lang/String;C)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001" ]
      // 2e0: invokespecial com/l7tech/common/io/csv/CSVException.<init> (Ljava/lang/String;)V
      // 2e3: athrow
      // 2e4: new java/lang/RuntimeException
      // 2e7: dup
      // 2e8: getstatic com/l7tech/common/io/csv/CSVReader.a [Ljava/lang/String;
      // 2eb: astore 14
      // 2ed: aload 14
      // 2ef: bipush 4
      // 2f0: aaload
      // 2f1: invokespecial java/lang/RuntimeException.<init> (Ljava/lang/String;)V
      // 2f4: athrow
      // 2f5: goto 03c
      // 2f8: iload 10
      // 2fa: bipush -1
      // 2fb: if_icmpne 401
      // 2fe: aload 9
      // 300: invokevirtual com/l7tech/common/io/csv/CSVReader$ParsingState.ordinal ()I
      // 303: tableswitch 241 0 4 37 74 77 144 219
      // 324: invokestatic com/l7tech/common/io/csv/CSVReader.a (Ljava/io/IOException;)Ljava/io/IOException;
      // 327: athrow
      // 328: aload 5
      // 32a: invokeinterface java/util/List.size ()I 1
      // 32f: ifne 340
      // 332: goto 339
      // 335: invokestatic com/l7tech/common/io/csv/CSVReader.a (Ljava/io/IOException;)Ljava/io/IOException;
      // 338: athrow
      // 339: goto 401
      // 33c: invokestatic com/l7tech/common/io/csv/CSVReader.a (Ljava/io/IOException;)Ljava/io/IOException;
      // 33f: athrow
      // 340: aload 5
      // 342: ldc ""
      // 344: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 349: pop
      // 34a: goto 401
      // 34d: goto 401
      // 350: aload 6
      // 352: invokevirtual java/lang/StringBuilder.length ()I
      // 355: bipush 1
      // 356: isub
      // 357: istore 12
      // 359: iload 12
      // 35b: iflt 383
      // 35e: aload 6
      // 360: iload 12
      // 362: invokevirtual java/lang/StringBuilder.charAt (I)C
      // 365: bipush 32
      // 367: if_icmpne 383
      // 36a: goto 371
      // 36d: invokestatic com/l7tech/common/io/csv/CSVReader.a (Ljava/io/IOException;)Ljava/io/IOException;
      // 370: athrow
      // 371: aload 6
      // 373: iload 12
      // 375: invokevirtual java/lang/StringBuilder.deleteCharAt (I)Ljava/lang/StringBuilder;
      // 378: pop
      // 379: iinc 12 -1
      // 37c: goto 359
      // 37f: invokestatic com/l7tech/common/io/csv/CSVReader.a (Ljava/io/IOException;)Ljava/io/IOException;
      // 382: athrow
      // 383: aload 5
      // 385: aload 6
      // 387: invokevirtual java/lang/StringBuilder.toString ()Ljava/lang/String;
      // 38a: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 38f: pop
      // 390: goto 401
      // 393: iload 8
      // 395: ifeq 3b9
      // 398: aload 6
      // 39a: aload 6
      // 39c: invokevirtual java/lang/StringBuilder.length ()I
      // 39f: bipush 1
      // 3a0: isub
      // 3a1: invokevirtual java/lang/StringBuilder.deleteCharAt (I)Ljava/lang/StringBuilder;
      // 3a4: pop
      // 3a5: aload 5
      // 3a7: aload 6
      // 3a9: invokevirtual java/lang/StringBuilder.toString ()Ljava/lang/String;
      // 3ac: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 3b1: pop
      // 3b2: goto 401
      // 3b5: invokestatic com/l7tech/common/io/csv/CSVReader.a (Ljava/io/IOException;)Ljava/io/IOException;
      // 3b8: athrow
      // 3b9: iload 1
      // 3ba: ifeq 3ce
      // 3bd: new com/l7tech/common/io/csv/CSVException
      // 3c0: dup
      // 3c1: getstatic com/l7tech/common/io/csv/CSVReader.a [Ljava/lang/String;
      // 3c4: bipush 5
      // 3c5: aaload
      // 3c6: invokespecial com/l7tech/common/io/csv/CSVException.<init> (Ljava/lang/String;)V
      // 3c9: athrow
      // 3ca: invokestatic com/l7tech/common/io/csv/CSVReader.a (Ljava/io/IOException;)Ljava/io/IOException;
      // 3cd: athrow
      // 3ce: aload 5
      // 3d0: aload 6
      // 3d2: invokevirtual java/lang/StringBuilder.toString ()Ljava/lang/String;
      // 3d5: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 3da: pop
      // 3db: goto 401
      // 3de: iload 1
      // 3df: ifeq 401
      // 3e2: new com/l7tech/common/io/csv/CSVException
      // 3e5: dup
      // 3e6: getstatic com/l7tech/common/io/csv/CSVReader.a [Ljava/lang/String;
      // 3e9: bipush 7
      // 3eb: aaload
      // 3ec: invokespecial com/l7tech/common/io/csv/CSVException.<init> (Ljava/lang/String;)V
      // 3ef: athrow
      // 3f0: invokestatic com/l7tech/common/io/csv/CSVReader.a (Ljava/io/IOException;)Ljava/io/IOException;
      // 3f3: athrow
      // 3f4: new java/lang/RuntimeException
      // 3f7: dup
      // 3f8: getstatic com/l7tech/common/io/csv/CSVReader.a [Ljava/lang/String;
      // 3fb: bipush 3
      // 3fc: aaload
      // 3fd: invokespecial java/lang/RuntimeException.<init> (Ljava/lang/String;)V
      // 400: athrow
      // 401: aload 5
      // 403: invokeinterface java/util/List.size ()I 1
      // 408: ifne 411
      // 40b: aconst_null
      // 40c: areturn
      // 40d: invokestatic com/l7tech/common/io/csv/CSVReader.a (Ljava/io/IOException;)Ljava/io/IOException;
      // 410: athrow
      // 411: aload 5
      // 413: areturn
      // try (37 -> 40): 40 java/io/IOException
      // try (51 -> 57): 58 java/io/IOException
      // try (54 -> 61): 61 java/io/IOException
      // try (63 -> 71): 71 java/io/IOException
      // try (88 -> 97): 97 java/io/IOException
      // try (106 -> 110): 110 java/io/IOException
      // try (127 -> 132): 132 java/io/IOException
      // try (134 -> 155): 155 java/io/IOException
      // try (165 -> 172): 173 java/io/IOException
      // try (167 -> 181): 181 java/io/IOException
      // try (204 -> 211): 212 java/io/IOException
      // try (206 -> 220): 220 java/io/IOException
      // try (234 -> 239): 239 java/io/IOException
      // try (246 -> 251): 252 java/io/IOException
      // try (248 -> 255): 255 java/io/IOException
      // try (290 -> 300): 301 java/io/IOException
      // try (295 -> 304): 304 java/io/IOException
      // try (334 -> 340): 340 java/io/IOException
      // try (337 -> 345): 346 java/io/IOException
      // try (342 -> 349): 349 java/io/IOException
      // try (362 -> 369): 370 java/io/IOException
      // try (364 -> 378): 378 java/io/IOException
      // try (386 -> 401): 401 java/io/IOException
      // try (403 -> 412): 412 java/io/IOException
      // try (420 -> 429): 429 java/io/IOException
      // try (438 -> 443): 443 java/io/IOException
   }

   private static IOException a(IOException var0) {
      return var0;
   }

   static {
      String[] var5 = new String[8];
      int var3 = 0;
      String var2 = "\u000b/_^\f9E*$^\u0006\u001f4G, YR\u0019.\u0006))_H\\,G,2SH\u001b|E6 HG\u001f(C,aJI\u000f5R7.T\u0006\u000bv)_^\\*G24_\u0006\u0013~(T\u0006\u00192Bs.\\\u000b\u000e9E13^\u001c\\#\u0017\u000fnc.\u0012g\u0012a\u007ft.\u0013tdaWO\u000f/O0&\u001aU\u000b5R=)\u001aE\u001d/C#\u0017\u000fnc.\u0012g\u0012a\u007ft.\u0013tdaWO\u000f/O0&\u001aU\u000b5R=)\u001aE\u001d/C\u0016\u0013(IU\u00152A~\"VI\u000f5H9aKS\u0013(Cp";
      int var4 = "\u000b/_^\f9E*$^\u0006\u001f4G, YR\u0019.\u0006))_H\\,G,2SH\u001b|E6 HG\u001f(C,aJI\u000f5R7.T\u0006\u000bv)_^\\*G24_\u0006\u0013~(T\u0006\u00192Bs.\\\u000b\u000e9E13^\u001c\\#\u0017\u000fnc.\u0012g\u0012a\u007ft.\u0013tdaWO\u000f/O0&\u001aU\u000b5R=)\u001aE\u001d/C#\u0017\u000fnc.\u0012g\u0012a\u007ft.\u0013tdaWO\u000f/O0&\u001aU\u000b5R=)\u001aE\u001d/C\u0016\u0013(IU\u00152A~\"VI\u000f5H9aKS\u0013(Cp"
         .length();
      char var1 = '5';
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 4;
         String var10001 = var2.substring(++var7, var7 + var1);
         byte var10002 = -1;

         while (true) {
            String var8 = a(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     a = var5;
                     return;
                  }

                  var1 = var2.charAt(var7);
                  break;
               default:
                  var5[var3++] = var8;
                  if ((var7 += var1) < var4) {
                     var1 = var2.charAt(var7);
                     continue label24;
                  }

                  var2 = "nJ:;i\\ OA;czQ\"IE<7|KcZB+&k\u0019\"\u001bU*,m\\'\u001bR>/l\\c\u0013A'3|Z7^@ecjI\"XAp0|I\"IE+,k\u0016&U@r,\u007f\u00141^G01}\u0015cZG+6xUy\u001b\u0019rJ<,tI/^P:c|W'\u0016K9nk\\ TV;m";
                  var4 = "nJ:;i\\ OA;czQ\"IE<7|KcZB+&k\u0019\"\u001bU*,m\\'\u001bR>/l\\c\u0013A'3|Z7^@ecjI\"XAp0|I\"IE+,k\u0016&U@r,\u007f\u00141^G01}\u0015cZG+6xUy\u001b\u0019rJ<,tI/^P:c|W'\u0016K9nk\\ TV;m"
                     .length();
                  var1 = '\\';
                  var7 = -1;
            }

            var10000 = 97;
            var10001 = var2.substring(++var7, var7 + var1);
            var10002 = 0;
         }
      }
   }

   private static char[] a(String var0) {
      char[] var10000 = var0.toCharArray();
      if (var10000.length < 2) {
         var10000[0] = (char)(var10000[0] ^ 34);
      }

      return var10000;
   }

   private static String a(int var0, char[] var1) {
      int var10003 = var1.length;
      int var10002 = var0;
      char[] var10001 = var1;
      int var10000 = var10003;

      for (int var2 = 0; var10000 > var2; var2++) {
         var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
            case 0 -> 90;
            case 1 -> 69;
            case 2 -> 62;
            case 3 -> 34;
            case 4 -> 120;
            case 5 -> 88;
            default -> 34;
         });
      }

      return new String(var10001).intern();
   }

   private enum ParsingState {
      BEFORE_VALUE,
      AFTER_VALUE,
      UNQUOTED_VALUE,
      QUOTED_VALUE,
      END_OF_RECORD;

      // $VF: Failed to inline enum fields
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      static {
         String[] var0 = new String[5];
         int var4 = 0;
         String var3 = "[.\u0019B(\u001e2O*\u0013X?\r\\%\u001bR5\u001d2K.\u001cB(\u001f\u000bX-\u000bH(\u0004;X'\nH";
         int var5 = "[.\u0019B(\u001e2O*\u0013X?\r\\%\u001bR5\u001d2K.\u001cB(\u001f\u000bX-\u000bH(\u0004;X'\nH".length();
         char var2 = '\f';
         int var7 = -1;

         label25:
         while (true) {
            byte var10000 = 36;
            String var10001 = var3.substring(++var7, var7 + var2);
            byte var10002 = -1;

            while (true) {
               String var8 = a(var10000, a(var10001));
               switch (var10002) {
                  case 0:
                     var0[var4++] = var8;
                     if ((var7 += var2) >= var5) {
                        BEFORE_VALUE = new CSVReader.ParsingState();
                        AFTER_VALUE = new CSVReader.ParsingState();
                        UNQUOTED_VALUE = new CSVReader.ParsingState();
                        QUOTED_VALUE = new CSVReader.ParsingState();
                        END_OF_RECORD = new CSVReader.ParsingState();
                        return;
                     }

                     var2 = var3.charAt(var7);
                     break;
                  default:
                     var0[var4++] = var8;
                     if ((var7 += var2) < var5) {
                        var2 = var3.charAt(var7);
                        continue label25;
                     }

                     var3 = "u\u0003-d\u0002\"\u000fr\u0017.e\u0002\u000eq\u00183e\b2\u0015`\t4q\u000b3\u0015";
                     var5 = "u\u0003-d\u0002\"\u000fr\u0017.e\u0002\u000eq\u00183e\b2\u0015`\t4q\u000b3\u0015".length();
                     var2 = '\f';
                     var7 = -1;
               }

               var10000 = 25;
               var10001 = var3.substring(++var7, var7 + var2);
               var10002 = 0;
            }
         }
      }

      private static char[] a(String var0) {
         char[] var10000 = var0.toCharArray();
         if (var10000.length < 2) {
            var10000[0] = (char)(var10000[0] ^ 73);
         }

         return var10000;
      }

      private static String a(int var0, char[] var1) {
         int var10003 = var1.length;
         int var10002 = var0;
         char[] var10001 = var1;
         int var10000 = var10003;

         for (int var2 = 0; var10000 > var2; var2++) {
            var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
               case 0 -> 61;
               case 1 -> 79;
               case 2 -> 123;
               case 3 -> 41;
               case 4 -> 94;
               case 5 -> 127;
               default -> 73;
            });
         }

         return new String(var10001).intern();
      }
   }
}
