public class net.bytebuddy.dynamic.ClassFileLocator$ForJarFile implements net.bytebuddy.dynamic.ClassFileLocator
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: net.bytebuddy.dynamic.ClassFileLocator$ForJarFile
  super_class: java.lang.Object
{
  private static final java.util.List<java.lang.String> RUNTIME_LOCATIONS;
    descriptor: Ljava/util/List;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/List<Ljava/lang/String;>;

  private final java.util.jar.JarFile jarFile;
    descriptor: Ljava/util/jar/JarFile;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 743
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
            ldc "lib/rt.jar"
            aastore
            dup
            iconst_1
            ldc "../lib/rt.jar"
            aastore
            dup
            iconst_2
            ldc "../Classes/classes.jar"
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            putstatic net.bytebuddy.dynamic.ClassFileLocator$ForJarFile.RUNTIME_LOCATIONS:Ljava/util/List;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.util.jar.JarFile);
    descriptor: (Ljava/util/jar/JarFile;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // net.bytebuddy.dynamic.ClassFileLocator$ForJarFile this
        start local 1 // java.util.jar.JarFile jarFile
         0: .line 755
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 756
            aload 0 /* this */
            aload 1 /* jarFile */
            putfield net.bytebuddy.dynamic.ClassFileLocator$ForJarFile.jarFile:Ljava/util/jar/JarFile;
         2: .line 757
            return
        end local 1 // java.util.jar.JarFile jarFile
        end local 0 // net.bytebuddy.dynamic.ClassFileLocator$ForJarFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lnet/bytebuddy/dynamic/ClassFileLocator$ForJarFile;
            0    3     1  jarFile  Ljava/util/jar/JarFile;
    MethodParameters:
         Name  Flags
      jarFile  

  public static net.bytebuddy.dynamic.ClassFileLocator of(java.io.File);
    descriptor: (Ljava/io/File;)Lnet/bytebuddy/dynamic/ClassFileLocator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.io.File file
         0: .line 767
            new net.bytebuddy.dynamic.ClassFileLocator$ForJarFile
            dup
            new java.util.jar.JarFile
            dup
            aload 0 /* file */
            invokespecial java.util.jar.JarFile.<init>:(Ljava/io/File;)V
            invokespecial net.bytebuddy.dynamic.ClassFileLocator$ForJarFile.<init>:(Ljava/util/jar/JarFile;)V
            areturn
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  file  Ljava/io/File;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      file  

  public static net.bytebuddy.dynamic.ClassFileLocator ofClassPath();
    descriptor: ()Lnet/bytebuddy/dynamic/ClassFileLocator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 778
            ldc "java.class.path"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic net.bytebuddy.dynamic.ClassFileLocator$ForJarFile.ofClassPath:(Ljava/lang/String;)Lnet/bytebuddy/dynamic/ClassFileLocator;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.io.IOException

  public static net.bytebuddy.dynamic.ClassFileLocator ofClassPath(java.lang.String);
    descriptor: (Ljava/lang/String;)Lnet/bytebuddy/dynamic/ClassFileLocator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // java.lang.String classPath
         0: .line 794
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* classFileLocators */
        start local 1 // java.util.List classFileLocators
         1: .line 795
            ldc "path.separator"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            bipush 16
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;I)Ljava/util/regex/Pattern;
            aload 0 /* classPath */
            invokevirtual java.util.regex.Pattern.split:(Ljava/lang/CharSequence;)[Ljava/lang/String;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 10
      StackMap locals: java.lang.String java.util.List top int int java.lang.String[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* element */
        start local 2 // java.lang.String element
         3: .line 796
            new java.io.File
            dup
            aload 2 /* element */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 6 /* file */
        start local 6 // java.io.File file
         4: .line 797
            aload 6 /* file */
            invokevirtual java.io.File.isDirectory:()Z
            ifeq 7
         5: .line 798
            aload 1 /* classFileLocators */
            new net.bytebuddy.dynamic.ClassFileLocator$ForFolder
            dup
            aload 6 /* file */
            invokespecial net.bytebuddy.dynamic.ClassFileLocator$ForFolder.<init>:(Ljava/io/File;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 799
            goto 9
      StackMap locals: java.lang.String java.util.List java.lang.String int int java.lang.String[] java.io.File
      StackMap stack:
         7: aload 6 /* file */
            invokevirtual java.io.File.isFile:()Z
            ifeq 9
         8: .line 800
            aload 1 /* classFileLocators */
            aload 6 /* file */
            invokestatic net.bytebuddy.dynamic.ClassFileLocator$ForJarFile.of:(Ljava/io/File;)Lnet/bytebuddy/dynamic/ClassFileLocator;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.io.File file
        end local 2 // java.lang.String element
         9: .line 795
      StackMap locals: java.lang.String java.util.List top int int java.lang.String[]
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
        10: iload 3
            iload 4
            if_icmplt 2
        11: .line 803
            new net.bytebuddy.dynamic.ClassFileLocator$Compound
            dup
            aload 1 /* classFileLocators */
            invokespecial net.bytebuddy.dynamic.ClassFileLocator$Compound.<init>:(Ljava/util/List;)V
            areturn
        end local 1 // java.util.List classFileLocators
        end local 0 // java.lang.String classPath
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   12     0          classPath  Ljava/lang/String;
            1   12     1  classFileLocators  Ljava/util/List<Lnet/bytebuddy/dynamic/ClassFileLocator;>;
            3    9     2            element  Ljava/lang/String;
            4    9     6               file  Ljava/io/File;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      classPath  

  public static net.bytebuddy.dynamic.ClassFileLocator ofRuntimeJar();
    descriptor: ()Lnet/bytebuddy/dynamic/ClassFileLocator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=0
         0: .line 813
            ldc "java.home"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            bipush 92
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 0 /* javaHome */
        start local 0 // java.lang.String javaHome
         1: .line 814
            aconst_null
            astore 1 /* runtimeJar */
        start local 1 // java.io.File runtimeJar
         2: .line 815
            getstatic net.bytebuddy.dynamic.ClassFileLocator$ForJarFile.RUNTIME_LOCATIONS:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 8
      StackMap locals: java.lang.String java.io.File top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* location */
        start local 2 // java.lang.String location
         4: .line 816
            new java.io.File
            dup
            aload 0 /* javaHome */
            aload 2 /* location */
            invokespecial java.io.File.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 4 /* candidate */
        start local 4 // java.io.File candidate
         5: .line 817
            aload 4 /* candidate */
            invokevirtual java.io.File.isFile:()Z
            ifeq 8
         6: .line 818
            aload 4 /* candidate */
            astore 1 /* runtimeJar */
         7: .line 819
            goto 9
        end local 4 // java.io.File candidate
        end local 2 // java.lang.String location
         8: .line 815
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         9: .line 822
      StackMap locals: java.lang.String java.io.File
      StackMap stack:
            aload 1 /* runtimeJar */
            ifnonnull 11
        10: .line 823
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Runtime jar does not exist in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* javaHome */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " for any of "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic net.bytebuddy.dynamic.ClassFileLocator$ForJarFile.RUNTIME_LOCATIONS:Ljava/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 825
      StackMap locals:
      StackMap stack:
            aload 1 /* runtimeJar */
            invokestatic net.bytebuddy.dynamic.ClassFileLocator$ForJarFile.of:(Ljava/io/File;)Lnet/bytebuddy/dynamic/ClassFileLocator;
            areturn
        end local 1 // java.io.File runtimeJar
        end local 0 // java.lang.String javaHome
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            1   12     0    javaHome  Ljava/lang/String;
            2   12     1  runtimeJar  Ljava/io/File;
            4    8     2    location  Ljava/lang/String;
            5    8     4   candidate  Ljava/io/File;
    Exceptions:
      throws java.io.IOException

  public net.bytebuddy.dynamic.ClassFileLocator$Resolution locate(java.lang.String);
    descriptor: (Ljava/lang/String;)Lnet/bytebuddy/dynamic/ClassFileLocator$Resolution;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // net.bytebuddy.dynamic.ClassFileLocator$ForJarFile this
        start local 1 // java.lang.String name
         0: .line 832
            aload 0 /* this */
            getfield net.bytebuddy.dynamic.ClassFileLocator$ForJarFile.jarFile:Ljava/util/jar/JarFile;
            new java.lang.StringBuilder
            dup
            aload 1 /* name */
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.jar.JarFile.getEntry:(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
            astore 2 /* zipEntry */
        start local 2 // java.util.zip.ZipEntry zipEntry
         1: .line 833
            aload 2 /* zipEntry */
            ifnonnull 3
         2: .line 834
            new net.bytebuddy.dynamic.ClassFileLocator$Resolution$Illegal
            dup
            aload 1 /* name */
            invokespecial net.bytebuddy.dynamic.ClassFileLocator$Resolution$Illegal.<init>:(Ljava/lang/String;)V
            areturn
         3: .line 836
      StackMap locals: java.util.zip.ZipEntry
      StackMap stack:
            aload 0 /* this */
            getfield net.bytebuddy.dynamic.ClassFileLocator$ForJarFile.jarFile:Ljava/util/jar/JarFile;
            aload 2 /* zipEntry */
            invokevirtual java.util.jar.JarFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
            astore 3 /* inputStream */
        start local 3 // java.io.InputStream inputStream
         4: .line 838
            new net.bytebuddy.dynamic.ClassFileLocator$Resolution$Explicit
            dup
            getstatic net.bytebuddy.utility.StreamDrainer.DEFAULT:Lnet/bytebuddy/utility/StreamDrainer;
            aload 3 /* inputStream */
            invokevirtual net.bytebuddy.utility.StreamDrainer.drain:(Ljava/io/InputStream;)[B
            invokespecial net.bytebuddy.dynamic.ClassFileLocator$Resolution$Explicit.<init>:([B)V
            astore 5
         5: .line 840
            aload 3 /* inputStream */
            invokevirtual java.io.InputStream.close:()V
         6: .line 838
            aload 5
            areturn
         7: .line 839
      StackMap locals: net.bytebuddy.dynamic.ClassFileLocator$ForJarFile java.lang.String java.util.zip.ZipEntry java.io.InputStream
      StackMap stack: java.lang.Throwable
            astore 4
         8: .line 840
            aload 3 /* inputStream */
            invokevirtual java.io.InputStream.close:()V
         9: .line 841
            aload 4
            athrow
        end local 3 // java.io.InputStream inputStream
        end local 2 // java.util.zip.ZipEntry zipEntry
        end local 1 // java.lang.String name
        end local 0 // net.bytebuddy.dynamic.ClassFileLocator$ForJarFile this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lnet/bytebuddy/dynamic/ClassFileLocator$ForJarFile;
            0   10     1         name  Ljava/lang/String;
            1   10     2     zipEntry  Ljava/util/zip/ZipEntry;
            4   10     3  inputStream  Ljava/io/InputStream;
      Exception table:
        from    to  target  type
           4     5       7  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      name  

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // net.bytebuddy.dynamic.ClassFileLocator$ForJarFile this
         0: .line 849
            aload 0 /* this */
            getfield net.bytebuddy.dynamic.ClassFileLocator$ForJarFile.jarFile:Ljava/util/jar/JarFile;
            invokevirtual java.util.jar.JarFile.close:()V
         1: .line 850
            return
        end local 0 // net.bytebuddy.dynamic.ClassFileLocator$ForJarFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lnet/bytebuddy/dynamic/ClassFileLocator$ForJarFile;
    Exceptions:
      throws java.io.IOException
}
SourceFile: "ClassFileLocator.java"
NestHost: net.bytebuddy.dynamic.ClassFileLocator
InnerClasses:
  public abstract Enhance = net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance of net.bytebuddy.build.HashCodeAndEqualsPlugin
  public Compound = net.bytebuddy.dynamic.ClassFileLocator$Compound of net.bytebuddy.dynamic.ClassFileLocator
  public ForFolder = net.bytebuddy.dynamic.ClassFileLocator$ForFolder of net.bytebuddy.dynamic.ClassFileLocator
  public ForJarFile = net.bytebuddy.dynamic.ClassFileLocator$ForJarFile of net.bytebuddy.dynamic.ClassFileLocator
  public abstract Resolution = net.bytebuddy.dynamic.ClassFileLocator$Resolution of net.bytebuddy.dynamic.ClassFileLocator
  public Explicit = net.bytebuddy.dynamic.ClassFileLocator$Resolution$Explicit of net.bytebuddy.dynamic.ClassFileLocator$Resolution
  public Illegal = net.bytebuddy.dynamic.ClassFileLocator$Resolution$Illegal of net.bytebuddy.dynamic.ClassFileLocator$Resolution
    RuntimeVisibleAnnotations: 
      net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance()