public final class freemarker.core._JavaVersions
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: freemarker.core._JavaVersions
  super_class: java.lang.Object
{
  private static final boolean IS_AT_LEAST_6;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final freemarker.core._Java6 JAVA_6;
    descriptor: Lfreemarker/core/_Java6;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static final boolean IS_AT_LEAST_8;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final freemarker.core._Java8 JAVA_8;
    descriptor: Lfreemarker/core/_Java8;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=0
         0: .line 36
            iconst_0
            istore 0 /* result */
        start local 0 // boolean result
         1: .line 37
            ldc "java.version"
            aconst_null
            invokestatic freemarker.template.utility.SecurityUtilities.getSystemProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* vStr */
        start local 1 // java.lang.String vStr
         2: .line 38
            aload 1 /* vStr */
            ifnull 10
         3: .line 40
            new freemarker.template.Version
            dup
            aload 1 /* vStr */
            invokespecial freemarker.template.Version.<init>:(Ljava/lang/String;)V
            astore 2 /* v */
        start local 2 // freemarker.template.Version v
         4: .line 41
            aload 2 /* v */
            invokevirtual freemarker.template.Version.getMajor:()I
            iconst_1
            if_icmpne 5
            aload 2 /* v */
            invokevirtual freemarker.template.Version.getMinor:()I
            bipush 6
            if_icmpge 6
      StackMap locals: int java.lang.String freemarker.template.Version
      StackMap stack:
         5: aload 2 /* v */
            invokevirtual freemarker.template.Version.getMajor:()I
            iconst_1
            if_icmpgt 6
            iconst_0
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: istore 0 /* result */
        end local 2 // freemarker.template.Version v
         8: .line 42
            goto 10
      StackMap locals: int java.lang.String
      StackMap stack: java.lang.Exception
         9: pop
        10: .line 46
      StackMap locals:
      StackMap stack:
            aload 1 /* vStr */
            ifnonnull 15
        11: .line 48
            ldc "java.util.ServiceLoader"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            pop
        12: .line 49
            iconst_1
            istore 0 /* result */
        13: .line 50
            goto 15
      StackMap locals:
      StackMap stack: java.lang.Exception
        14: pop
        15: .line 54
      StackMap locals:
      StackMap stack:
            iload 0 /* result */
            putstatic freemarker.core._JavaVersions.IS_AT_LEAST_6:Z
        end local 1 // java.lang.String vStr
        end local 0 // boolean result
        16: .line 60
            getstatic freemarker.core._JavaVersions.IS_AT_LEAST_6:Z
            ifeq 25
        17: .line 62
            ldc "freemarker.core._Java6Impl"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            ldc "INSTANCE"
            invokevirtual java.lang.Class.getField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            aconst_null
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast freemarker.core._Java6
            astore 0 /* java6 */
        start local 0 // freemarker.core._Java6 java6
        18: .line 63
            goto 26
        end local 0 // freemarker.core._Java6 java6
      StackMap locals:
      StackMap stack: java.lang.Exception
        19: astore 1 /* e */
        start local 1 // java.lang.Exception e
        20: .line 65
            ldc "freemarker.runtime"
            invokestatic freemarker.log.Logger.getLogger:(Ljava/lang/String;)Lfreemarker/log/Logger;
            ldc "Failed to access Java 6 functionality"
            aload 1 /* e */
            invokevirtual freemarker.log.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
        21: .line 66
            goto 23
      StackMap locals: top java.lang.Exception
      StackMap stack: java.lang.Exception
        22: pop
        23: .line 69
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 0 /* java6 */
        end local 1 // java.lang.Exception e
        start local 0 // freemarker.core._Java6 java6
        24: .line 71
            goto 26
        end local 0 // freemarker.core._Java6 java6
        25: .line 72
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 0 /* java6 */
        start local 0 // freemarker.core._Java6 java6
        26: .line 74
      StackMap locals: freemarker.core._Java6
      StackMap stack:
            aload 0 /* java6 */
            putstatic freemarker.core._JavaVersions.JAVA_6:Lfreemarker/core/_Java6;
        end local 0 // freemarker.core._Java6 java6
        27: .line 79
            iconst_0
            istore 0 /* result */
        start local 0 // boolean result
        28: .line 80
            ldc "java.version"
            aconst_null
            invokestatic freemarker.template.utility.SecurityUtilities.getSystemProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* vStr */
        start local 1 // java.lang.String vStr
        29: .line 81
            aload 1 /* vStr */
            ifnull 38
        30: .line 83
            new freemarker.template.Version
            dup
            aload 1 /* vStr */
            invokespecial freemarker.template.Version.<init>:(Ljava/lang/String;)V
            astore 2 /* v */
        start local 2 // freemarker.template.Version v
        31: .line 84
            aload 2 /* v */
            invokevirtual freemarker.template.Version.getMajor:()I
            iconst_1
            if_icmpne 32
            aload 2 /* v */
            invokevirtual freemarker.template.Version.getMinor:()I
            bipush 8
            if_icmpge 33
      StackMap locals: int java.lang.String freemarker.template.Version
      StackMap stack:
        32: aload 2 /* v */
            invokevirtual freemarker.template.Version.getMajor:()I
            iconst_1
            if_icmpgt 33
            iconst_0
            goto 34
      StackMap locals:
      StackMap stack:
        33: iconst_1
      StackMap locals:
      StackMap stack: int
        34: istore 0 /* result */
        end local 2 // freemarker.template.Version v
        35: .line 85
            goto 42
      StackMap locals: int java.lang.String
      StackMap stack: java.lang.Exception
        36: pop
        37: .line 88
            goto 42
        38: .line 90
      StackMap locals:
      StackMap stack:
            ldc "java.time.Instant"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            pop
        39: .line 91
            iconst_1
            istore 0 /* result */
        40: .line 92
            goto 42
      StackMap locals:
      StackMap stack: java.lang.Exception
        41: pop
        42: .line 96
      StackMap locals:
      StackMap stack:
            iload 0 /* result */
            putstatic freemarker.core._JavaVersions.IS_AT_LEAST_8:Z
        end local 1 // java.lang.String vStr
        end local 0 // boolean result
        43: .line 105
            getstatic freemarker.core._JavaVersions.IS_AT_LEAST_8:Z
            ifeq 52
        44: .line 107
            ldc "freemarker.core._Java8Impl"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            ldc "INSTANCE"
            invokevirtual java.lang.Class.getField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            aconst_null
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast freemarker.core._Java8
            astore 0 /* java8 */
        start local 0 // freemarker.core._Java8 java8
        45: .line 108
            goto 53
        end local 0 // freemarker.core._Java8 java8
      StackMap locals:
      StackMap stack: java.lang.Exception
        46: astore 1 /* e */
        start local 1 // java.lang.Exception e
        47: .line 110
            ldc "freemarker.runtime"
            invokestatic freemarker.log.Logger.getLogger:(Ljava/lang/String;)Lfreemarker/log/Logger;
            ldc "Failed to access Java 8 functionality"
            aload 1 /* e */
            invokevirtual freemarker.log.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
        48: .line 111
            goto 50
      StackMap locals: top java.lang.Exception
      StackMap stack: java.lang.Exception
        49: pop
        50: .line 114
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 0 /* java8 */
        end local 1 // java.lang.Exception e
        start local 0 // freemarker.core._Java8 java8
        51: .line 116
            goto 53
        end local 0 // freemarker.core._Java8 java8
        52: .line 117
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 0 /* java8 */
        start local 0 // freemarker.core._Java8 java8
        53: .line 119
      StackMap locals: freemarker.core._Java8
      StackMap stack:
            aload 0 /* java8 */
            putstatic freemarker.core._JavaVersions.JAVA_8:Lfreemarker/core/_Java8;
        end local 0 // freemarker.core._Java8 java8
        54: .line 120
            return
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            1   16     0  result  Z
            2   16     1    vStr  Ljava/lang/String;
            4    8     2       v  Lfreemarker/template/Version;
           18   19     0   java6  Lfreemarker/core/_Java6;
           24   25     0   java6  Lfreemarker/core/_Java6;
           26   27     0   java6  Lfreemarker/core/_Java6;
           20   24     1       e  Ljava/lang/Exception;
           28   43     0  result  Z
           29   43     1    vStr  Ljava/lang/String;
           31   35     2       v  Lfreemarker/template/Version;
           45   46     0   java8  Lfreemarker/core/_Java8;
           51   52     0   java8  Lfreemarker/core/_Java8;
           53   54     0   java8  Lfreemarker/core/_Java8;
           47   51     1       e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           3     8       9  Class java.lang.Exception
          11    13      14  Class java.lang.Exception
          17    18      19  Class java.lang.Exception
          20    21      22  Class java.lang.Exception
          30    35      36  Class java.lang.Exception
          38    40      41  Class java.lang.Exception
          44    45      46  Class java.lang.Exception
          47    48      49  Class java.lang.Exception

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // freemarker.core._JavaVersions this
         0: .line 30
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 32
            return
        end local 0 // freemarker.core._JavaVersions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lfreemarker/core/_JavaVersions;
}
SourceFile: "_JavaVersions.java"