public class android.os.FileUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.os.FileUtils
  super_class: java.lang.Object
{
  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "FileUtils"

  public static final int S_IRWXU;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 448

  public static final int S_IRUSR;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 256

  public static final int S_IWUSR;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 128

  public static final int S_IXUSR;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 64

  public static final int S_IRWXG;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 56

  public static final int S_IRGRP;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  public static final int S_IWGRP;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  public static final int S_IXGRP;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  public static final int S_IRWXO;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  public static final int S_IROTH;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int S_IWOTH;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int S_IXOTH;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final java.io.File[] EMPTY;
    descriptor: [Ljava/io/File;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  private static final long COPY_CHECKPOINT_BYTES;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 524288

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 91
            iconst_0
            anewarray java.io.File
            putstatic android.os.FileUtils.EMPTY:[Ljava/io/File;
         1: .line 95
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.os.FileUtils this
         0: .line 65
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // android.os.FileUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/os/FileUtils;

  public static int setPermissions(java.io.File, int, int, int);
    descriptor: (Ljava/io/File;III)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // java.io.File path
        start local 1 // int mode
        start local 2 // int uid
        start local 3 // int gid
         0: .line 110
            aload 0 /* path */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            iload 1 /* mode */
            iload 2 /* uid */
            iload 3 /* gid */
            invokestatic android.os.FileUtils.setPermissions:(Ljava/lang/String;III)I
            ireturn
        end local 3 // int gid
        end local 2 // int uid
        end local 1 // int mode
        end local 0 // java.io.File path
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  path  Ljava/io/File;
            0    1     1  mode  I
            0    1     2   uid  I
            0    1     3   gid  I
    MethodParameters:
      Name  Flags
      path  
      mode  
      uid   
      gid   

  public static int setPermissions(java.lang.String, int, int, int);
    descriptor: (Ljava/lang/String;III)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=4
         0: .line 123
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tOs cannot be resolved\n\tErrnoException cannot be resolved to a type\n\tOs cannot be resolved\n\tErrnoException cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    MethodParameters:
      Name  Flags
      path  
      mode  
      uid   
      gid   

  public static int setPermissions(java.io.FileDescriptor, int, int, int);
    descriptor: (Ljava/io/FileDescriptor;III)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=4
         0: .line 151
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tOs cannot be resolved\n\tErrnoException cannot be resolved to a type\n\tOs cannot be resolved\n\tErrnoException cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    MethodParameters:
      Name  Flags
      fd    
      mode  
      uid   
      gid   

  public static void copyPermissions(java.io.File, java.io.File);
    descriptor: (Ljava/io/File;Ljava/io/File;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
         0: .line 171
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tStructStat cannot be resolved to a type\n\tOs cannot be resolved\n\tOs cannot be resolved\n\tOs cannot be resolved\n\tErrnoException cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      from  
      to    

  public static int getUid(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
         0: .line 184
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tOs cannot be resolved\n\tErrnoException cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    MethodParameters:
      Name  Flags
      path  

  public static boolean sync(java.io.FileOutputStream);
    descriptor: (Ljava/io/FileOutputStream;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.io.FileOutputStream stream
         0: .line 196
            aload 0 /* stream */
            ifnull 2
         1: .line 197
            aload 0 /* stream */
            invokevirtual java.io.FileOutputStream.getFD:()Ljava/io/FileDescriptor;
            invokevirtual java.io.FileDescriptor.sync:()V
         2: .line 199
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         3: .line 200
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
         4: .line 202
            iconst_0
            ireturn
        end local 0 // java.io.FileOutputStream stream
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0  stream  Ljava/io/FileOutputStream;
      Exception table:
        from    to  target  type
           0     2       3  Class java.io.IOException
    MethodParameters:
        Name  Flags
      stream  

  public static boolean copyFile(java.io.File, java.io.File);
    descriptor: (Ljava/io/File;Ljava/io/File;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.File srcFile
        start local 1 // java.io.File destFile
         0: .line 211
            aload 0 /* srcFile */
            aload 1 /* destFile */
            invokestatic android.os.FileUtils.copyFileOrThrow:(Ljava/io/File;Ljava/io/File;)V
         1: .line 212
            iconst_1
            ireturn
         2: .line 213
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
         3: .line 214
            iconst_0
            ireturn
        end local 1 // java.io.File destFile
        end local 0 // java.io.File srcFile
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0   srcFile  Ljava/io/File;
            0    4     1  destFile  Ljava/io/File;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
          Name  Flags
      srcFile   
      destFile  

  public static void copyFileOrThrow(java.io.File, java.io.File);
    descriptor: (Ljava/io/File;Ljava/io/File;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.io.File srcFile
        start local 1 // java.io.File destFile
         0: .line 223
            aconst_null
            astore 2
            aconst_null
            astore 3
         1: new java.io.FileInputStream
            dup
            aload 0 /* srcFile */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            astore 4 /* in */
        start local 4 // java.io.InputStream in
         2: .line 224
            aload 4 /* in */
            aload 1 /* destFile */
            invokestatic android.os.FileUtils.copyToFileOrThrow:(Ljava/io/InputStream;Ljava/io/File;)V
         3: .line 225
            aload 4 /* in */
            ifnull 9
            aload 4 /* in */
            invokevirtual java.io.InputStream.close:()V
            goto 9
      StackMap locals: java.io.File java.io.File java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack: java.lang.Throwable
         4: astore 2
            aload 4 /* in */
            ifnull 5
            aload 4 /* in */
            invokevirtual java.io.InputStream.close:()V
        end local 4 // java.io.InputStream in
      StackMap locals:
      StackMap stack:
         5: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 3
            aload 2
            ifnonnull 7
            aload 3
            astore 2
            goto 8
      StackMap locals:
      StackMap stack:
         7: aload 2
            aload 3
            if_acmpeq 8
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
         8: aload 2
            athrow
         9: .line 226
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.File destFile
        end local 0 // java.io.File srcFile
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0   srcFile  Ljava/io/File;
            0   10     1  destFile  Ljava/io/File;
            2    5     4        in  Ljava/io/InputStream;
      Exception table:
        from    to  target  type
           2     3       4  any
           1     6       6  any
    Exceptions:
      throws java.io.IOException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
          Name  Flags
      srcFile   
      destFile  

  public static boolean copyToFile(java.io.InputStream, java.io.File);
    descriptor: (Ljava/io/InputStream;Ljava/io/File;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.InputStream inputStream
        start local 1 // java.io.File destFile
         0: .line 234
            aload 0 /* inputStream */
            aload 1 /* destFile */
            invokestatic android.os.FileUtils.copyToFileOrThrow:(Ljava/io/InputStream;Ljava/io/File;)V
         1: .line 235
            iconst_1
            ireturn
         2: .line 236
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
         3: .line 237
            iconst_0
            ireturn
        end local 1 // java.io.File destFile
        end local 0 // java.io.InputStream inputStream
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0  inputStream  Ljava/io/InputStream;
            0    4     1     destFile  Ljava/io/File;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
             Name  Flags
      inputStream  
      destFile     

  public static void copyToFileOrThrow(java.io.InputStream, java.io.File);
    descriptor: (Ljava/io/InputStream;Ljava/io/File;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
         0: .line 252
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tOs cannot be resolved\n\tErrnoException cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.io.IOException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
          Name  Flags
      in        
      destFile  

  public static long copy(java.io.File, java.io.File);
    descriptor: (Ljava/io/File;Ljava/io/File;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.io.File from
        start local 1 // java.io.File to
         0: .line 268
            aload 0 /* from */
            aload 1 /* to */
            aconst_null
            aconst_null
            invokestatic android.os.FileUtils.copy:(Ljava/io/File;Ljava/io/File;Landroid/os/FileUtils$ProgressListener;Landroid/os/CancellationSignal;)J
            lreturn
        end local 1 // java.io.File to
        end local 0 // java.io.File from
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  from  Ljava/io/File;
            0    1     1    to  Ljava/io/File;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      from  
      to    

  public static long copy(java.io.File, java.io.File, android.os.FileUtils$ProgressListener, android.os.CancellationSignal);
    descriptor: (Ljava/io/File;Ljava/io/File;Landroid/os/FileUtils$ProgressListener;Landroid/os/CancellationSignal;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // java.io.File from
        start local 1 // java.io.File to
        start local 2 // android.os.FileUtils$ProgressListener listener
        start local 3 // android.os.CancellationSignal signal
         0: .line 284
            aconst_null
            astore 4
            aconst_null
            astore 5
         1: new java.io.FileInputStream
            dup
            aload 0 /* from */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            astore 6 /* in */
        start local 6 // java.io.FileInputStream in
         2: .line 285
            new java.io.FileOutputStream
            dup
            aload 1 /* to */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 7 /* out */
        start local 7 // java.io.FileOutputStream out
         3: .line 286
            aload 6 /* in */
            aload 7 /* out */
            aload 2 /* listener */
            aload 3 /* signal */
            invokestatic android.os.FileUtils.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;Landroid/os/FileUtils$ProgressListener;Landroid/os/CancellationSignal;)J
         4: .line 287
            aload 7 /* out */
            ifnull 5
            aload 7 /* out */
            invokevirtual java.io.FileOutputStream.close:()V
      StackMap locals: java.io.File java.io.File android.os.FileUtils$ProgressListener android.os.CancellationSignal java.lang.Throwable java.lang.Throwable java.io.FileInputStream java.io.FileOutputStream
      StackMap stack: long
         5: aload 6 /* in */
            ifnull 6
            aload 6 /* in */
            invokevirtual java.io.FileInputStream.close:()V
         6: .line 286
      StackMap locals:
      StackMap stack: long
            lreturn
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 4
         8: .line 287
            aload 7 /* out */
            ifnull 9
            aload 7 /* out */
            invokevirtual java.io.FileOutputStream.close:()V
        end local 7 // java.io.FileOutputStream out
      StackMap locals:
      StackMap stack:
         9: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: astore 5
            aload 4
            ifnonnull 11
            aload 5
            astore 4
            goto 12
      StackMap locals:
      StackMap stack:
        11: aload 4
            aload 5
            if_acmpeq 12
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        12: aload 6 /* in */
            ifnull 13
            aload 6 /* in */
            invokevirtual java.io.FileInputStream.close:()V
        end local 6 // java.io.FileInputStream in
      StackMap locals:
      StackMap stack:
        13: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 5
            aload 4
            ifnonnull 15
            aload 5
            astore 4
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 4
            aload 5
            if_acmpeq 16
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        16: aload 4
            athrow
        end local 3 // android.os.CancellationSignal signal
        end local 2 // android.os.FileUtils$ProgressListener listener
        end local 1 // java.io.File to
        end local 0 // java.io.File from
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0      from  Ljava/io/File;
            0   17     1        to  Ljava/io/File;
            0   17     2  listener  Landroid/os/FileUtils$ProgressListener;
            0   17     3    signal  Landroid/os/CancellationSignal;
            2   13     6        in  Ljava/io/FileInputStream;
            3    9     7       out  Ljava/io/FileOutputStream;
      Exception table:
        from    to  target  type
           3     4       7  any
           2     5      10  any
           7    10      10  any
           1     6      14  any
           7    14      14  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      from      
      to        
      listener  
      signal    

  public static long copy(java.io.InputStream, java.io.OutputStream);
    descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.io.InputStream in
        start local 1 // java.io.OutputStream out
         0: .line 299
            aload 0 /* in */
            aload 1 /* out */
            aconst_null
            aconst_null
            invokestatic android.os.FileUtils.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;Landroid/os/FileUtils$ProgressListener;Landroid/os/CancellationSignal;)J
            lreturn
        end local 1 // java.io.OutputStream out
        end local 0 // java.io.InputStream in
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    in  Ljava/io/InputStream;
            0    1     1   out  Ljava/io/OutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    
      out   

  public static long copy(java.io.InputStream, java.io.OutputStream, android.os.FileUtils$ProgressListener, android.os.CancellationSignal);
    descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;Landroid/os/FileUtils$ProgressListener;Landroid/os/CancellationSignal;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // java.io.InputStream in
        start local 1 // java.io.OutputStream out
        start local 2 // android.os.FileUtils$ProgressListener listener
        start local 3 // android.os.CancellationSignal signal
         0: .line 316
            aload 0 /* in */
            instanceof java.io.FileInputStream
            ifeq 4
            aload 1 /* out */
            instanceof java.io.FileOutputStream
            ifeq 4
         1: .line 317
            aload 0 /* in */
            checkcast java.io.FileInputStream
            invokevirtual java.io.FileInputStream.getFD:()Ljava/io/FileDescriptor;
            aload 1 /* out */
            checkcast java.io.FileOutputStream
            invokevirtual java.io.FileOutputStream.getFD:()Ljava/io/FileDescriptor;
         2: .line 318
            aload 2 /* listener */
            aload 3 /* signal */
         3: .line 317
            invokestatic android.os.FileUtils.copy:(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Landroid/os/FileUtils$ProgressListener;Landroid/os/CancellationSignal;)J
            lreturn
         4: .line 323
      StackMap locals:
      StackMap stack:
            aload 0 /* in */
            aload 1 /* out */
            aload 2 /* listener */
            aload 3 /* signal */
            invokestatic android.os.FileUtils.copyInternalUserspace:(Ljava/io/InputStream;Ljava/io/OutputStream;Landroid/os/FileUtils$ProgressListener;Landroid/os/CancellationSignal;)J
            lreturn
        end local 3 // android.os.CancellationSignal signal
        end local 2 // android.os.FileUtils$ProgressListener listener
        end local 1 // java.io.OutputStream out
        end local 0 // java.io.InputStream in
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0        in  Ljava/io/InputStream;
            0    5     1       out  Ljava/io/OutputStream;
            0    5     2  listener  Landroid/os/FileUtils$ProgressListener;
            0    5     3    signal  Landroid/os/CancellationSignal;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      in        
      out       
      listener  
      signal    

  public static long copy(java.io.FileDescriptor, java.io.FileDescriptor);
    descriptor: (Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.io.FileDescriptor in
        start local 1 // java.io.FileDescriptor out
         0: .line 336
            aload 0 /* in */
            aload 1 /* out */
            aconst_null
            aconst_null
            invokestatic android.os.FileUtils.copy:(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Landroid/os/FileUtils$ProgressListener;Landroid/os/CancellationSignal;)J
            lreturn
        end local 1 // java.io.FileDescriptor out
        end local 0 // java.io.FileDescriptor in
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    in  Ljava/io/FileDescriptor;
            0    1     1   out  Ljava/io/FileDescriptor;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    
      out   

  public static long copy(java.io.FileDescriptor, java.io.FileDescriptor, android.os.FileUtils$ProgressListener, android.os.CancellationSignal);
    descriptor: (Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Landroid/os/FileUtils$ProgressListener;Landroid/os/CancellationSignal;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // java.io.FileDescriptor in
        start local 1 // java.io.FileDescriptor out
        start local 2 // android.os.FileUtils$ProgressListener listener
        start local 3 // android.os.CancellationSignal signal
         0: .line 352
            aload 0 /* in */
            aload 1 /* out */
            aload 2 /* listener */
            aload 3 /* signal */
            ldc 9223372036854775807
            invokestatic android.os.FileUtils.copy:(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Landroid/os/FileUtils$ProgressListener;Landroid/os/CancellationSignal;J)J
            lreturn
        end local 3 // android.os.CancellationSignal signal
        end local 2 // android.os.FileUtils$ProgressListener listener
        end local 1 // java.io.FileDescriptor out
        end local 0 // java.io.FileDescriptor in
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0        in  Ljava/io/FileDescriptor;
            0    1     1       out  Ljava/io/FileDescriptor;
            0    1     2  listener  Landroid/os/FileUtils$ProgressListener;
            0    1     3    signal  Landroid/os/CancellationSignal;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      in        
      out       
      listener  
      signal    

  public static long copy(java.io.FileDescriptor, java.io.FileDescriptor, android.os.FileUtils$ProgressListener, android.os.CancellationSignal, long);
    descriptor: (Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Landroid/os/FileUtils$ProgressListener;Landroid/os/CancellationSignal;J)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=5
         0: .line 371
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tStructStat cannot be resolved to a type\n\tOs cannot be resolved\n\tStructStat cannot be resolved to a type\n\tOs cannot be resolved\n\tThe method copyInternalSendfile(FileDescriptor, FileDescriptor, FileUtils.ProgressListener, CancellationSignal, long) from the type FileUtils refers to the missing type ErrnoException\n\tThe method copyInternalSplice(FileDescriptor, FileDescriptor, FileUtils.ProgressListener, CancellationSignal, long) from the type FileUtils refers to the missing type ErrnoException\n\tErrnoException cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      in        
      out       
      listener  
      signal    
      count     

  public static long copyInternalSplice(java.io.FileDescriptor, java.io.FileDescriptor, android.os.FileUtils$ProgressListener, android.os.CancellationSignal, long);
    descriptor: (Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Landroid/os/FileUtils$ProgressListener;Landroid/os/CancellationSignal;J)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=5
         0: .line 393
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tErrnoException cannot be resolved to a type\n\tOs cannot be resolved\n\tSPLICE_F_MOVE cannot be resolved to a variable\n\tSPLICE_F_MORE cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws ErrnoException
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.android.internal.annotations.VisibleForTesting()
    MethodParameters:
          Name  Flags
      in        
      out       
      listener  
      signal    
      count     

  public static long copyInternalSendfile(java.io.FileDescriptor, java.io.FileDescriptor, android.os.FileUtils$ProgressListener, android.os.CancellationSignal, long);
    descriptor: (Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Landroid/os/FileUtils$ProgressListener;Landroid/os/CancellationSignal;J)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=5
         0: .line 426
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tErrnoException cannot be resolved to a type\n\tOs cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws ErrnoException
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.android.internal.annotations.VisibleForTesting()
    MethodParameters:
          Name  Flags
      in        
      out       
      listener  
      signal    
      count     

  public static long copyInternalUserspace(java.io.FileDescriptor, java.io.FileDescriptor, android.os.FileUtils$ProgressListener, android.os.CancellationSignal, long);
    descriptor: (Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Landroid/os/FileUtils$ProgressListener;Landroid/os/CancellationSignal;J)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // java.io.FileDescriptor in
        start local 1 // java.io.FileDescriptor out
        start local 2 // android.os.FileUtils$ProgressListener listener
        start local 3 // android.os.CancellationSignal signal
        start local 4 // long count
         0: .line 455
            lload 4 /* count */
            ldc 9223372036854775807
            lcmp
            ifeq 4
         1: .line 456
            new com.android.internal.util.SizedInputStream
            dup
            new java.io.FileInputStream
            dup
            aload 0 /* in */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/FileDescriptor;)V
            lload 4 /* count */
            invokespecial com.android.internal.util.SizedInputStream.<init>:(Ljava/io/InputStream;J)V
         2: .line 457
            new java.io.FileOutputStream
            dup
            aload 1 /* out */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/FileDescriptor;)V
            aload 2 /* listener */
            aload 3 /* signal */
         3: .line 456
            invokestatic android.os.FileUtils.copyInternalUserspace:(Ljava/io/InputStream;Ljava/io/OutputStream;Landroid/os/FileUtils$ProgressListener;Landroid/os/CancellationSignal;)J
            lreturn
         4: .line 459
      StackMap locals:
      StackMap stack:
            new java.io.FileInputStream
            dup
            aload 0 /* in */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/FileDescriptor;)V
         5: .line 460
            new java.io.FileOutputStream
            dup
            aload 1 /* out */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/FileDescriptor;)V
            aload 2 /* listener */
            aload 3 /* signal */
         6: .line 459
            invokestatic android.os.FileUtils.copyInternalUserspace:(Ljava/io/InputStream;Ljava/io/OutputStream;Landroid/os/FileUtils$ProgressListener;Landroid/os/CancellationSignal;)J
            lreturn
        end local 4 // long count
        end local 3 // android.os.CancellationSignal signal
        end local 2 // android.os.FileUtils$ProgressListener listener
        end local 1 // java.io.FileDescriptor out
        end local 0 // java.io.FileDescriptor in
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0        in  Ljava/io/FileDescriptor;
            0    7     1       out  Ljava/io/FileDescriptor;
            0    7     2  listener  Landroid/os/FileUtils$ProgressListener;
            0    7     3    signal  Landroid/os/CancellationSignal;
            0    7     4     count  J
    Exceptions:
      throws java.io.IOException
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.android.internal.annotations.VisibleForTesting()
    MethodParameters:
          Name  Flags
      in        
      out       
      listener  
      signal    
      count     

  public static long copyInternalUserspace(java.io.InputStream, java.io.OutputStream, android.os.FileUtils$ProgressListener, android.os.CancellationSignal);
    descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;Landroid/os/FileUtils$ProgressListener;Landroid/os/CancellationSignal;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=10, args_size=4
        start local 0 // java.io.InputStream in
        start local 1 // java.io.OutputStream out
        start local 2 // android.os.FileUtils$ProgressListener listener
        start local 3 // android.os.CancellationSignal signal
         0: .line 467
            lconst_0
            lstore 4 /* progress */
        start local 4 // long progress
         1: .line 468
            lconst_0
            lstore 6 /* checkpoint */
        start local 6 // long checkpoint
         2: .line 469
            sipush 8192
            newarray 8
            astore 8 /* buffer */
        start local 8 // byte[] buffer
         3: .line 472
            goto 13
        start local 9 // int t
         4: .line 473
      StackMap locals: java.io.InputStream java.io.OutputStream android.os.FileUtils$ProgressListener android.os.CancellationSignal long long byte[] int
      StackMap stack:
            aload 1 /* out */
            aload 8 /* buffer */
            iconst_0
            iload 9 /* t */
            invokevirtual java.io.OutputStream.write:([BII)V
         5: .line 475
            lload 4 /* progress */
            iload 9 /* t */
            i2l
            ladd
            lstore 4 /* progress */
         6: .line 476
            lload 6 /* checkpoint */
            iload 9 /* t */
            i2l
            ladd
            lstore 6 /* checkpoint */
         7: .line 478
            lload 6 /* checkpoint */
            ldc 524288
            lcmp
            iflt 13
         8: .line 479
            aload 3 /* signal */
            ifnull 10
         9: .line 480
            aload 3 /* signal */
            invokevirtual android.os.CancellationSignal.throwIfCanceled:()V
        10: .line 482
      StackMap locals:
      StackMap stack:
            aload 2 /* listener */
            ifnull 12
        11: .line 483
            aload 2 /* listener */
            lload 4 /* progress */
            invokeinterface android.os.FileUtils$ProgressListener.onProgress:(J)V
        12: .line 485
      StackMap locals:
      StackMap stack:
            lconst_0
            lstore 6 /* checkpoint */
        end local 9 // int t
        13: .line 472
      StackMap locals:
      StackMap stack:
            aload 0 /* in */
            aload 8 /* buffer */
            invokevirtual java.io.InputStream.read:([B)I
            dup
            istore 9 /* t */
        start local 9 // int t
        14: iconst_m1
            if_icmpne 4
        15: .line 488
            aload 2 /* listener */
            ifnull 17
        16: .line 489
            aload 2 /* listener */
            lload 4 /* progress */
            invokeinterface android.os.FileUtils$ProgressListener.onProgress:(J)V
        17: .line 491
      StackMap locals: int
      StackMap stack:
            lload 4 /* progress */
            lreturn
        end local 9 // int t
        end local 8 // byte[] buffer
        end local 6 // long checkpoint
        end local 4 // long progress
        end local 3 // android.os.CancellationSignal signal
        end local 2 // android.os.FileUtils$ProgressListener listener
        end local 1 // java.io.OutputStream out
        end local 0 // java.io.InputStream in
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0          in  Ljava/io/InputStream;
            0   18     1         out  Ljava/io/OutputStream;
            0   18     2    listener  Landroid/os/FileUtils$ProgressListener;
            0   18     3      signal  Landroid/os/CancellationSignal;
            1   18     4    progress  J
            2   18     6  checkpoint  J
            3   18     8      buffer  [B
            4   13     9           t  I
           14   18     9           t  I
    Exceptions:
      throws java.io.IOException
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.android.internal.annotations.VisibleForTesting()
    MethodParameters:
          Name  Flags
      in        
      out       
      listener  
      signal    

  public static boolean isFilenameSafe(java.io.File);
    descriptor: (Ljava/io/File;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.io.File file
         0: .line 502
            getstatic android.os.FileUtils$NoImagePreloadHolder.SAFE_FILENAME_PATTERN:Ljava/util/regex/Pattern;
            aload 0 /* file */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            invokevirtual java.util.regex.Matcher.matches:()Z
            ireturn
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  file  Ljava/io/File;
    MethodParameters:
      Name  Flags
      file  

  public static java.lang.String readTextFile(java.io.File, int, java.lang.String);
    descriptor: (Ljava/io/File;ILjava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=14, args_size=3
        start local 0 // java.io.File file
        start local 1 // int max
        start local 2 // java.lang.String ellipsis
         0: .line 514
            new java.io.FileInputStream
            dup
            aload 0 /* file */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            astore 3 /* input */
        start local 3 // java.io.InputStream input
         1: .line 518
            new java.io.BufferedInputStream
            dup
            aload 3 /* input */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            astore 4 /* bis */
        start local 4 // java.io.BufferedInputStream bis
         2: .line 520
            aload 0 /* file */
            invokevirtual java.io.File.length:()J
            lstore 5 /* size */
        start local 5 // long size
         3: .line 521
            iload 1 /* max */
            ifgt 4
            lload 5 /* size */
            lconst_0
            lcmp
            ifle 22
            iload 1 /* max */
            ifne 22
         4: .line 522
      StackMap locals: java.io.InputStream java.io.BufferedInputStream long
      StackMap stack:
            lload 5 /* size */
            lconst_0
            lcmp
            ifle 6
            iload 1 /* max */
            ifeq 5
            lload 5 /* size */
            iload 1 /* max */
            i2l
            lcmp
            ifge 6
      StackMap locals:
      StackMap stack:
         5: lload 5 /* size */
            l2i
            istore 1 /* max */
         6: .line 523
      StackMap locals:
      StackMap stack:
            iload 1 /* max */
            iconst_1
            iadd
            newarray 8
            astore 7 /* data */
        start local 7 // byte[] data
         7: .line 524
            aload 4 /* bis */
            aload 7 /* data */
            invokevirtual java.io.BufferedInputStream.read:([B)I
            istore 8 /* length */
        start local 8 // int length
         8: .line 525
            iload 8 /* length */
            ifgt 12
         9: .line 561
            aload 4 /* bis */
            invokevirtual java.io.BufferedInputStream.close:()V
        10: .line 562
            aload 3 /* input */
            invokevirtual java.io.InputStream.close:()V
        11: .line 525
            ldc ""
            areturn
        12: .line 526
      StackMap locals: byte[] int
      StackMap stack:
            iload 8 /* length */
            iload 1 /* max */
            if_icmpgt 15
            new java.lang.String
            dup
            aload 7 /* data */
            iconst_0
            iload 8 /* length */
            invokespecial java.lang.String.<init>:([BII)V
            astore 13
        13: .line 561
            aload 4 /* bis */
            invokevirtual java.io.BufferedInputStream.close:()V
        14: .line 562
            aload 3 /* input */
            invokevirtual java.io.InputStream.close:()V
            aload 13
            areturn
        15: .line 527
      StackMap locals:
      StackMap stack:
            aload 2 /* ellipsis */
            ifnonnull 18
            new java.lang.String
            dup
            aload 7 /* data */
            iconst_0
            iload 1 /* max */
            invokespecial java.lang.String.<init>:([BII)V
            astore 13
        16: .line 561
            aload 4 /* bis */
            invokevirtual java.io.BufferedInputStream.close:()V
        17: .line 562
            aload 3 /* input */
            invokevirtual java.io.InputStream.close:()V
            aload 13
            areturn
        18: .line 528
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            new java.lang.String
            dup
            aload 7 /* data */
            iconst_0
            iload 1 /* max */
            invokespecial java.lang.String.<init>:([BII)V
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* ellipsis */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 13
        19: .line 561
            aload 4 /* bis */
            invokevirtual java.io.BufferedInputStream.close:()V
        20: .line 562
            aload 3 /* input */
            invokevirtual java.io.InputStream.close:()V
        21: .line 528
            aload 13
            areturn
        end local 8 // int length
        end local 7 // byte[] data
        22: .line 529
      StackMap locals:
      StackMap stack:
            iload 1 /* max */
            ifge 51
        23: .line 531
            iconst_0
            istore 8 /* rolled */
        start local 8 // boolean rolled
        24: .line 532
            aconst_null
            astore 9 /* last */
        start local 9 // byte[] last
        25: .line 533
            aconst_null
            astore 10 /* data */
        start local 10 // byte[] data
        26: .line 535
      StackMap locals: java.io.File int java.lang.String java.io.InputStream java.io.BufferedInputStream long top int byte[] byte[]
      StackMap stack:
            aload 9 /* last */
            ifnull 27
            iconst_1
            istore 8 /* rolled */
        27: .line 536
      StackMap locals:
      StackMap stack:
            aload 9 /* last */
            astore 11 /* tmp */
        start local 11 // byte[] tmp
        28: aload 10 /* data */
            astore 9 /* last */
            aload 11 /* tmp */
            astore 10 /* data */
        29: .line 537
            aload 10 /* data */
            ifnonnull 30
            iload 1 /* max */
            ineg
            newarray 8
            astore 10 /* data */
        30: .line 538
      StackMap locals: byte[]
      StackMap stack:
            aload 4 /* bis */
            aload 10 /* data */
            invokevirtual java.io.BufferedInputStream.read:([B)I
            istore 7 /* len */
        end local 11 // byte[] tmp
        start local 7 // int len
        31: .line 539
            iload 7 /* len */
            aload 10 /* data */
            arraylength
            if_icmpeq 26
        32: .line 541
            aload 9 /* last */
            ifnonnull 36
            iload 7 /* len */
            ifgt 36
        33: .line 561
            aload 4 /* bis */
            invokevirtual java.io.BufferedInputStream.close:()V
        34: .line 562
            aload 3 /* input */
            invokevirtual java.io.InputStream.close:()V
        35: .line 541
            ldc ""
            areturn
        36: .line 542
      StackMap locals: java.io.File int java.lang.String java.io.InputStream java.io.BufferedInputStream long int int byte[] byte[]
      StackMap stack:
            aload 9 /* last */
            ifnonnull 39
            new java.lang.String
            dup
            aload 10 /* data */
            iconst_0
            iload 7 /* len */
            invokespecial java.lang.String.<init>:([BII)V
            astore 13
        37: .line 561
            aload 4 /* bis */
            invokevirtual java.io.BufferedInputStream.close:()V
        38: .line 562
            aload 3 /* input */
            invokevirtual java.io.InputStream.close:()V
            aload 13
            areturn
        39: .line 543
      StackMap locals:
      StackMap stack:
            iload 7 /* len */
            ifle 43
        40: .line 544
            iconst_1
            istore 8 /* rolled */
        41: .line 545
            aload 9 /* last */
            iload 7 /* len */
            aload 9 /* last */
            iconst_0
            aload 9 /* last */
            arraylength
            iload 7 /* len */
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        42: .line 546
            aload 10 /* data */
            iconst_0
            aload 9 /* last */
            aload 9 /* last */
            arraylength
            iload 7 /* len */
            isub
            iload 7 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        43: .line 548
      StackMap locals:
      StackMap stack:
            aload 2 /* ellipsis */
            ifnull 44
            iload 8 /* rolled */
            ifne 47
      StackMap locals:
      StackMap stack:
        44: new java.lang.String
            dup
            aload 9 /* last */
            invokespecial java.lang.String.<init>:([B)V
            astore 13
        45: .line 561
            aload 4 /* bis */
            invokevirtual java.io.BufferedInputStream.close:()V
        46: .line 562
            aload 3 /* input */
            invokevirtual java.io.InputStream.close:()V
            aload 13
            areturn
        47: .line 549
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 2 /* ellipsis */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            new java.lang.String
            dup
            aload 9 /* last */
            invokespecial java.lang.String.<init>:([B)V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 13
        48: .line 561
            aload 4 /* bis */
            invokevirtual java.io.BufferedInputStream.close:()V
        49: .line 562
            aload 3 /* input */
            invokevirtual java.io.InputStream.close:()V
        50: .line 549
            aload 13
            areturn
        end local 10 // byte[] data
        end local 9 // byte[] last
        end local 8 // boolean rolled
        end local 7 // int len
        51: .line 551
      StackMap locals: java.io.File int java.lang.String java.io.InputStream java.io.BufferedInputStream long
      StackMap stack:
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 7 /* contents */
        start local 7 // java.io.ByteArrayOutputStream contents
        52: .line 553
            sipush 1024
            newarray 8
            astore 9 /* data */
        start local 9 // byte[] data
        53: .line 555
      StackMap locals: java.io.File int java.lang.String java.io.InputStream java.io.BufferedInputStream long java.io.ByteArrayOutputStream top byte[]
      StackMap stack:
            aload 4 /* bis */
            aload 9 /* data */
            invokevirtual java.io.BufferedInputStream.read:([B)I
            istore 8 /* len */
        start local 8 // int len
        54: .line 556
            iload 8 /* len */
            ifle 55
            aload 7 /* contents */
            aload 9 /* data */
            iconst_0
            iload 8 /* len */
            invokevirtual java.io.ByteArrayOutputStream.write:([BII)V
        55: .line 557
      StackMap locals: java.io.File int java.lang.String java.io.InputStream java.io.BufferedInputStream long java.io.ByteArrayOutputStream int byte[]
      StackMap stack:
            iload 8 /* len */
            aload 9 /* data */
            arraylength
            if_icmpeq 53
        56: .line 558
            aload 7 /* contents */
            invokevirtual java.io.ByteArrayOutputStream.toString:()Ljava/lang/String;
            astore 13
        57: .line 561
            aload 4 /* bis */
            invokevirtual java.io.BufferedInputStream.close:()V
        58: .line 562
            aload 3 /* input */
            invokevirtual java.io.InputStream.close:()V
        59: .line 558
            aload 13
            areturn
        end local 9 // byte[] data
        end local 8 // int len
        end local 7 // java.io.ByteArrayOutputStream contents
        end local 5 // long size
        60: .line 560
      StackMap locals: java.io.File int java.lang.String java.io.InputStream java.io.BufferedInputStream
      StackMap stack: java.lang.Throwable
            astore 12
        61: .line 561
            aload 4 /* bis */
            invokevirtual java.io.BufferedInputStream.close:()V
        62: .line 562
            aload 3 /* input */
            invokevirtual java.io.InputStream.close:()V
        63: .line 563
            aload 12
            athrow
        end local 4 // java.io.BufferedInputStream bis
        end local 3 // java.io.InputStream input
        end local 2 // java.lang.String ellipsis
        end local 1 // int max
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   64     0      file  Ljava/io/File;
            0   64     1       max  I
            0   64     2  ellipsis  Ljava/lang/String;
            1   64     3     input  Ljava/io/InputStream;
            2   64     4       bis  Ljava/io/BufferedInputStream;
            3   60     5      size  J
            7   22     7      data  [B
            8   22     8    length  I
           31   51     7       len  I
           24   51     8    rolled  Z
           25   51     9      last  [B
           26   51    10      data  [B
           28   31    11       tmp  [B
           52   60     7  contents  Ljava/io/ByteArrayOutputStream;
           54   60     8       len  I
           53   60     9      data  [B
      Exception table:
        from    to  target  type
           2     9      60  any
          12    13      60  any
          15    16      60  any
          18    19      60  any
          22    33      60  any
          36    37      60  any
          39    45      60  any
          47    48      60  any
          51    57      60  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      file      
      max       
      ellipsis  

  public static void stringToFile(java.io.File, java.lang.String);
    descriptor: (Ljava/io/File;Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.File file
        start local 1 // java.lang.String string
         0: .line 567
            aload 0 /* file */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            aload 1 /* string */
            invokestatic android.os.FileUtils.stringToFile:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 568
            return
        end local 1 // java.lang.String string
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    file  Ljava/io/File;
            0    2     1  string  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      file    
      string  

  public static void bytesToFile(java.lang.String, byte[]);
    descriptor: (Ljava/lang/String;[B)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // java.lang.String filename
        start local 1 // byte[] content
         0: .line 575
            aload 0 /* filename */
            ldc "/proc/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 16
         1: .line 576
            invokestatic android.os.StrictMode.allowThreadDiskWritesMask:()I
            istore 2 /* oldMask */
        start local 2 // int oldMask
         2: .line 577
            aconst_null
            astore 3
            aconst_null
            astore 4
         3: new java.io.FileOutputStream
            dup
            aload 0 /* filename */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/lang/String;)V
            astore 5 /* fos */
        start local 5 // java.io.FileOutputStream fos
         4: .line 578
            aload 5 /* fos */
            aload 1 /* content */
            invokevirtual java.io.FileOutputStream.write:([B)V
         5: .line 579
            aload 5 /* fos */
            ifnull 14
            aload 5 /* fos */
            invokevirtual java.io.FileOutputStream.close:()V
            goto 14
      StackMap locals: java.lang.String byte[] int java.lang.Throwable java.lang.Throwable java.io.FileOutputStream
      StackMap stack: java.lang.Throwable
         6: astore 3
            aload 5 /* fos */
            ifnull 7
            aload 5 /* fos */
            invokevirtual java.io.FileOutputStream.close:()V
        end local 5 // java.io.FileOutputStream fos
      StackMap locals:
      StackMap stack:
         7: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 4
            aload 3
            ifnonnull 9
            aload 4
            astore 3
            goto 10
      StackMap locals:
      StackMap stack:
         9: aload 3
            aload 4
            if_acmpeq 10
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        10: aload 3
            athrow
      StackMap locals: java.lang.String byte[] int
      StackMap stack: java.lang.Throwable
        11: astore 6
        12: .line 580
            iload 2 /* oldMask */
            invokestatic android.os.StrictMode.setThreadPolicyMask:(I)V
        13: .line 581
            aload 6
            athrow
        14: .line 580
      StackMap locals:
      StackMap stack:
            iload 2 /* oldMask */
            invokestatic android.os.StrictMode.setThreadPolicyMask:(I)V
        end local 2 // int oldMask
        15: .line 582
            goto 25
        16: .line 583
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2
            aconst_null
            astore 3
        17: new java.io.FileOutputStream
            dup
            aload 0 /* filename */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/lang/String;)V
            astore 4 /* fos */
        start local 4 // java.io.FileOutputStream fos
        18: .line 584
            aload 4 /* fos */
            aload 1 /* content */
            invokevirtual java.io.FileOutputStream.write:([B)V
        19: .line 585
            aload 4 /* fos */
            ifnull 25
            aload 4 /* fos */
            invokevirtual java.io.FileOutputStream.close:()V
            goto 25
      StackMap locals: java.lang.String byte[] java.lang.Throwable java.lang.Throwable java.io.FileOutputStream
      StackMap stack: java.lang.Throwable
        20: astore 2
            aload 4 /* fos */
            ifnull 21
            aload 4 /* fos */
            invokevirtual java.io.FileOutputStream.close:()V
        end local 4 // java.io.FileOutputStream fos
      StackMap locals:
      StackMap stack:
        21: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        22: astore 3
            aload 2
            ifnonnull 23
            aload 3
            astore 2
            goto 24
      StackMap locals:
      StackMap stack:
        23: aload 2
            aload 3
            if_acmpeq 24
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        24: aload 2
            athrow
        25: .line 587
      StackMap locals:
      StackMap stack:
            return
        end local 1 // byte[] content
        end local 0 // java.lang.String filename
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   26     0  filename  Ljava/lang/String;
            0   26     1   content  [B
            2   15     2   oldMask  I
            4    7     5       fos  Ljava/io/FileOutputStream;
           18   21     4       fos  Ljava/io/FileOutputStream;
      Exception table:
        from    to  target  type
           4     5       6  any
           3     8       8  any
           2    11      11  any
          18    19      20  any
          17    22      22  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      filename  
      content   

  public static void stringToFile(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String filename
        start local 1 // java.lang.String string
         0: .line 597
            aload 0 /* filename */
            aload 1 /* string */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            invokestatic android.os.FileUtils.bytesToFile:(Ljava/lang/String;[B)V
         1: .line 598
            return
        end local 1 // java.lang.String string
        end local 0 // java.lang.String filename
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0  filename  Ljava/lang/String;
            0    2     1    string  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      filename  
      string    

  public static long checksumCrc32(java.io.File);
    descriptor: (Ljava/io/File;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // java.io.File file
         0: .line 608
            new java.util.zip.CRC32
            dup
            invokespecial java.util.zip.CRC32.<init>:()V
            astore 1 /* checkSummer */
        start local 1 // java.util.zip.CRC32 checkSummer
         1: .line 609
            aconst_null
            astore 2 /* cis */
        start local 2 // java.util.zip.CheckedInputStream cis
         2: .line 612
            new java.util.zip.CheckedInputStream
            dup
            new java.io.FileInputStream
            dup
            aload 0 /* file */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            aload 1 /* checkSummer */
            invokespecial java.util.zip.CheckedInputStream.<init>:(Ljava/io/InputStream;Ljava/util/zip/Checksum;)V
            astore 2 /* cis */
         3: .line 613
            sipush 128
            newarray 8
            astore 3 /* buf */
        start local 3 // byte[] buf
         4: .line 614
      StackMap locals: java.util.zip.CRC32 java.util.zip.CheckedInputStream byte[]
      StackMap stack:
            aload 2 /* cis */
            aload 3 /* buf */
            invokevirtual java.util.zip.CheckedInputStream.read:([B)I
            ifge 4
         5: .line 617
            aload 1 /* checkSummer */
            invokevirtual java.util.zip.CRC32.getValue:()J
            lstore 5
         6: .line 619
            aload 2 /* cis */
            ifnull 10
         7: .line 621
            aload 2 /* cis */
            invokevirtual java.util.zip.CheckedInputStream.close:()V
         8: .line 622
            goto 10
      StackMap locals: java.io.File java.util.zip.CRC32 java.util.zip.CheckedInputStream byte[] top long
      StackMap stack: java.io.IOException
         9: pop
        10: .line 617
      StackMap locals:
      StackMap stack:
            lload 5
            lreturn
        end local 3 // byte[] buf
        11: .line 618
      StackMap locals: java.io.File java.util.zip.CRC32 java.util.zip.CheckedInputStream
      StackMap stack: java.lang.Throwable
            astore 4
        12: .line 619
            aload 2 /* cis */
            ifnull 16
        13: .line 621
            aload 2 /* cis */
            invokevirtual java.util.zip.CheckedInputStream.close:()V
        14: .line 622
            goto 16
      StackMap locals: java.io.File java.util.zip.CRC32 java.util.zip.CheckedInputStream top java.lang.Throwable
      StackMap stack: java.io.IOException
        15: pop
        16: .line 625
      StackMap locals:
      StackMap stack:
            aload 4
            athrow
        end local 2 // java.util.zip.CheckedInputStream cis
        end local 1 // java.util.zip.CRC32 checkSummer
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   17     0         file  Ljava/io/File;
            1   17     1  checkSummer  Ljava/util/zip/CRC32;
            2   17     2          cis  Ljava/util/zip/CheckedInputStream;
            4   11     3          buf  [B
      Exception table:
        from    to  target  type
           7     8       9  Class java.io.IOException
           2     6      11  any
          13    14      15  Class java.io.IOException
    Exceptions:
      throws java.io.FileNotFoundException, java.io.IOException
    MethodParameters:
      Name  Flags
      file  

  public static boolean deleteOlderFiles(java.io.File, int, long);
    descriptor: (Ljava/io/File;IJ)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // java.io.File dir
        start local 1 // int minCount
        start local 2 // long minAgeMs
         0: .line 637
            iload 1 /* minCount */
            iflt 1
            lload 2 /* minAgeMs */
            lconst_0
            lcmp
            ifge 2
         1: .line 638
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Constraints must be positive or 0"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 641
      StackMap locals:
      StackMap stack:
            aload 0 /* dir */
            invokevirtual java.io.File.listFiles:()[Ljava/io/File;
            astore 4 /* files */
        start local 4 // java.io.File[] files
         3: .line 642
            aload 4 /* files */
            ifnonnull 4
            iconst_0
            ireturn
         4: .line 645
      StackMap locals: java.io.File[]
      StackMap stack:
            aload 4 /* files */
            new android.os.FileUtils$1
            dup
            invokespecial android.os.FileUtils$1.<init>:()V
            invokestatic java.util.Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V
         5: .line 653
            iconst_0
            istore 5 /* deleted */
        start local 5 // boolean deleted
         6: .line 654
            iload 1 /* minCount */
            istore 6 /* i */
        start local 6 // int i
         7: goto 15
         8: .line 655
      StackMap locals: int int
      StackMap stack:
            aload 4 /* files */
            iload 6 /* i */
            aaload
            astore 7 /* file */
        start local 7 // java.io.File file
         9: .line 658
            invokestatic java.lang.System.currentTimeMillis:()J
            aload 7 /* file */
            invokevirtual java.io.File.lastModified:()J
            lsub
            lstore 8 /* age */
        start local 8 // long age
        10: .line 659
            lload 8 /* age */
            lload 2 /* minAgeMs */
            lcmp
            ifle 14
        11: .line 660
            aload 7 /* file */
            invokevirtual java.io.File.delete:()Z
            ifeq 14
        12: .line 661
            ldc "FileUtils"
            new java.lang.StringBuilder
            dup
            ldc "Deleted old file "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* file */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        13: .line 662
            iconst_1
            istore 5 /* deleted */
        end local 8 // long age
        end local 7 // java.io.File file
        14: .line 654
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 6 /* i */
            aload 4 /* files */
            arraylength
            if_icmplt 8
        end local 6 // int i
        16: .line 666
            iload 5 /* deleted */
            ireturn
        end local 5 // boolean deleted
        end local 4 // java.io.File[] files
        end local 2 // long minAgeMs
        end local 1 // int minCount
        end local 0 // java.io.File dir
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0       dir  Ljava/io/File;
            0   17     1  minCount  I
            0   17     2  minAgeMs  J
            3   17     4     files  [Ljava/io/File;
            6   17     5   deleted  Z
            7   16     6         i  I
            9   14     7      file  Ljava/io/File;
           10   14     8       age  J
    MethodParameters:
          Name  Flags
      dir       
      minCount  
      minAgeMs  

  public static boolean contains(java.io.File[], java.io.File);
    descriptor: ([Ljava/io/File;Ljava/io/File;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // java.io.File[] dirs
        start local 1 // java.io.File file
         0: .line 678
            aload 0 /* dirs */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 5
      StackMap locals: java.io.File[] java.io.File top int int java.io.File[]
      StackMap stack:
         1: aload 5
            iload 3
            aaload
            astore 2 /* dir */
        start local 2 // java.io.File dir
         2: .line 679
            aload 2 /* dir */
            aload 1 /* file */
            invokestatic android.os.FileUtils.contains:(Ljava/io/File;Ljava/io/File;)Z
            ifeq 4
         3: .line 680
            iconst_1
            ireturn
        end local 2 // java.io.File dir
         4: .line 678
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 1
         6: .line 683
            iconst_0
            ireturn
        end local 1 // java.io.File file
        end local 0 // java.io.File[] dirs
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  dirs  [Ljava/io/File;
            0    7     1  file  Ljava/io/File;
            2    4     2   dir  Ljava/io/File;
    MethodParameters:
      Name  Flags
      dirs  
      file  

  public static boolean contains(java.io.File, java.io.File);
    descriptor: (Ljava/io/File;Ljava/io/File;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.File dir
        start local 1 // java.io.File file
         0: .line 695
            aload 0 /* dir */
            ifnull 1
            aload 1 /* file */
            ifnonnull 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
         2: .line 696
      StackMap locals:
      StackMap stack:
            aload 0 /* dir */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            aload 1 /* file */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            invokestatic android.os.FileUtils.contains:(Ljava/lang/String;Ljava/lang/String;)Z
            ireturn
        end local 1 // java.io.File file
        end local 0 // java.io.File dir
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   dir  Ljava/io/File;
            0    3     1  file  Ljava/io/File;
    MethodParameters:
      Name  Flags
      dir   
      file  

  public static boolean contains(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String dirPath
        start local 1 // java.lang.String filePath
         0: .line 700
            aload 0 /* dirPath */
            aload 1 /* filePath */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 701
            iconst_1
            ireturn
         2: .line 703
      StackMap locals:
      StackMap stack:
            aload 0 /* dirPath */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 4
         3: .line 704
            new java.lang.StringBuilder
            dup
            aload 0 /* dirPath */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 0 /* dirPath */
         4: .line 706
      StackMap locals:
      StackMap stack:
            aload 1 /* filePath */
            aload 0 /* dirPath */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ireturn
        end local 1 // java.lang.String filePath
        end local 0 // java.lang.String dirPath
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0   dirPath  Ljava/lang/String;
            0    5     1  filePath  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      dirPath   
      filePath  

  public static boolean deleteContentsAndDir(java.io.File);
    descriptor: (Ljava/io/File;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.io.File dir
         0: .line 710
            aload 0 /* dir */
            invokestatic android.os.FileUtils.deleteContents:(Ljava/io/File;)Z
            ifeq 2
         1: .line 711
            aload 0 /* dir */
            invokevirtual java.io.File.delete:()Z
            ireturn
         2: .line 713
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // java.io.File dir
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   dir  Ljava/io/File;
    MethodParameters:
      Name  Flags
      dir   

  public static boolean deleteContents(java.io.File);
    descriptor: (Ljava/io/File;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // java.io.File dir
         0: .line 718
            aload 0 /* dir */
            invokevirtual java.io.File.listFiles:()[Ljava/io/File;
            astore 1 /* files */
        start local 1 // java.io.File[] files
         1: .line 719
            iconst_1
            istore 2 /* success */
        start local 2 // boolean success
         2: .line 720
            aload 1 /* files */
            ifnull 12
         3: .line 721
            aload 1 /* files */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 11
      StackMap locals: java.io.File java.io.File[] int top int int java.io.File[]
      StackMap stack:
         4: aload 6
            iload 4
            aaload
            astore 3 /* file */
        start local 3 // java.io.File file
         5: .line 722
            aload 3 /* file */
            invokevirtual java.io.File.isDirectory:()Z
            ifeq 7
         6: .line 723
            iload 2 /* success */
            aload 3 /* file */
            invokestatic android.os.FileUtils.deleteContents:(Ljava/io/File;)Z
            iand
            istore 2 /* success */
         7: .line 725
      StackMap locals: java.io.File java.io.File[] int java.io.File int int java.io.File[]
      StackMap stack:
            aload 3 /* file */
            invokevirtual java.io.File.delete:()Z
            ifne 10
         8: .line 726
            ldc "FileUtils"
            new java.lang.StringBuilder
            dup
            ldc "Failed to delete "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* file */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         9: .line 727
            iconst_0
            istore 2 /* success */
        end local 3 // java.io.File file
        10: .line 721
      StackMap locals: java.io.File java.io.File[] int top int int java.io.File[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        11: iload 4
            iload 5
            if_icmplt 4
        12: .line 731
      StackMap locals: java.io.File java.io.File[] int
      StackMap stack:
            iload 2 /* success */
            ireturn
        end local 2 // boolean success
        end local 1 // java.io.File[] files
        end local 0 // java.io.File dir
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0      dir  Ljava/io/File;
            1   13     1    files  [Ljava/io/File;
            2   13     2  success  Z
            5   10     3     file  Ljava/io/File;
    MethodParameters:
      Name  Flags
      dir   

  private static boolean isValidExtFilenameChar(char);
    descriptor: (C)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // char c
         0: .line 735
            iload 0 /* c */
            lookupswitch { // 2
                    0: 1
                   47: 1
              default: 2
          }
         1: .line 738
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 740
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 0 // char c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     c  C
    MethodParameters:
      Name  Flags
      c     

  public static boolean isValidExtFilename(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String name
         0: .line 748
            aload 0 /* name */
            ifnull 1
            aload 0 /* name */
            aload 0 /* name */
            invokestatic android.os.FileUtils.buildValidExtFilename:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public static java.lang.String buildValidExtFilename(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.lang.String name
         0: .line 756
            aload 0 /* name */
            invokestatic android.text.TextUtils.isEmpty:(Ljava/lang/CharSequence;)Z
            ifne 1
            ldc "."
            aload 0 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 1
            ldc ".."
            aload 0 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 757
      StackMap locals:
      StackMap stack:
            ldc "(invalid)"
            areturn
         2: .line 759
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* name */
            invokevirtual java.lang.String.length:()I
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 1 /* res */
        start local 1 // java.lang.StringBuilder res
         3: .line 760
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: goto 11
         5: .line 761
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 0 /* name */
            iload 2 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 3 /* c */
        start local 3 // char c
         6: .line 762
            iload 3 /* c */
            invokestatic android.os.FileUtils.isValidExtFilenameChar:(C)Z
            ifeq 9
         7: .line 763
            aload 1 /* res */
            iload 3 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         8: .line 764
            goto 10
         9: .line 765
      StackMap locals: int
      StackMap stack:
            aload 1 /* res */
            bipush 95
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 3 // char c
        10: .line 760
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 2 /* i */
            aload 0 /* name */
            invokevirtual java.lang.String.length:()I
            if_icmplt 5
        end local 2 // int i
        12: .line 768
            aload 1 /* res */
            sipush 255
            invokestatic android.os.FileUtils.trimFilename:(Ljava/lang/StringBuilder;I)V
        13: .line 769
            aload 1 /* res */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder res
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  name  Ljava/lang/String;
            3   14     1   res  Ljava/lang/StringBuilder;
            4   12     2     i  I
            6   10     3     c  C
    MethodParameters:
      Name  Flags
      name  

  private static boolean isValidFatFilenameChar(char);
    descriptor: (C)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char c
         0: .line 773
            iload 0 /* c */
            iflt 2
            iload 0 /* c */
            bipush 31
            if_icmpgt 2
         1: .line 774
            iconst_0
            ireturn
         2: .line 776
      StackMap locals:
      StackMap stack:
            iload 0 /* c */
            lookupswitch { // 10
                   34: 3
                   42: 3
                   47: 3
                   58: 3
                   60: 3
                   62: 3
                   63: 3
                   92: 3
                  124: 3
                  127: 3
              default: 4
          }
         3: .line 787
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         4: .line 789
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 0 // char c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     c  C
    MethodParameters:
      Name  Flags
      c     

  public static boolean isValidFatFilename(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String name
         0: .line 797
            aload 0 /* name */
            ifnull 1
            aload 0 /* name */
            aload 0 /* name */
            invokestatic android.os.FileUtils.buildValidFatFilename:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public static java.lang.String buildValidFatFilename(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.lang.String name
         0: .line 805
            aload 0 /* name */
            invokestatic android.text.TextUtils.isEmpty:(Ljava/lang/CharSequence;)Z
            ifne 1
            ldc "."
            aload 0 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 1
            ldc ".."
            aload 0 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 806
      StackMap locals:
      StackMap stack:
            ldc "(invalid)"
            areturn
         2: .line 808
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* name */
            invokevirtual java.lang.String.length:()I
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 1 /* res */
        start local 1 // java.lang.StringBuilder res
         3: .line 809
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: goto 11
         5: .line 810
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 0 /* name */
            iload 2 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 3 /* c */
        start local 3 // char c
         6: .line 811
            iload 3 /* c */
            invokestatic android.os.FileUtils.isValidFatFilenameChar:(C)Z
            ifeq 9
         7: .line 812
            aload 1 /* res */
            iload 3 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         8: .line 813
            goto 10
         9: .line 814
      StackMap locals: int
      StackMap stack:
            aload 1 /* res */
            bipush 95
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 3 // char c
        10: .line 809
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 2 /* i */
            aload 0 /* name */
            invokevirtual java.lang.String.length:()I
            if_icmplt 5
        end local 2 // int i
        12: .line 819
            aload 1 /* res */
            sipush 255
            invokestatic android.os.FileUtils.trimFilename:(Ljava/lang/StringBuilder;I)V
        13: .line 820
            aload 1 /* res */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder res
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  name  Ljava/lang/String;
            3   14     1   res  Ljava/lang/StringBuilder;
            4   12     2     i  I
            6   10     3     c  C
    MethodParameters:
      Name  Flags
      name  

  public static java.lang.String trimFilename(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.String str
        start local 1 // int maxBytes
         0: .line 825
            new java.lang.StringBuilder
            dup
            aload 0 /* str */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 2 /* res */
        start local 2 // java.lang.StringBuilder res
         1: .line 826
            aload 2 /* res */
            iload 1 /* maxBytes */
            invokestatic android.os.FileUtils.trimFilename:(Ljava/lang/StringBuilder;I)V
         2: .line 827
            aload 2 /* res */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder res
        end local 1 // int maxBytes
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0       str  Ljava/lang/String;
            0    3     1  maxBytes  I
            1    3     2       res  Ljava/lang/StringBuilder;
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.android.internal.annotations.VisibleForTesting()
    MethodParameters:
          Name  Flags
      str       
      maxBytes  

  private static void trimFilename(java.lang.StringBuilder, int);
    descriptor: (Ljava/lang/StringBuilder;I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.StringBuilder res
        start local 1 // int maxBytes
         0: .line 831
            aload 0 /* res */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            astore 2 /* raw */
        start local 2 // byte[] raw
         1: .line 832
            aload 2 /* raw */
            arraylength
            iload 1 /* maxBytes */
            if_icmple 8
         2: .line 833
            iinc 1 /* maxBytes */ -3
         3: .line 834
            goto 6
         4: .line 835
      StackMap locals: byte[]
      StackMap stack:
            aload 0 /* res */
            aload 0 /* res */
            invokevirtual java.lang.StringBuilder.length:()I
            iconst_2
            idiv
            invokevirtual java.lang.StringBuilder.deleteCharAt:(I)Ljava/lang/StringBuilder;
            pop
         5: .line 836
            aload 0 /* res */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            astore 2 /* raw */
         6: .line 834
      StackMap locals:
      StackMap stack:
            aload 2 /* raw */
            arraylength
            iload 1 /* maxBytes */
            if_icmpgt 4
         7: .line 838
            aload 0 /* res */
            aload 0 /* res */
            invokevirtual java.lang.StringBuilder.length:()I
            iconst_2
            idiv
            ldc "..."
            invokevirtual java.lang.StringBuilder.insert:(ILjava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 840
      StackMap locals:
      StackMap stack:
            return
        end local 2 // byte[] raw
        end local 1 // int maxBytes
        end local 0 // java.lang.StringBuilder res
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0       res  Ljava/lang/StringBuilder;
            0    9     1  maxBytes  I
            1    9     2       raw  [B
    MethodParameters:
          Name  Flags
      res       
      maxBytes  

  public static java.lang.String rewriteAfterRename(java.io.File, java.io.File, java.lang.String);
    descriptor: (Ljava/io/File;Ljava/io/File;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // java.io.File beforeDir
        start local 1 // java.io.File afterDir
        start local 2 // java.lang.String path
         0: .line 843
            aload 2 /* path */
            ifnonnull 1
            aconst_null
            areturn
         1: .line 844
      StackMap locals:
      StackMap stack:
            aload 0 /* beforeDir */
            aload 1 /* afterDir */
            new java.io.File
            dup
            aload 2 /* path */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokestatic android.os.FileUtils.rewriteAfterRename:(Ljava/io/File;Ljava/io/File;Ljava/io/File;)Ljava/io/File;
            astore 3 /* result */
        start local 3 // java.io.File result
         2: .line 845
            aload 3 /* result */
            ifnull 3
            aload 3 /* result */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            goto 4
      StackMap locals: java.io.File
      StackMap stack:
         3: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
         4: areturn
        end local 3 // java.io.File result
        end local 2 // java.lang.String path
        end local 1 // java.io.File afterDir
        end local 0 // java.io.File beforeDir
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0  beforeDir  Ljava/io/File;
            0    5     1   afterDir  Ljava/io/File;
            0    5     2       path  Ljava/lang/String;
            2    5     3     result  Ljava/io/File;
    MethodParameters:
           Name  Flags
      beforeDir  
      afterDir   
      path       

  public static java.lang.String[] rewriteAfterRename(java.io.File, java.io.File, java.lang.String[]);
    descriptor: (Ljava/io/File;Ljava/io/File;[Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // java.io.File beforeDir
        start local 1 // java.io.File afterDir
        start local 2 // java.lang.String[] paths
         0: .line 849
            aload 2 /* paths */
            ifnonnull 1
            aconst_null
            areturn
         1: .line 850
      StackMap locals:
      StackMap stack:
            aload 2 /* paths */
            arraylength
            anewarray java.lang.String
            astore 3 /* result */
        start local 3 // java.lang.String[] result
         2: .line 851
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 6
         4: .line 852
      StackMap locals: java.lang.String[] int
      StackMap stack:
            aload 3 /* result */
            iload 4 /* i */
            aload 0 /* beforeDir */
            aload 1 /* afterDir */
            aload 2 /* paths */
            iload 4 /* i */
            aaload
            invokestatic android.os.FileUtils.rewriteAfterRename:(Ljava/io/File;Ljava/io/File;Ljava/lang/String;)Ljava/lang/String;
            aastore
         5: .line 851
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 4 /* i */
            aload 2 /* paths */
            arraylength
            if_icmplt 4
        end local 4 // int i
         7: .line 854
            aload 3 /* result */
            areturn
        end local 3 // java.lang.String[] result
        end local 2 // java.lang.String[] paths
        end local 1 // java.io.File afterDir
        end local 0 // java.io.File beforeDir
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0  beforeDir  Ljava/io/File;
            0    8     1   afterDir  Ljava/io/File;
            0    8     2      paths  [Ljava/lang/String;
            2    8     3     result  [Ljava/lang/String;
            3    7     4          i  I
    MethodParameters:
           Name  Flags
      beforeDir  
      afterDir   
      paths      

  public static java.io.File rewriteAfterRename(java.io.File, java.io.File, java.io.File);
    descriptor: (Ljava/io/File;Ljava/io/File;Ljava/io/File;)Ljava/io/File;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // java.io.File beforeDir
        start local 1 // java.io.File afterDir
        start local 2 // java.io.File file
         0: .line 863
            aload 2 /* file */
            ifnull 1
            aload 0 /* beforeDir */
            ifnull 1
            aload 1 /* afterDir */
            ifnonnull 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
            areturn
         2: .line 864
      StackMap locals:
      StackMap stack:
            aload 0 /* beforeDir */
            aload 2 /* file */
            invokestatic android.os.FileUtils.contains:(Ljava/io/File;Ljava/io/File;)Z
            ifeq 7
         3: .line 865
            aload 2 /* file */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
         4: .line 866
            aload 0 /* beforeDir */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
         5: .line 865
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* splice */
        start local 3 // java.lang.String splice
         6: .line 867
            new java.io.File
            dup
            aload 1 /* afterDir */
            aload 3 /* splice */
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            areturn
        end local 3 // java.lang.String splice
         7: .line 869
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.io.File file
        end local 1 // java.io.File afterDir
        end local 0 // java.io.File beforeDir
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0  beforeDir  Ljava/io/File;
            0    8     1   afterDir  Ljava/io/File;
            0    8     2       file  Ljava/io/File;
            6    7     3     splice  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      beforeDir  
      afterDir   
      file       

  private static java.io.File buildUniqueFileWithExtension(java.io.File, java.lang.String, java.lang.String);
    descriptor: (Ljava/io/File;Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // java.io.File parent
        start local 1 // java.lang.String name
        start local 2 // java.lang.String ext
         0: .line 874
            aload 0 /* parent */
            aload 1 /* name */
            aload 2 /* ext */
            invokestatic android.os.FileUtils.buildFile:(Ljava/io/File;Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            astore 3 /* file */
        start local 3 // java.io.File file
         1: .line 877
            iconst_0
            istore 4 /* n */
        start local 4 // int n
         2: .line 878
            goto 6
         3: .line 879
      StackMap locals: java.io.File int
      StackMap stack:
            iload 4 /* n */
            iinc 4 /* n */ 1
            bipush 32
            if_icmplt 5
         4: .line 880
            new java.io.FileNotFoundException
            dup
            ldc "Failed to create unique file"
            invokespecial java.io.FileNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 882
      StackMap locals:
      StackMap stack:
            aload 0 /* parent */
            new java.lang.StringBuilder
            dup
            aload 1 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* n */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* ext */
            invokestatic android.os.FileUtils.buildFile:(Ljava/io/File;Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            astore 3 /* file */
         6: .line 878
      StackMap locals:
      StackMap stack:
            aload 3 /* file */
            invokevirtual java.io.File.exists:()Z
            ifne 3
         7: .line 885
            aload 3 /* file */
            areturn
        end local 4 // int n
        end local 3 // java.io.File file
        end local 2 // java.lang.String ext
        end local 1 // java.lang.String name
        end local 0 // java.io.File parent
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0  parent  Ljava/io/File;
            0    8     1    name  Ljava/lang/String;
            0    8     2     ext  Ljava/lang/String;
            1    8     3    file  Ljava/io/File;
            2    8     4       n  I
    Exceptions:
      throws java.io.FileNotFoundException
    MethodParameters:
        Name  Flags
      parent  
      name    
      ext     

  public static java.io.File buildUniqueFile(java.io.File, java.lang.String, java.lang.String);
    descriptor: (Ljava/io/File;Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // java.io.File parent
        start local 1 // java.lang.String mimeType
        start local 2 // java.lang.String displayName
         0: .line 901
            aload 1 /* mimeType */
            aload 2 /* displayName */
            invokestatic android.os.FileUtils.splitFileName:(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
            astore 3 /* parts */
        start local 3 // java.lang.String[] parts
         1: .line 902
            aload 0 /* parent */
            aload 3 /* parts */
            iconst_0
            aaload
            aload 3 /* parts */
            iconst_1
            aaload
            invokestatic android.os.FileUtils.buildUniqueFileWithExtension:(Ljava/io/File;Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            areturn
        end local 3 // java.lang.String[] parts
        end local 2 // java.lang.String displayName
        end local 1 // java.lang.String mimeType
        end local 0 // java.io.File parent
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0       parent  Ljava/io/File;
            0    2     1     mimeType  Ljava/lang/String;
            0    2     2  displayName  Ljava/lang/String;
            1    2     3        parts  [Ljava/lang/String;
    Exceptions:
      throws java.io.FileNotFoundException
    MethodParameters:
             Name  Flags
      parent       
      mimeType     
      displayName  

  public static java.io.File buildUniqueFile(java.io.File, java.lang.String);
    descriptor: (Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.io.File parent
        start local 1 // java.lang.String displayName
         0: .line 915
            aload 1 /* displayName */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 4 /* lastDot */
        start local 4 // int lastDot
         1: .line 916
            iload 4 /* lastDot */
            iflt 5
         2: .line 917
            aload 1 /* displayName */
            iconst_0
            iload 4 /* lastDot */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 2 /* name */
        start local 2 // java.lang.String name
         3: .line 918
            aload 1 /* displayName */
            iload 4 /* lastDot */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* ext */
        start local 3 // java.lang.String ext
         4: .line 919
            goto 7
        end local 3 // java.lang.String ext
        end local 2 // java.lang.String name
         5: .line 920
      StackMap locals: java.io.File java.lang.String top top int
      StackMap stack:
            aload 1 /* displayName */
            astore 2 /* name */
        start local 2 // java.lang.String name
         6: .line 921
            aconst_null
            astore 3 /* ext */
        start local 3 // java.lang.String ext
         7: .line 924
      StackMap locals: java.io.File java.lang.String java.lang.String java.lang.String int
      StackMap stack:
            aload 0 /* parent */
            aload 2 /* name */
            aload 3 /* ext */
            invokestatic android.os.FileUtils.buildUniqueFileWithExtension:(Ljava/io/File;Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            areturn
        end local 4 // int lastDot
        end local 3 // java.lang.String ext
        end local 2 // java.lang.String name
        end local 1 // java.lang.String displayName
        end local 0 // java.io.File parent
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0       parent  Ljava/io/File;
            0    8     1  displayName  Ljava/lang/String;
            3    5     2         name  Ljava/lang/String;
            6    8     2         name  Ljava/lang/String;
            4    5     3          ext  Ljava/lang/String;
            7    8     3          ext  Ljava/lang/String;
            1    8     4      lastDot  I
    Exceptions:
      throws java.io.FileNotFoundException
    MethodParameters:
             Name  Flags
      parent       
      displayName  

  public static java.lang.String[] splitFileName(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // java.lang.String mimeType
        start local 1 // java.lang.String displayName
         0: .line 937
            ldc "vnd.android.document/directory"
            aload 0 /* mimeType */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         1: .line 938
            aload 1 /* displayName */
            astore 2 /* name */
        start local 2 // java.lang.String name
         2: .line 939
            aconst_null
            astore 3 /* ext */
        start local 3 // java.lang.String ext
         3: .line 940
            goto 23
        end local 3 // java.lang.String ext
        end local 2 // java.lang.String name
         4: .line 944
      StackMap locals:
      StackMap stack:
            aload 1 /* displayName */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 5 /* lastDot */
        start local 5 // int lastDot
         5: .line 945
            iload 5 /* lastDot */
            iflt 12
         6: .line 946
            aload 1 /* displayName */
            iconst_0
            iload 5 /* lastDot */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 2 /* name */
        start local 2 // java.lang.String name
         7: .line 947
            aload 1 /* displayName */
            iload 5 /* lastDot */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* ext */
        start local 3 // java.lang.String ext
         8: .line 948
            invokestatic android.webkit.MimeTypeMap.getSingleton:()Landroid/webkit/MimeTypeMap;
         9: .line 949
            aload 3 /* ext */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
        10: .line 948
            invokevirtual android.webkit.MimeTypeMap.getMimeTypeFromExtension:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* mimeTypeFromExt */
        start local 4 // java.lang.String mimeTypeFromExt
        11: .line 950
            goto 15
        end local 4 // java.lang.String mimeTypeFromExt
        end local 3 // java.lang.String ext
        end local 2 // java.lang.String name
        12: .line 951
      StackMap locals: java.lang.String java.lang.String top top top int
      StackMap stack:
            aload 1 /* displayName */
            astore 2 /* name */
        start local 2 // java.lang.String name
        13: .line 952
            aconst_null
            astore 3 /* ext */
        start local 3 // java.lang.String ext
        14: .line 953
            aconst_null
            astore 4 /* mimeTypeFromExt */
        start local 4 // java.lang.String mimeTypeFromExt
        15: .line 956
      StackMap locals: java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String int
      StackMap stack:
            aload 4 /* mimeTypeFromExt */
            ifnonnull 17
        16: .line 957
            ldc "application/octet-stream"
            astore 4 /* mimeTypeFromExt */
        17: .line 960
      StackMap locals:
      StackMap stack:
            invokestatic android.webkit.MimeTypeMap.getSingleton:()Landroid/webkit/MimeTypeMap;
        18: .line 961
            aload 0 /* mimeType */
        19: .line 960
            invokevirtual android.webkit.MimeTypeMap.getExtensionFromMimeType:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* extFromMimeType */
        start local 6 // java.lang.String extFromMimeType
        20: .line 962
            aload 0 /* mimeType */
            aload 4 /* mimeTypeFromExt */
            invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifne 23
            aload 3 /* ext */
            aload 6 /* extFromMimeType */
            invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifne 23
        21: .line 966
            aload 1 /* displayName */
            astore 2 /* name */
        22: .line 967
            aload 6 /* extFromMimeType */
            astore 3 /* ext */
        end local 6 // java.lang.String extFromMimeType
        end local 5 // int lastDot
        end local 4 // java.lang.String mimeTypeFromExt
        23: .line 971
      StackMap locals:
      StackMap stack:
            aload 3 /* ext */
            ifnonnull 25
        24: .line 972
            ldc ""
            astore 3 /* ext */
        25: .line 975
      StackMap locals:
      StackMap stack:
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            aload 2 /* name */
            aastore
            dup
            iconst_1
            aload 3 /* ext */
            aastore
            areturn
        end local 3 // java.lang.String ext
        end local 2 // java.lang.String name
        end local 1 // java.lang.String displayName
        end local 0 // java.lang.String mimeType
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   26     0         mimeType  Ljava/lang/String;
            0   26     1      displayName  Ljava/lang/String;
            2    4     2             name  Ljava/lang/String;
            7   12     2             name  Ljava/lang/String;
           13   26     2             name  Ljava/lang/String;
            3    4     3              ext  Ljava/lang/String;
            8   12     3              ext  Ljava/lang/String;
           14   26     3              ext  Ljava/lang/String;
           11   12     4  mimeTypeFromExt  Ljava/lang/String;
           15   23     4  mimeTypeFromExt  Ljava/lang/String;
            5   23     5          lastDot  I
           20   23     6  extFromMimeType  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      mimeType     
      displayName  

  private static java.io.File buildFile(java.io.File, java.lang.String, java.lang.String);
    descriptor: (Ljava/io/File;Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // java.io.File parent
        start local 1 // java.lang.String name
        start local 2 // java.lang.String ext
         0: .line 979
            aload 2 /* ext */
            invokestatic android.text.TextUtils.isEmpty:(Ljava/lang/CharSequence;)Z
            ifeq 2
         1: .line 980
            new java.io.File
            dup
            aload 0 /* parent */
            aload 1 /* name */
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            areturn
         2: .line 982
      StackMap locals:
      StackMap stack:
            new java.io.File
            dup
            aload 0 /* parent */
            new java.lang.StringBuilder
            dup
            aload 1 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* ext */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            areturn
        end local 2 // java.lang.String ext
        end local 1 // java.lang.String name
        end local 0 // java.io.File parent
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  parent  Ljava/io/File;
            0    3     1    name  Ljava/lang/String;
            0    3     2     ext  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      parent  
      name    
      ext     

  public static java.lang.String[] listOrEmpty(java.io.File);
    descriptor: (Ljava/io/File;)[Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
         0: .line 987
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tEmptyArray cannot be resolved to a variable\n\tEmptyArray cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    MethodParameters:
      Name  Flags
      dir   

  public static java.io.File[] listFilesOrEmpty(java.io.File);
    descriptor: (Ljava/io/File;)[Ljava/io/File;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // java.io.File dir
         0: .line 997
            aload 0 /* dir */
            ifnonnull 1
            getstatic android.os.FileUtils.EMPTY:[Ljava/io/File;
            areturn
         1: .line 998
      StackMap locals:
      StackMap stack:
            aload 0 /* dir */
            invokevirtual java.io.File.listFiles:()[Ljava/io/File;
            astore 1 /* res */
        start local 1 // java.io.File[] res
         2: .line 999
            aload 1 /* res */
            ifnull 4
         3: .line 1000
            aload 1 /* res */
            areturn
         4: .line 1002
      StackMap locals: java.io.File[]
      StackMap stack:
            getstatic android.os.FileUtils.EMPTY:[Ljava/io/File;
            areturn
        end local 1 // java.io.File[] res
        end local 0 // java.io.File dir
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0   dir  Ljava/io/File;
            2    5     1   res  [Ljava/io/File;
    MethodParameters:
      Name  Flags
      dir   

  public static java.io.File[] listFilesOrEmpty(java.io.File, java.io.FilenameFilter);
    descriptor: (Ljava/io/File;Ljava/io/FilenameFilter;)[Ljava/io/File;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.io.File dir
        start local 1 // java.io.FilenameFilter filter
         0: .line 1007
            aload 0 /* dir */
            ifnonnull 1
            getstatic android.os.FileUtils.EMPTY:[Ljava/io/File;
            areturn
         1: .line 1008
      StackMap locals:
      StackMap stack:
            aload 0 /* dir */
            aload 1 /* filter */
            invokevirtual java.io.File.listFiles:(Ljava/io/FilenameFilter;)[Ljava/io/File;
            astore 2 /* res */
        start local 2 // java.io.File[] res
         2: .line 1009
            aload 2 /* res */
            ifnull 4
         3: .line 1010
            aload 2 /* res */
            areturn
         4: .line 1012
      StackMap locals: java.io.File[]
      StackMap stack:
            getstatic android.os.FileUtils.EMPTY:[Ljava/io/File;
            areturn
        end local 2 // java.io.File[] res
        end local 1 // java.io.FilenameFilter filter
        end local 0 // java.io.File dir
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0     dir  Ljava/io/File;
            0    5     1  filter  Ljava/io/FilenameFilter;
            2    5     2     res  [Ljava/io/File;
    MethodParameters:
        Name  Flags
      dir     
      filter  

  public static java.io.File newFileOrNull(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/io/File;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String path
         0: .line 1017
            aload 0 /* path */
            ifnull 1
            new java.io.File
            dup
            aload 0 /* path */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: java.io.File
         2: areturn
        end local 0 // java.lang.String path
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  path  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      path  

  public static java.io.File createDir(java.io.File, java.lang.String);
    descriptor: (Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.io.File baseDir
        start local 1 // java.lang.String name
         0: .line 1026
            new java.io.File
            dup
            aload 0 /* baseDir */
            aload 1 /* name */
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 2 /* dir */
        start local 2 // java.io.File dir
         1: .line 1028
            aload 2 /* dir */
            invokevirtual java.io.File.exists:()Z
            ifeq 5
         2: .line 1029
            aload 2 /* dir */
            invokevirtual java.io.File.isDirectory:()Z
            ifeq 3
            aload 2 /* dir */
            goto 4
      StackMap locals: java.io.File
      StackMap stack:
         3: aconst_null
      StackMap locals:
      StackMap stack: java.io.File
         4: areturn
         5: .line 1032
      StackMap locals:
      StackMap stack:
            aload 2 /* dir */
            invokevirtual java.io.File.mkdir:()Z
            ifeq 6
            aload 2 /* dir */
            goto 7
      StackMap locals:
      StackMap stack:
         6: aconst_null
      StackMap locals:
      StackMap stack: java.io.File
         7: areturn
        end local 2 // java.io.File dir
        end local 1 // java.lang.String name
        end local 0 // java.io.File baseDir
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0  baseDir  Ljava/io/File;
            0    8     1     name  Ljava/lang/String;
            1    8     2      dir  Ljava/io/File;
    MethodParameters:
         Name  Flags
      baseDir  
      name     

  public static long roundStorageSize(long);
    descriptor: (J)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // long size
         0: .line 1041
            lconst_1
            lstore 2 /* val */
        start local 2 // long val
         1: .line 1042
            lconst_1
            lstore 4 /* pow */
        start local 4 // long pow
         2: .line 1043
            goto 7
         3: .line 1044
      StackMap locals: long long
      StackMap stack:
            lload 2 /* val */
            iconst_1
            lshl
            lstore 2 /* val */
         4: .line 1045
            lload 2 /* val */
            ldc 512
            lcmp
            ifle 7
         5: .line 1046
            lconst_1
            lstore 2 /* val */
         6: .line 1047
            lload 4 /* pow */
            ldc 1000
            lmul
            lstore 4 /* pow */
         7: .line 1043
      StackMap locals:
      StackMap stack:
            lload 2 /* val */
            lload 4 /* pow */
            lmul
            lload 0 /* size */
            lcmp
            iflt 3
         8: .line 1050
            lload 2 /* val */
            lload 4 /* pow */
            lmul
            lreturn
        end local 4 // long pow
        end local 2 // long val
        end local 0 // long size
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  size  J
            1    9     2   val  J
            2    9     4   pow  J
    MethodParameters:
      Name  Flags
      size  
}
SourceFile: "FileUtils.java"
NestMembers:
  android.os.FileUtils$1  android.os.FileUtils$MemoryPipe  android.os.FileUtils$NoImagePreloadHolder  android.os.FileUtils$ProgressListener
InnerClasses:
  android.os.FileUtils$1
  public MemoryPipe = android.os.FileUtils$MemoryPipe of android.os.FileUtils
  private NoImagePreloadHolder = android.os.FileUtils$NoImagePreloadHolder of android.os.FileUtils
  public abstract ProgressListener = android.os.FileUtils$ProgressListener of android.os.FileUtils