public class android.content.pm.PackageBackwardCompatibility extends android.content.pm.PackageSharedLibraryUpdater
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.content.pm.PackageBackwardCompatibility
  super_class: android.content.pm.PackageSharedLibraryUpdater
{
  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final android.content.pm.PackageBackwardCompatibility INSTANCE;
    descriptor: Landroid/content/pm/PackageBackwardCompatibility;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final boolean mBootClassPathContainsOAHL;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean mBootClassPathContainsATB;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.content.pm.PackageSharedLibraryUpdater[] mPackageUpdaters;
    descriptor: [Landroid/content/pm/PackageSharedLibraryUpdater;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=0
         0: .line 41
            ldc Landroid/content/pm/PackageBackwardCompatibility;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            putstatic android.content.pm.PackageBackwardCompatibility.TAG:Ljava/lang/String;
         1: .line 46
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 0 /* packageUpdaters */
        start local 0 // java.util.List packageUpdaters
         2: .line 52
            aload 0 /* packageUpdaters */
         3: .line 53
            ldc "android.content.pm.OrgApacheHttpLegacyUpdater"
         4: .line 54
            invokedynamic get()Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  android/content/pm/PackageBackwardCompatibility$RemoveUnnecessaryOrgApacheHttpLegacyLibrary.<init>()V (8)
                  ()Landroid/content/pm/PackageSharedLibraryUpdater;
         5: .line 52
            invokestatic android.content.pm.PackageBackwardCompatibility.addOptionalUpdater:(Ljava/util/List;Ljava/lang/String;Ljava/util/function/Supplier;)Z
         6: .line 54
            ifeq 8
         7: .line 52
            iconst_0
            goto 9
      StackMap locals: java.util.List
      StackMap stack:
         8: iconst_1
      StackMap locals:
      StackMap stack: int
         9: istore 1 /* bootClassPathContainsOAHL */
        start local 1 // boolean bootClassPathContainsOAHL
        10: .line 58
            aload 0 /* packageUpdaters */
            new android.content.pm.PackageBackwardCompatibility$AndroidTestRunnerSplitUpdater
            dup
            invokespecial android.content.pm.PackageBackwardCompatibility$AndroidTestRunnerSplitUpdater.<init>:()V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 64
            aload 0 /* packageUpdaters */
        12: .line 65
            ldc "android.content.pm.AndroidTestBaseUpdater"
        13: .line 66
            invokedynamic get()Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  android/content/pm/PackageBackwardCompatibility$RemoveUnnecessaryAndroidTestBaseLibrary.<init>()V (8)
                  ()Landroid/content/pm/PackageSharedLibraryUpdater;
        14: .line 64
            invokestatic android.content.pm.PackageBackwardCompatibility.addOptionalUpdater:(Ljava/util/List;Ljava/lang/String;Ljava/util/function/Supplier;)Z
        15: .line 66
            ifeq 17
        16: .line 64
            iconst_0
            goto 18
      StackMap locals: int
      StackMap stack:
        17: iconst_1
      StackMap locals:
      StackMap stack: int
        18: istore 2 /* bootClassPathContainsATB */
        start local 2 // boolean bootClassPathContainsATB
        19: .line 68
            aload 0 /* packageUpdaters */
        20: .line 69
            iconst_0
            anewarray android.content.pm.PackageSharedLibraryUpdater
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast android.content.pm.PackageSharedLibraryUpdater[]
        21: .line 68
            astore 3 /* updaterArray */
        start local 3 // android.content.pm.PackageSharedLibraryUpdater[] updaterArray
        22: .line 70
            new android.content.pm.PackageBackwardCompatibility
            dup
        23: .line 71
            iload 1 /* bootClassPathContainsOAHL */
            iload 2 /* bootClassPathContainsATB */
            aload 3 /* updaterArray */
        24: .line 70
            invokespecial android.content.pm.PackageBackwardCompatibility.<init>:(ZZ[Landroid/content/pm/PackageSharedLibraryUpdater;)V
            putstatic android.content.pm.PackageBackwardCompatibility.INSTANCE:Landroid/content/pm/PackageBackwardCompatibility;
        end local 3 // android.content.pm.PackageSharedLibraryUpdater[] updaterArray
        end local 2 // boolean bootClassPathContainsATB
        end local 1 // boolean bootClassPathContainsOAHL
        end local 0 // java.util.List packageUpdaters
        25: .line 72
            return
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            2   25     0            packageUpdaters  Ljava/util/List<Landroid/content/pm/PackageSharedLibraryUpdater;>;
           10   25     1  bootClassPathContainsOAHL  Z
           19   25     2   bootClassPathContainsATB  Z
           22   25     3               updaterArray  [Landroid/content/pm/PackageSharedLibraryUpdater;

  private static boolean addOptionalUpdater(java.util.List<android.content.pm.PackageSharedLibraryUpdater>, java.lang.String, java.util.function.Supplier<android.content.pm.PackageSharedLibraryUpdater>);
    descriptor: (Ljava/util/List;Ljava/lang/String;Ljava/util/function/Supplier;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // java.util.List packageUpdaters
        start local 1 // java.lang.String className
        start local 2 // java.util.function.Supplier defaultUpdater
         0: .line 87
            ldc Landroid/content/pm/PackageBackwardCompatibility;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
         1: .line 88
            aload 1 /* className */
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
         2: .line 89
            ldc Landroid/content/pm/PackageSharedLibraryUpdater;
            invokevirtual java.lang.Class.asSubclass:(Ljava/lang/Class;)Ljava/lang/Class;
         3: .line 87
            astore 3 /* clazz */
        start local 3 // java.lang.Class clazz
         4: .line 90
            getstatic android.content.pm.PackageBackwardCompatibility.TAG:Ljava/lang/String;
            new java.lang.StringBuilder
            dup
            ldc "Loaded "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         5: .line 91
            goto 9
        end local 3 // java.lang.Class clazz
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
         6: pop
         7: .line 92
            getstatic android.content.pm.PackageBackwardCompatibility.TAG:Ljava/lang/String;
            new java.lang.StringBuilder
            dup
            ldc "Could not find "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", ignoring"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         8: .line 93
            aconst_null
            astore 3 /* clazz */
        start local 3 // java.lang.Class clazz
         9: .line 96
      StackMap locals: java.lang.Class
      StackMap stack:
            iconst_0
            istore 4 /* usedOptional */
        start local 4 // boolean usedOptional
        10: .line 98
            aload 3 /* clazz */
            ifnonnull 13
        11: .line 99
            aload 2 /* defaultUpdater */
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            checkcast android.content.pm.PackageSharedLibraryUpdater
            astore 5 /* updater */
        start local 5 // android.content.pm.PackageSharedLibraryUpdater updater
        12: .line 100
            goto 18
        end local 5 // android.content.pm.PackageSharedLibraryUpdater updater
        13: .line 102
      StackMap locals: int
      StackMap stack:
            aload 3 /* clazz */
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.content.pm.PackageSharedLibraryUpdater
            astore 5 /* updater */
        start local 5 // android.content.pm.PackageSharedLibraryUpdater updater
        14: .line 103
            iconst_1
            istore 4 /* usedOptional */
        15: .line 104
            goto 18
        end local 5 // android.content.pm.PackageSharedLibraryUpdater updater
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
        16: astore 6 /* e */
        start local 6 // java.lang.ReflectiveOperationException e
        17: .line 105
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not create instance of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 6 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 6 // java.lang.ReflectiveOperationException e
        start local 5 // android.content.pm.PackageSharedLibraryUpdater updater
        18: .line 108
      StackMap locals: android.content.pm.PackageSharedLibraryUpdater
      StackMap stack:
            aload 0 /* packageUpdaters */
            aload 5 /* updater */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        19: .line 109
            iload 4 /* usedOptional */
            ireturn
        end local 5 // android.content.pm.PackageSharedLibraryUpdater updater
        end local 4 // boolean usedOptional
        end local 3 // java.lang.Class clazz
        end local 2 // java.util.function.Supplier defaultUpdater
        end local 1 // java.lang.String className
        end local 0 // java.util.List packageUpdaters
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   20     0  packageUpdaters  Ljava/util/List<Landroid/content/pm/PackageSharedLibraryUpdater;>;
            0   20     1        className  Ljava/lang/String;
            0   20     2   defaultUpdater  Ljava/util/function/Supplier<Landroid/content/pm/PackageSharedLibraryUpdater;>;
            4    6     3            clazz  Ljava/lang/Class<+Landroid/content/pm/PackageSharedLibraryUpdater;>;
            9   20     3            clazz  Ljava/lang/Class<+Landroid/content/pm/PackageSharedLibraryUpdater;>;
           10   20     4     usedOptional  Z
           12   13     5          updater  Landroid/content/pm/PackageSharedLibraryUpdater;
           14   16     5          updater  Landroid/content/pm/PackageSharedLibraryUpdater;
           18   20     5          updater  Landroid/content/pm/PackageSharedLibraryUpdater;
           17   18     6                e  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
           0     5       6  Class java.lang.ClassNotFoundException
          13    15      16  Class java.lang.ReflectiveOperationException
    Signature: (Ljava/util/List<Landroid/content/pm/PackageSharedLibraryUpdater;>;Ljava/lang/String;Ljava/util/function/Supplier<Landroid/content/pm/PackageSharedLibraryUpdater;>;)Z
    MethodParameters:
                 Name  Flags
      packageUpdaters  
      className        
      defaultUpdater   

  public static android.content.pm.PackageSharedLibraryUpdater getInstance();
    descriptor: ()Landroid/content/pm/PackageSharedLibraryUpdater;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 114
            getstatic android.content.pm.PackageBackwardCompatibility.INSTANCE:Landroid/content/pm/PackageBackwardCompatibility;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.android.internal.annotations.VisibleForTesting()

  public void <init>(boolean, boolean, android.content.pm.PackageSharedLibraryUpdater[]);
    descriptor: (ZZ[Landroid/content/pm/PackageSharedLibraryUpdater;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // android.content.pm.PackageBackwardCompatibility this
        start local 1 // boolean bootClassPathContainsOAHL
        start local 2 // boolean bootClassPathContainsATB
        start local 3 // android.content.pm.PackageSharedLibraryUpdater[] packageUpdaters
         0: .line 123
            aload 0 /* this */
            invokespecial android.content.pm.PackageSharedLibraryUpdater.<init>:()V
         1: .line 125
            aload 0 /* this */
            iload 1 /* bootClassPathContainsOAHL */
            putfield android.content.pm.PackageBackwardCompatibility.mBootClassPathContainsOAHL:Z
         2: .line 126
            aload 0 /* this */
            iload 2 /* bootClassPathContainsATB */
            putfield android.content.pm.PackageBackwardCompatibility.mBootClassPathContainsATB:Z
         3: .line 127
            aload 0 /* this */
            aload 3 /* packageUpdaters */
            putfield android.content.pm.PackageBackwardCompatibility.mPackageUpdaters:[Landroid/content/pm/PackageSharedLibraryUpdater;
         4: .line 128
            return
        end local 3 // android.content.pm.PackageSharedLibraryUpdater[] packageUpdaters
        end local 2 // boolean bootClassPathContainsATB
        end local 1 // boolean bootClassPathContainsOAHL
        end local 0 // android.content.pm.PackageBackwardCompatibility this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0    5     0                       this  Landroid/content/pm/PackageBackwardCompatibility;
            0    5     1  bootClassPathContainsOAHL  Z
            0    5     2   bootClassPathContainsATB  Z
            0    5     3            packageUpdaters  [Landroid/content/pm/PackageSharedLibraryUpdater;
    MethodParameters:
                           Name  Flags
      bootClassPathContainsOAHL  
      bootClassPathContainsATB   
      packageUpdaters            

  public static void modifySharedLibraries(android.content.pm.PackageParser$Package);
    descriptor: (Landroid/content/pm/PackageParser$Package;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.content.pm.PackageParser$Package pkg
         0: .line 138
            getstatic android.content.pm.PackageBackwardCompatibility.INSTANCE:Landroid/content/pm/PackageBackwardCompatibility;
            aload 0 /* pkg */
            invokevirtual android.content.pm.PackageBackwardCompatibility.updatePackage:(Landroid/content/pm/PackageParser$Package;)V
         1: .line 139
            return
        end local 0 // android.content.pm.PackageParser$Package pkg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   pkg  Landroid/content/pm/PackageParser$Package;
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting()
    MethodParameters:
      Name  Flags
      pkg   

  public void updatePackage(android.content.pm.PackageParser$Package);
    descriptor: (Landroid/content/pm/PackageParser$Package;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // android.content.pm.PackageBackwardCompatibility this
        start local 1 // android.content.pm.PackageParser$Package pkg
         0: .line 143
            aload 0 /* this */
            getfield android.content.pm.PackageBackwardCompatibility.mPackageUpdaters:[Landroid/content/pm/PackageSharedLibraryUpdater;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 4
      StackMap locals: android.content.pm.PackageBackwardCompatibility android.content.pm.PackageParser$Package top int int android.content.pm.PackageSharedLibraryUpdater[]
      StackMap stack:
         1: aload 5
            iload 3
            aaload
            astore 2 /* packageUpdater */
        start local 2 // android.content.pm.PackageSharedLibraryUpdater packageUpdater
         2: .line 144
            aload 2 /* packageUpdater */
            aload 1 /* pkg */
            invokevirtual android.content.pm.PackageSharedLibraryUpdater.updatePackage:(Landroid/content/pm/PackageParser$Package;)V
        end local 2 // android.content.pm.PackageSharedLibraryUpdater packageUpdater
         3: .line 143
            iinc 3 1
      StackMap locals:
      StackMap stack:
         4: iload 3
            iload 4
            if_icmplt 1
         5: .line 146
            return
        end local 1 // android.content.pm.PackageParser$Package pkg
        end local 0 // android.content.pm.PackageBackwardCompatibility this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Landroid/content/pm/PackageBackwardCompatibility;
            0    6     1             pkg  Landroid/content/pm/PackageParser$Package;
            2    3     2  packageUpdater  Landroid/content/pm/PackageSharedLibraryUpdater;
    MethodParameters:
      Name  Flags
      pkg   

  public static boolean bootClassPathContainsOAHL();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 153
            getstatic android.content.pm.PackageBackwardCompatibility.INSTANCE:Landroid/content/pm/PackageBackwardCompatibility;
            getfield android.content.pm.PackageBackwardCompatibility.mBootClassPathContainsOAHL:Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.android.internal.annotations.VisibleForTesting()

  public static boolean bootClassPathContainsATB();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 161
            getstatic android.content.pm.PackageBackwardCompatibility.INSTANCE:Landroid/content/pm/PackageBackwardCompatibility;
            getfield android.content.pm.PackageBackwardCompatibility.mBootClassPathContainsATB:Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.android.internal.annotations.VisibleForTesting()
}
SourceFile: "PackageBackwardCompatibility.java"
NestMembers:
  android.content.pm.PackageBackwardCompatibility$AndroidTestRunnerSplitUpdater  android.content.pm.PackageBackwardCompatibility$RemoveUnnecessaryAndroidTestBaseLibrary  android.content.pm.PackageBackwardCompatibility$RemoveUnnecessaryOrgApacheHttpLegacyLibrary
InnerClasses:
  public AndroidTestRunnerSplitUpdater = android.content.pm.PackageBackwardCompatibility$AndroidTestRunnerSplitUpdater of android.content.pm.PackageBackwardCompatibility
  public RemoveUnnecessaryAndroidTestBaseLibrary = android.content.pm.PackageBackwardCompatibility$RemoveUnnecessaryAndroidTestBaseLibrary of android.content.pm.PackageBackwardCompatibility
  public RemoveUnnecessaryOrgApacheHttpLegacyLibrary = android.content.pm.PackageBackwardCompatibility$RemoveUnnecessaryOrgApacheHttpLegacyLibrary of android.content.pm.PackageBackwardCompatibility
  public final Package = android.content.pm.PackageParser$Package of android.content.pm.PackageParser
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting()