public class ch.qos.logback.classic.spi.PackagingDataCalculator
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: ch.qos.logback.classic.spi.PackagingDataCalculator
  super_class: java.lang.Object
{
  static final ch.qos.logback.classic.spi.StackTraceElementProxy[] STEP_ARRAY_TEMPLATE;
    descriptor: [Lch/qos/logback/classic/spi/StackTraceElementProxy;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  java.util.HashMap<java.lang.String, ch.qos.logback.classic.spi.ClassPackagingData> cache;
    descriptor: Ljava/util/HashMap;
    flags: (0x0000) 
    Signature: Ljava/util/HashMap<Ljava/lang/String;Lch/qos/logback/classic/spi/ClassPackagingData;>;

  private static boolean GET_CALLER_CLASS_METHOD_AVAILABLE;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 31
            iconst_0
            anewarray ch.qos.logback.classic.spi.StackTraceElementProxy
            putstatic ch.qos.logback.classic.spi.PackagingDataCalculator.STEP_ARRAY_TEMPLATE:[Lch/qos/logback/classic/spi/StackTraceElementProxy;
         1: .line 35
            iconst_0
            putstatic ch.qos.logback.classic.spi.PackagingDataCalculator.GET_CALLER_CLASS_METHOD_AVAILABLE:Z
         2: .line 45
            iconst_2
            invokestatic sun.reflect.Reflection.getCallerClass:(I)Ljava/lang/Class;
            pop
         3: .line 46
            iconst_1
            putstatic ch.qos.logback.classic.spi.PackagingDataCalculator.GET_CALLER_CLASS_METHOD_AVAILABLE:Z
         4: .line 47
            goto 11
      StackMap locals:
      StackMap stack: java.lang.NoClassDefFoundError
         5: pop
            goto 11
         6: .line 48
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodError
            pop
            goto 11
         7: .line 49
      StackMap locals:
      StackMap stack: java.lang.UnsupportedOperationException
            pop
            goto 11
         8: .line 50
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 0 /* e */
        start local 0 // java.lang.Throwable e
         9: .line 51
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "Unexpected exception"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        10: .line 52
            aload 0 /* e */
            invokevirtual java.lang.Throwable.printStackTrace:()V
        end local 0 // java.lang.Throwable e
        11: .line 54
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            9   11     0     e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2     4       5  Class java.lang.NoClassDefFoundError
           2     4       6  Class java.lang.NoSuchMethodError
           2     4       7  Class java.lang.UnsupportedOperationException
           2     4       8  Class java.lang.Throwable

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // ch.qos.logback.classic.spi.PackagingDataCalculator this
         0: .line 29
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 33
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield ch.qos.logback.classic.spi.PackagingDataCalculator.cache:Ljava/util/HashMap;
         2: .line 29
            return
        end local 0 // ch.qos.logback.classic.spi.PackagingDataCalculator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lch/qos/logback/classic/spi/PackagingDataCalculator;

  public void calculate(ch.qos.logback.classic.spi.IThrowableProxy);
    descriptor: (Lch/qos/logback/classic/spi/IThrowableProxy;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // ch.qos.logback.classic.spi.PackagingDataCalculator this
        start local 1 // ch.qos.logback.classic.spi.IThrowableProxy tp
         0: .line 57
            goto 10
         1: .line 58
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* tp */
            invokeinterface ch.qos.logback.classic.spi.IThrowableProxy.getStackTraceElementProxyArray:()[Lch/qos/logback/classic/spi/StackTraceElementProxy;
            invokevirtual ch.qos.logback.classic.spi.PackagingDataCalculator.populateFrames:([Lch/qos/logback/classic/spi/StackTraceElementProxy;)V
         2: .line 59
            aload 1 /* tp */
            invokeinterface ch.qos.logback.classic.spi.IThrowableProxy.getSuppressed:()[Lch/qos/logback/classic/spi/IThrowableProxy;
            astore 2 /* suppressed */
        start local 2 // ch.qos.logback.classic.spi.IThrowableProxy[] suppressed
         3: .line 60
            aload 2 /* suppressed */
            ifnull 9
         4: .line 61
            aload 2 /* suppressed */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 8
      StackMap locals: ch.qos.logback.classic.spi.PackagingDataCalculator ch.qos.logback.classic.spi.IThrowableProxy ch.qos.logback.classic.spi.IThrowableProxy[] top int int ch.qos.logback.classic.spi.IThrowableProxy[]
      StackMap stack:
         5: aload 6
            iload 4
            aaload
            astore 3 /* current */
        start local 3 // ch.qos.logback.classic.spi.IThrowableProxy current
         6: .line 62
            aload 0 /* this */
            aload 3 /* current */
            invokeinterface ch.qos.logback.classic.spi.IThrowableProxy.getStackTraceElementProxyArray:()[Lch/qos/logback/classic/spi/StackTraceElementProxy;
            invokevirtual ch.qos.logback.classic.spi.PackagingDataCalculator.populateFrames:([Lch/qos/logback/classic/spi/StackTraceElementProxy;)V
        end local 3 // ch.qos.logback.classic.spi.IThrowableProxy current
         7: .line 61
            iinc 4 1
      StackMap locals:
      StackMap stack:
         8: iload 4
            iload 5
            if_icmplt 5
         9: .line 65
      StackMap locals: ch.qos.logback.classic.spi.PackagingDataCalculator ch.qos.logback.classic.spi.IThrowableProxy ch.qos.logback.classic.spi.IThrowableProxy[]
      StackMap stack:
            aload 1 /* tp */
            invokeinterface ch.qos.logback.classic.spi.IThrowableProxy.getCause:()Lch/qos/logback/classic/spi/IThrowableProxy;
            astore 1 /* tp */
        end local 2 // ch.qos.logback.classic.spi.IThrowableProxy[] suppressed
        10: .line 57
      StackMap locals:
      StackMap stack:
            aload 1 /* tp */
            ifnonnull 1
        11: .line 67
            return
        end local 1 // ch.qos.logback.classic.spi.IThrowableProxy tp
        end local 0 // ch.qos.logback.classic.spi.PackagingDataCalculator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lch/qos/logback/classic/spi/PackagingDataCalculator;
            0   12     1          tp  Lch/qos/logback/classic/spi/IThrowableProxy;
            3   10     2  suppressed  [Lch/qos/logback/classic/spi/IThrowableProxy;
            6    7     3     current  Lch/qos/logback/classic/spi/IThrowableProxy;
    MethodParameters:
      Name  Flags
      tp    

  void populateFrames(ch.qos.logback.classic.spi.StackTraceElementProxy[]);
    descriptor: ([Lch/qos/logback/classic/spi/StackTraceElementProxy;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=15, args_size=2
        start local 0 // ch.qos.logback.classic.spi.PackagingDataCalculator this
        start local 1 // ch.qos.logback.classic.spi.StackTraceElementProxy[] stepArray
         0: .line 72
            new java.lang.Throwable
            dup
            ldc "local stack reference"
            invokespecial java.lang.Throwable.<init>:(Ljava/lang/String;)V
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
         1: .line 73
            aload 2 /* t */
            invokevirtual java.lang.Throwable.getStackTrace:()[Ljava/lang/StackTraceElement;
            astore 3 /* localteSTEArray */
        start local 3 // java.lang.StackTraceElement[] localteSTEArray
         2: .line 74
            aload 3 /* localteSTEArray */
            aload 1 /* stepArray */
            invokestatic ch.qos.logback.classic.spi.STEUtil.findNumberOfCommonFrames:([Ljava/lang/StackTraceElement;[Lch/qos/logback/classic/spi/StackTraceElementProxy;)I
            istore 4 /* commonFrames */
        start local 4 // int commonFrames
         3: .line 75
            aload 3 /* localteSTEArray */
            arraylength
            iload 4 /* commonFrames */
            isub
            istore 5 /* localFirstCommon */
        start local 5 // int localFirstCommon
         4: .line 76
            aload 1 /* stepArray */
            arraylength
            iload 4 /* commonFrames */
            isub
            istore 6 /* stepFirstCommon */
        start local 6 // int stepFirstCommon
         5: .line 78
            aconst_null
            astore 7 /* lastExactClassLoader */
        start local 7 // java.lang.ClassLoader lastExactClassLoader
         6: .line 79
            aconst_null
            astore 8 /* firsExactClassLoader */
        start local 8 // java.lang.ClassLoader firsExactClassLoader
         7: .line 81
            iconst_0
            istore 9 /* missfireCount */
        start local 9 // int missfireCount
         8: .line 82
            iconst_0
            istore 10 /* i */
        start local 10 // int i
         9: goto 26
        10: .line 83
      StackMap locals: ch.qos.logback.classic.spi.PackagingDataCalculator ch.qos.logback.classic.spi.StackTraceElementProxy[] java.lang.Throwable java.lang.StackTraceElement[] int int int java.lang.ClassLoader java.lang.ClassLoader int int
      StackMap stack:
            aconst_null
            astore 11 /* callerClass */
        start local 11 // java.lang.Class callerClass
        11: .line 84
            getstatic ch.qos.logback.classic.spi.PackagingDataCalculator.GET_CALLER_CLASS_METHOD_AVAILABLE:Z
            ifeq 13
        12: .line 85
            iload 5 /* localFirstCommon */
            iload 10 /* i */
            iadd
            iload 9 /* missfireCount */
            isub
            iconst_1
            iadd
            invokestatic sun.reflect.Reflection.getCallerClass:(I)Ljava/lang/Class;
            astore 11 /* callerClass */
        13: .line 87
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 1 /* stepArray */
            iload 6 /* stepFirstCommon */
            iload 10 /* i */
            iadd
            aaload
            astore 12 /* step */
        start local 12 // ch.qos.logback.classic.spi.StackTraceElementProxy step
        14: .line 88
            aload 12 /* step */
            getfield ch.qos.logback.classic.spi.StackTraceElementProxy.ste:Ljava/lang/StackTraceElement;
            invokevirtual java.lang.StackTraceElement.getClassName:()Ljava/lang/String;
            astore 13 /* stepClassname */
        start local 13 // java.lang.String stepClassname
        15: .line 90
            aload 11 /* callerClass */
            ifnull 22
            aload 13 /* stepClassname */
            aload 11 /* callerClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 22
        16: .line 92
            aload 11 /* callerClass */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 7 /* lastExactClassLoader */
        17: .line 93
            aload 8 /* firsExactClassLoader */
            ifnonnull 19
        18: .line 94
            aload 7 /* lastExactClassLoader */
            astore 8 /* firsExactClassLoader */
        19: .line 96
      StackMap locals: ch.qos.logback.classic.spi.StackTraceElementProxy java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 11 /* callerClass */
            invokevirtual ch.qos.logback.classic.spi.PackagingDataCalculator.calculateByExactType:(Ljava/lang/Class;)Lch/qos/logback/classic/spi/ClassPackagingData;
            astore 14 /* pi */
        start local 14 // ch.qos.logback.classic.spi.ClassPackagingData pi
        20: .line 97
            aload 12 /* step */
            aload 14 /* pi */
            invokevirtual ch.qos.logback.classic.spi.StackTraceElementProxy.setClassPackagingData:(Lch/qos/logback/classic/spi/ClassPackagingData;)V
        end local 14 // ch.qos.logback.classic.spi.ClassPackagingData pi
        21: .line 98
            goto 25
        22: .line 99
      StackMap locals:
      StackMap stack:
            iinc 9 /* missfireCount */ 1
        23: .line 100
            aload 0 /* this */
            aload 12 /* step */
            aload 7 /* lastExactClassLoader */
            invokevirtual ch.qos.logback.classic.spi.PackagingDataCalculator.computeBySTEP:(Lch/qos/logback/classic/spi/StackTraceElementProxy;Ljava/lang/ClassLoader;)Lch/qos/logback/classic/spi/ClassPackagingData;
            astore 14 /* pi */
        start local 14 // ch.qos.logback.classic.spi.ClassPackagingData pi
        24: .line 101
            aload 12 /* step */
            aload 14 /* pi */
            invokevirtual ch.qos.logback.classic.spi.StackTraceElementProxy.setClassPackagingData:(Lch/qos/logback/classic/spi/ClassPackagingData;)V
        end local 14 // ch.qos.logback.classic.spi.ClassPackagingData pi
        end local 13 // java.lang.String stepClassname
        end local 12 // ch.qos.logback.classic.spi.StackTraceElementProxy step
        end local 11 // java.lang.Class callerClass
        25: .line 82
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 10 /* i */
            iload 4 /* commonFrames */
            if_icmplt 10
        end local 10 // int i
        27: .line 104
            aload 0 /* this */
            iload 4 /* commonFrames */
            aload 1 /* stepArray */
            aload 8 /* firsExactClassLoader */
            invokevirtual ch.qos.logback.classic.spi.PackagingDataCalculator.populateUncommonFrames:(I[Lch/qos/logback/classic/spi/StackTraceElementProxy;Ljava/lang/ClassLoader;)V
        28: .line 105
            return
        end local 9 // int missfireCount
        end local 8 // java.lang.ClassLoader firsExactClassLoader
        end local 7 // java.lang.ClassLoader lastExactClassLoader
        end local 6 // int stepFirstCommon
        end local 5 // int localFirstCommon
        end local 4 // int commonFrames
        end local 3 // java.lang.StackTraceElement[] localteSTEArray
        end local 2 // java.lang.Throwable t
        end local 1 // ch.qos.logback.classic.spi.StackTraceElementProxy[] stepArray
        end local 0 // ch.qos.logback.classic.spi.PackagingDataCalculator this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   29     0                  this  Lch/qos/logback/classic/spi/PackagingDataCalculator;
            0   29     1             stepArray  [Lch/qos/logback/classic/spi/StackTraceElementProxy;
            1   29     2                     t  Ljava/lang/Throwable;
            2   29     3       localteSTEArray  [Ljava/lang/StackTraceElement;
            3   29     4          commonFrames  I
            4   29     5      localFirstCommon  I
            5   29     6       stepFirstCommon  I
            6   29     7  lastExactClassLoader  Ljava/lang/ClassLoader;
            7   29     8  firsExactClassLoader  Ljava/lang/ClassLoader;
            8   29     9         missfireCount  I
            9   27    10                     i  I
           11   25    11           callerClass  Ljava/lang/Class;
           14   25    12                  step  Lch/qos/logback/classic/spi/StackTraceElementProxy;
           15   25    13         stepClassname  Ljava/lang/String;
           20   21    14                    pi  Lch/qos/logback/classic/spi/ClassPackagingData;
           24   25    14                    pi  Lch/qos/logback/classic/spi/ClassPackagingData;
    MethodParameters:
           Name  Flags
      stepArray  

  void populateUncommonFrames(int, ch.qos.logback.classic.spi.StackTraceElementProxy[], java.lang.ClassLoader);
    descriptor: (I[Lch/qos/logback/classic/spi/StackTraceElementProxy;Ljava/lang/ClassLoader;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=8, args_size=4
        start local 0 // ch.qos.logback.classic.spi.PackagingDataCalculator this
        start local 1 // int commonFrames
        start local 2 // ch.qos.logback.classic.spi.StackTraceElementProxy[] stepArray
        start local 3 // java.lang.ClassLoader firstExactClassLoader
         0: .line 108
            aload 2 /* stepArray */
            arraylength
            iload 1 /* commonFrames */
            isub
            istore 4 /* uncommonFrames */
        start local 4 // int uncommonFrames
         1: .line 109
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         2: goto 7
         3: .line 110
      StackMap locals: int int
      StackMap stack:
            aload 2 /* stepArray */
            iload 5 /* i */
            aaload
            astore 6 /* step */
        start local 6 // ch.qos.logback.classic.spi.StackTraceElementProxy step
         4: .line 111
            aload 0 /* this */
            aload 6 /* step */
            aload 3 /* firstExactClassLoader */
            invokevirtual ch.qos.logback.classic.spi.PackagingDataCalculator.computeBySTEP:(Lch/qos/logback/classic/spi/StackTraceElementProxy;Ljava/lang/ClassLoader;)Lch/qos/logback/classic/spi/ClassPackagingData;
            astore 7 /* pi */
        start local 7 // ch.qos.logback.classic.spi.ClassPackagingData pi
         5: .line 112
            aload 6 /* step */
            aload 7 /* pi */
            invokevirtual ch.qos.logback.classic.spi.StackTraceElementProxy.setClassPackagingData:(Lch/qos/logback/classic/spi/ClassPackagingData;)V
        end local 7 // ch.qos.logback.classic.spi.ClassPackagingData pi
        end local 6 // ch.qos.logback.classic.spi.StackTraceElementProxy step
         6: .line 109
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 5 /* i */
            iload 4 /* uncommonFrames */
            if_icmplt 3
        end local 5 // int i
         8: .line 114
            return
        end local 4 // int uncommonFrames
        end local 3 // java.lang.ClassLoader firstExactClassLoader
        end local 2 // ch.qos.logback.classic.spi.StackTraceElementProxy[] stepArray
        end local 1 // int commonFrames
        end local 0 // ch.qos.logback.classic.spi.PackagingDataCalculator this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    9     0                   this  Lch/qos/logback/classic/spi/PackagingDataCalculator;
            0    9     1           commonFrames  I
            0    9     2              stepArray  [Lch/qos/logback/classic/spi/StackTraceElementProxy;
            0    9     3  firstExactClassLoader  Ljava/lang/ClassLoader;
            1    9     4         uncommonFrames  I
            2    8     5                      i  I
            4    6     6                   step  Lch/qos/logback/classic/spi/StackTraceElementProxy;
            5    6     7                     pi  Lch/qos/logback/classic/spi/ClassPackagingData;
    MethodParameters:
                       Name  Flags
      commonFrames           
      stepArray              
      firstExactClassLoader  

  private ch.qos.logback.classic.spi.ClassPackagingData calculateByExactType(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Lch/qos/logback/classic/spi/ClassPackagingData;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // ch.qos.logback.classic.spi.PackagingDataCalculator this
        start local 1 // java.lang.Class type
         0: .line 117
            aload 1 /* type */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 2 /* className */
        start local 2 // java.lang.String className
         1: .line 118
            aload 0 /* this */
            getfield ch.qos.logback.classic.spi.PackagingDataCalculator.cache:Ljava/util/HashMap;
            aload 2 /* className */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast ch.qos.logback.classic.spi.ClassPackagingData
            astore 3 /* cpd */
        start local 3 // ch.qos.logback.classic.spi.ClassPackagingData cpd
         2: .line 119
            aload 3 /* cpd */
            ifnull 4
         3: .line 120
            aload 3 /* cpd */
            areturn
         4: .line 122
      StackMap locals: java.lang.String ch.qos.logback.classic.spi.ClassPackagingData
      StackMap stack:
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual ch.qos.logback.classic.spi.PackagingDataCalculator.getImplementationVersion:(Ljava/lang/Class;)Ljava/lang/String;
            astore 4 /* version */
        start local 4 // java.lang.String version
         5: .line 123
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual ch.qos.logback.classic.spi.PackagingDataCalculator.getCodeLocation:(Ljava/lang/Class;)Ljava/lang/String;
            astore 5 /* codeLocation */
        start local 5 // java.lang.String codeLocation
         6: .line 124
            new ch.qos.logback.classic.spi.ClassPackagingData
            dup
            aload 5 /* codeLocation */
            aload 4 /* version */
            invokespecial ch.qos.logback.classic.spi.ClassPackagingData.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 3 /* cpd */
         7: .line 125
            aload 0 /* this */
            getfield ch.qos.logback.classic.spi.PackagingDataCalculator.cache:Ljava/util/HashMap;
            aload 2 /* className */
            aload 3 /* cpd */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 126
            aload 3 /* cpd */
            areturn
        end local 5 // java.lang.String codeLocation
        end local 4 // java.lang.String version
        end local 3 // ch.qos.logback.classic.spi.ClassPackagingData cpd
        end local 2 // java.lang.String className
        end local 1 // java.lang.Class type
        end local 0 // ch.qos.logback.classic.spi.PackagingDataCalculator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Lch/qos/logback/classic/spi/PackagingDataCalculator;
            0    9     1          type  Ljava/lang/Class;
            1    9     2     className  Ljava/lang/String;
            2    9     3           cpd  Lch/qos/logback/classic/spi/ClassPackagingData;
            5    9     4       version  Ljava/lang/String;
            6    9     5  codeLocation  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      type  

  private ch.qos.logback.classic.spi.ClassPackagingData computeBySTEP(ch.qos.logback.classic.spi.StackTraceElementProxy, java.lang.ClassLoader);
    descriptor: (Lch/qos/logback/classic/spi/StackTraceElementProxy;Ljava/lang/ClassLoader;)Lch/qos/logback/classic/spi/ClassPackagingData;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // ch.qos.logback.classic.spi.PackagingDataCalculator this
        start local 1 // ch.qos.logback.classic.spi.StackTraceElementProxy step
        start local 2 // java.lang.ClassLoader lastExactClassLoader
         0: .line 130
            aload 1 /* step */
            getfield ch.qos.logback.classic.spi.StackTraceElementProxy.ste:Ljava/lang/StackTraceElement;
            invokevirtual java.lang.StackTraceElement.getClassName:()Ljava/lang/String;
            astore 3 /* className */
        start local 3 // java.lang.String className
         1: .line 131
            aload 0 /* this */
            getfield ch.qos.logback.classic.spi.PackagingDataCalculator.cache:Ljava/util/HashMap;
            aload 3 /* className */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast ch.qos.logback.classic.spi.ClassPackagingData
            astore 4 /* cpd */
        start local 4 // ch.qos.logback.classic.spi.ClassPackagingData cpd
         2: .line 132
            aload 4 /* cpd */
            ifnull 4
         3: .line 133
            aload 4 /* cpd */
            areturn
         4: .line 135
      StackMap locals: java.lang.String ch.qos.logback.classic.spi.ClassPackagingData
      StackMap stack:
            aload 0 /* this */
            aload 2 /* lastExactClassLoader */
            aload 3 /* className */
            invokevirtual ch.qos.logback.classic.spi.PackagingDataCalculator.bestEffortLoadClass:(Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/Class;
            astore 5 /* type */
        start local 5 // java.lang.Class type
         5: .line 136
            aload 0 /* this */
            aload 5 /* type */
            invokevirtual ch.qos.logback.classic.spi.PackagingDataCalculator.getImplementationVersion:(Ljava/lang/Class;)Ljava/lang/String;
            astore 6 /* version */
        start local 6 // java.lang.String version
         6: .line 137
            aload 0 /* this */
            aload 5 /* type */
            invokevirtual ch.qos.logback.classic.spi.PackagingDataCalculator.getCodeLocation:(Ljava/lang/Class;)Ljava/lang/String;
            astore 7 /* codeLocation */
        start local 7 // java.lang.String codeLocation
         7: .line 138
            new ch.qos.logback.classic.spi.ClassPackagingData
            dup
            aload 7 /* codeLocation */
            aload 6 /* version */
            iconst_0
            invokespecial ch.qos.logback.classic.spi.ClassPackagingData.<init>:(Ljava/lang/String;Ljava/lang/String;Z)V
            astore 4 /* cpd */
         8: .line 139
            aload 0 /* this */
            getfield ch.qos.logback.classic.spi.PackagingDataCalculator.cache:Ljava/util/HashMap;
            aload 3 /* className */
            aload 4 /* cpd */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 140
            aload 4 /* cpd */
            areturn
        end local 7 // java.lang.String codeLocation
        end local 6 // java.lang.String version
        end local 5 // java.lang.Class type
        end local 4 // ch.qos.logback.classic.spi.ClassPackagingData cpd
        end local 3 // java.lang.String className
        end local 2 // java.lang.ClassLoader lastExactClassLoader
        end local 1 // ch.qos.logback.classic.spi.StackTraceElementProxy step
        end local 0 // ch.qos.logback.classic.spi.PackagingDataCalculator this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   10     0                  this  Lch/qos/logback/classic/spi/PackagingDataCalculator;
            0   10     1                  step  Lch/qos/logback/classic/spi/StackTraceElementProxy;
            0   10     2  lastExactClassLoader  Ljava/lang/ClassLoader;
            1   10     3             className  Ljava/lang/String;
            2   10     4                   cpd  Lch/qos/logback/classic/spi/ClassPackagingData;
            5   10     5                  type  Ljava/lang/Class;
            6   10     6               version  Ljava/lang/String;
            7   10     7          codeLocation  Ljava/lang/String;
    MethodParameters:
                      Name  Flags
      step                  
      lastExactClassLoader  

  java.lang.String getImplementationVersion(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=1, locals=4, args_size=2
        start local 0 // ch.qos.logback.classic.spi.PackagingDataCalculator this
        start local 1 // java.lang.Class type
         0: .line 144
            aload 1 /* type */
            ifnonnull 2
         1: .line 145
            ldc "na"
            areturn
         2: .line 147
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            invokevirtual java.lang.Class.getPackage:()Ljava/lang/Package;
            astore 2 /* aPackage */
        start local 2 // java.lang.Package aPackage
         3: .line 148
            aload 2 /* aPackage */
            ifnull 8
         4: .line 149
            aload 2 /* aPackage */
            invokevirtual java.lang.Package.getImplementationVersion:()Ljava/lang/String;
            astore 3 /* v */
        start local 3 // java.lang.String v
         5: .line 150
            aload 3 /* v */
            ifnonnull 7
         6: .line 151
            ldc "na"
            areturn
         7: .line 153
      StackMap locals: java.lang.Package java.lang.String
      StackMap stack:
            aload 3 /* v */
            areturn
        end local 3 // java.lang.String v
         8: .line 156
      StackMap locals:
      StackMap stack:
            ldc "na"
            areturn
        end local 2 // java.lang.Package aPackage
        end local 1 // java.lang.Class type
        end local 0 // ch.qos.logback.classic.spi.PackagingDataCalculator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lch/qos/logback/classic/spi/PackagingDataCalculator;
            0    9     1      type  Ljava/lang/Class;
            3    9     2  aPackage  Ljava/lang/Package;
            5    8     3         v  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      type  

  java.lang.String getCodeLocation(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // ch.qos.logback.classic.spi.PackagingDataCalculator this
        start local 1 // java.lang.Class type
         0: .line 162
            aload 1 /* type */
            ifnull 13
         1: .line 164
            aload 1 /* type */
            invokevirtual java.lang.Class.getProtectionDomain:()Ljava/security/ProtectionDomain;
            invokevirtual java.security.ProtectionDomain.getCodeSource:()Ljava/security/CodeSource;
            astore 2 /* codeSource */
        start local 2 // java.security.CodeSource codeSource
         2: .line 165
            aload 2 /* codeSource */
            ifnull 13
         3: .line 166
            aload 2 /* codeSource */
            invokevirtual java.security.CodeSource.getLocation:()Ljava/net/URL;
            astore 3 /* resource */
        start local 3 // java.net.URL resource
         4: .line 167
            aload 3 /* resource */
            ifnull 13
         5: .line 168
            aload 3 /* resource */
            invokevirtual java.net.URL.toString:()Ljava/lang/String;
            astore 4 /* locationStr */
        start local 4 // java.lang.String locationStr
         6: .line 170
            aload 0 /* this */
            aload 4 /* locationStr */
            bipush 47
            invokevirtual ch.qos.logback.classic.spi.PackagingDataCalculator.getCodeLocation:(Ljava/lang/String;C)Ljava/lang/String;
            astore 5 /* result */
        start local 5 // java.lang.String result
         7: .line 171
            aload 5 /* result */
            ifnull 10
         8: .line 172
            aload 5 /* result */
         9: areturn
        10: .line 174
      StackMap locals: ch.qos.logback.classic.spi.PackagingDataCalculator java.lang.Class java.security.CodeSource java.net.URL java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 4 /* locationStr */
            bipush 92
            invokevirtual ch.qos.logback.classic.spi.PackagingDataCalculator.getCodeLocation:(Ljava/lang/String;C)Ljava/lang/String;
        11: areturn
        end local 5 // java.lang.String result
        end local 4 // java.lang.String locationStr
        end local 3 // java.net.URL resource
        end local 2 // java.security.CodeSource codeSource
        12: .line 178
      StackMap locals: ch.qos.logback.classic.spi.PackagingDataCalculator java.lang.Class
      StackMap stack: java.lang.Exception
            pop
        13: .line 181
      StackMap locals:
      StackMap stack:
            ldc "na"
            areturn
        end local 1 // java.lang.Class type
        end local 0 // ch.qos.logback.classic.spi.PackagingDataCalculator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0         this  Lch/qos/logback/classic/spi/PackagingDataCalculator;
            0   14     1         type  Ljava/lang/Class;
            2   12     2   codeSource  Ljava/security/CodeSource;
            4   12     3     resource  Ljava/net/URL;
            6   12     4  locationStr  Ljava/lang/String;
            7   12     5       result  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     9      12  Class java.lang.Exception
          10    11      12  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      type  

  private java.lang.String getCodeLocation(java.lang.String, char);
    descriptor: (Ljava/lang/String;C)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // ch.qos.logback.classic.spi.PackagingDataCalculator this
        start local 1 // java.lang.String locationStr
        start local 2 // char separator
         0: .line 185
            aload 1 /* locationStr */
            iload 2 /* separator */
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 3 /* idx */
        start local 3 // int idx
         1: .line 186
            aload 0 /* this */
            iload 3 /* idx */
            aload 1 /* locationStr */
            invokevirtual ch.qos.logback.classic.spi.PackagingDataCalculator.isFolder:(ILjava/lang/String;)Z
            ifeq 4
         2: .line 187
            aload 1 /* locationStr */
            iload 2 /* separator */
            iload 3 /* idx */
            iconst_1
            isub
            invokevirtual java.lang.String.lastIndexOf:(II)I
            istore 3 /* idx */
         3: .line 188
            aload 1 /* locationStr */
            iload 3 /* idx */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
         4: .line 189
      StackMap locals: int
      StackMap stack:
            iload 3 /* idx */
            ifle 6
         5: .line 190
            aload 1 /* locationStr */
            iload 3 /* idx */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
         6: .line 192
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // int idx
        end local 2 // char separator
        end local 1 // java.lang.String locationStr
        end local 0 // ch.qos.logback.classic.spi.PackagingDataCalculator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lch/qos/logback/classic/spi/PackagingDataCalculator;
            0    7     1  locationStr  Ljava/lang/String;
            0    7     2    separator  C
            1    7     3          idx  I
    MethodParameters:
             Name  Flags
      locationStr  
      separator    

  private boolean isFolder(int, java.lang.String);
    descriptor: (ILjava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // ch.qos.logback.classic.spi.PackagingDataCalculator this
        start local 1 // int idx
        start local 2 // java.lang.String text
         0: .line 196
            iload 1 /* idx */
            iconst_m1
            if_icmpeq 1
            iload 1 /* idx */
            iconst_1
            iadd
            aload 2 /* text */
            invokevirtual java.lang.String.length:()I
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // java.lang.String text
        end local 1 // int idx
        end local 0 // ch.qos.logback.classic.spi.PackagingDataCalculator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lch/qos/logback/classic/spi/PackagingDataCalculator;
            0    2     1   idx  I
            0    2     2  text  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      idx   
      text  

  private java.lang.Class loadClass(java.lang.ClassLoader, java.lang.String);
    descriptor: (Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // ch.qos.logback.classic.spi.PackagingDataCalculator this
        start local 1 // java.lang.ClassLoader cl
        start local 2 // java.lang.String className
         0: .line 200
            aload 1 /* cl */
            ifnonnull 2
         1: .line 201
            aconst_null
            areturn
         2: .line 204
      StackMap locals:
      StackMap stack:
            aload 1 /* cl */
            aload 2 /* className */
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
         3: areturn
         4: .line 205
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            pop
         5: .line 206
            aconst_null
            areturn
         6: .line 207
      StackMap locals:
      StackMap stack: java.lang.NoClassDefFoundError
            pop
         7: .line 208
            aconst_null
            areturn
         8: .line 209
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 3 /* e */
        start local 3 // java.lang.Exception e
         9: .line 210
            aload 3 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
        10: .line 211
            aconst_null
            areturn
        end local 3 // java.lang.Exception e
        end local 2 // java.lang.String className
        end local 1 // java.lang.ClassLoader cl
        end local 0 // ch.qos.logback.classic.spi.PackagingDataCalculator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lch/qos/logback/classic/spi/PackagingDataCalculator;
            0   11     1         cl  Ljava/lang/ClassLoader;
            0   11     2  className  Ljava/lang/String;
            9   11     3          e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.ClassNotFoundException
           2     3       6  Class java.lang.NoClassDefFoundError
           2     3       8  Class java.lang.Exception
    MethodParameters:
           Name  Flags
      cl         
      className  

  private java.lang.Class bestEffortLoadClass(java.lang.ClassLoader, java.lang.String);
    descriptor: (Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // ch.qos.logback.classic.spi.PackagingDataCalculator this
        start local 1 // java.lang.ClassLoader lastGuaranteedClassLoader
        start local 2 // java.lang.String className
         0: .line 222
            aload 0 /* this */
            aload 1 /* lastGuaranteedClassLoader */
            aload 2 /* className */
            invokevirtual ch.qos.logback.classic.spi.PackagingDataCalculator.loadClass:(Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/Class;
            astore 3 /* result */
        start local 3 // java.lang.Class result
         1: .line 223
            aload 3 /* result */
            ifnull 3
         2: .line 224
            aload 3 /* result */
            areturn
         3: .line 226
      StackMap locals: java.lang.Class
      StackMap stack:
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            astore 4 /* tccl */
        start local 4 // java.lang.ClassLoader tccl
         4: .line 227
            aload 4 /* tccl */
            aload 1 /* lastGuaranteedClassLoader */
            if_acmpeq 6
         5: .line 228
            aload 0 /* this */
            aload 4 /* tccl */
            aload 2 /* className */
            invokevirtual ch.qos.logback.classic.spi.PackagingDataCalculator.loadClass:(Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/Class;
            astore 3 /* result */
         6: .line 230
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            aload 3 /* result */
            ifnull 8
         7: .line 231
            aload 3 /* result */
            areturn
         8: .line 235
      StackMap locals:
      StackMap stack:
            aload 2 /* className */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
         9: areturn
        10: .line 236
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            pop
        11: .line 237
            aconst_null
            areturn
        12: .line 238
      StackMap locals:
      StackMap stack: java.lang.NoClassDefFoundError
            pop
        13: .line 239
            aconst_null
            areturn
        14: .line 240
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 5 /* e */
        start local 5 // java.lang.Exception e
        15: .line 241
            aload 5 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
        16: .line 242
            aconst_null
            areturn
        end local 5 // java.lang.Exception e
        end local 4 // java.lang.ClassLoader tccl
        end local 3 // java.lang.Class result
        end local 2 // java.lang.String className
        end local 1 // java.lang.ClassLoader lastGuaranteedClassLoader
        end local 0 // ch.qos.logback.classic.spi.PackagingDataCalculator this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   17     0                       this  Lch/qos/logback/classic/spi/PackagingDataCalculator;
            0   17     1  lastGuaranteedClassLoader  Ljava/lang/ClassLoader;
            0   17     2                  className  Ljava/lang/String;
            1   17     3                     result  Ljava/lang/Class;
            4   17     4                       tccl  Ljava/lang/ClassLoader;
           15   17     5                          e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           8     9      10  Class java.lang.ClassNotFoundException
           8     9      12  Class java.lang.NoClassDefFoundError
           8     9      14  Class java.lang.Exception
    MethodParameters:
                           Name  Flags
      lastGuaranteedClassLoader  
      className                  
}
SourceFile: "PackagingDataCalculator.java"