final class com.mongodb.client.gridfs.GridFSBucketImpl implements com.mongodb.client.gridfs.GridFSBucket
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.mongodb.client.gridfs.GridFSBucketImpl
  super_class: java.lang.Object
{
  private static final int DEFAULT_CHUNKSIZE_BYTES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 261120

  private final java.lang.String bucketName;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int chunkSizeBytes;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.client.MongoCollection<com.mongodb.client.gridfs.model.GridFSFile> filesCollection;
    descriptor: Lcom/mongodb/client/MongoCollection;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lcom/mongodb/client/MongoCollection<Lcom/mongodb/client/gridfs/model/GridFSFile;>;

  private final com.mongodb.client.MongoCollection<org.bson.Document> chunksCollection;
    descriptor: Lcom/mongodb/client/MongoCollection;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lcom/mongodb/client/MongoCollection<Lorg/bson/Document;>;

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

  private volatile boolean checkedIndexes;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  void <init>(com.mongodb.client.MongoDatabase);
    descriptor: (Lcom/mongodb/client/MongoDatabase;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.MongoDatabase database
         0: .line 65
            aload 0 /* this */
            aload 1 /* database */
            ldc "fs"
            invokespecial com.mongodb.client.gridfs.GridFSBucketImpl.<init>:(Lcom/mongodb/client/MongoDatabase;Ljava/lang/String;)V
         1: .line 66
            return
        end local 1 // com.mongodb.client.MongoDatabase database
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    2     1  database  Lcom/mongodb/client/MongoDatabase;
    MethodParameters:
          Name  Flags
      database  final

  void <init>(com.mongodb.client.MongoDatabase, java.lang.String);
    descriptor: (Lcom/mongodb/client/MongoDatabase;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.MongoDatabase database
        start local 2 // java.lang.String bucketName
         0: .line 69
            aload 0 /* this */
            ldc "bucketName"
            aload 2 /* bucketName */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            ldc 261120
         1: .line 70
            ldc "database"
            aload 1 /* database */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.client.MongoDatabase
            aload 2 /* bucketName */
            invokestatic com.mongodb.client.gridfs.GridFSBucketImpl.getFilesCollection:(Lcom/mongodb/client/MongoDatabase;Ljava/lang/String;)Lcom/mongodb/client/MongoCollection;
         2: .line 71
            aload 1 /* database */
            aload 2 /* bucketName */
            invokestatic com.mongodb.client.gridfs.GridFSBucketImpl.getChunksCollection:(Lcom/mongodb/client/MongoDatabase;Ljava/lang/String;)Lcom/mongodb/client/MongoCollection;
            iconst_0
            invokespecial com.mongodb.client.gridfs.GridFSBucketImpl.<init>:(Ljava/lang/String;ILcom/mongodb/client/MongoCollection;Lcom/mongodb/client/MongoCollection;Z)V
         3: .line 72
            return
        end local 2 // java.lang.String bucketName
        end local 1 // com.mongodb.client.MongoDatabase database
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    4     1    database  Lcom/mongodb/client/MongoDatabase;
            0    4     2  bucketName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      database    final
      bucketName  final

  void <init>(java.lang.String, int, com.mongodb.client.MongoCollection<com.mongodb.client.gridfs.model.GridFSFile>, com.mongodb.client.MongoCollection<org.bson.Document>, );
    descriptor: (Ljava/lang/String;ILcom/mongodb/client/MongoCollection;Lcom/mongodb/client/MongoCollection;Z)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=6
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // java.lang.String bucketName
        start local 2 // int chunkSizeBytes
        start local 3 // com.mongodb.client.MongoCollection filesCollection
        start local 4 // com.mongodb.client.MongoCollection chunksCollection
        start local 5 // boolean disableMD5
         0: .line 74
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 76
            aload 0 /* this */
            ldc "bucketName"
            aload 1 /* bucketName */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            putfield com.mongodb.client.gridfs.GridFSBucketImpl.bucketName:Ljava/lang/String;
         2: .line 77
            aload 0 /* this */
            iload 2 /* chunkSizeBytes */
            putfield com.mongodb.client.gridfs.GridFSBucketImpl.chunkSizeBytes:I
         3: .line 78
            aload 0 /* this */
            ldc "filesCollection"
            aload 3 /* filesCollection */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.client.MongoCollection
            putfield com.mongodb.client.gridfs.GridFSBucketImpl.filesCollection:Lcom/mongodb/client/MongoCollection;
         4: .line 79
            aload 0 /* this */
            ldc "chunksCollection"
            aload 4 /* chunksCollection */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.client.MongoCollection
            putfield com.mongodb.client.gridfs.GridFSBucketImpl.chunksCollection:Lcom/mongodb/client/MongoCollection;
         5: .line 80
            aload 0 /* this */
            iload 5 /* disableMD5 */
            putfield com.mongodb.client.gridfs.GridFSBucketImpl.disableMD5:Z
         6: .line 81
            return
        end local 5 // boolean disableMD5
        end local 4 // com.mongodb.client.MongoCollection chunksCollection
        end local 3 // com.mongodb.client.MongoCollection filesCollection
        end local 2 // int chunkSizeBytes
        end local 1 // java.lang.String bucketName
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0              this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    7     1        bucketName  Ljava/lang/String;
            0    7     2    chunkSizeBytes  I
            0    7     3   filesCollection  Lcom/mongodb/client/MongoCollection<Lcom/mongodb/client/gridfs/model/GridFSFile;>;
            0    7     4  chunksCollection  Lcom/mongodb/client/MongoCollection<Lorg/bson/Document;>;
            0    7     5        disableMD5  Z
    Signature: (Ljava/lang/String;ILcom/mongodb/client/MongoCollection<Lcom/mongodb/client/gridfs/model/GridFSFile;>;Lcom/mongodb/client/MongoCollection<Lorg/bson/Document;>;Z)V
    MethodParameters:
                  Name  Flags
      bucketName        final
      chunkSizeBytes    final
      filesCollection   final
      chunksCollection  final
      disableMD5        final

  public java.lang.String getBucketName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
         0: .line 85
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.bucketName:Ljava/lang/String;
            areturn
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;

  public int getChunkSizeBytes();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
         0: .line 90
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.chunkSizeBytes:I
            ireturn
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;

  public com.mongodb.ReadPreference getReadPreference();
    descriptor: ()Lcom/mongodb/ReadPreference;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
         0: .line 95
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.filesCollection:Lcom/mongodb/client/MongoCollection;
            invokeinterface com.mongodb.client.MongoCollection.getReadPreference:()Lcom/mongodb/ReadPreference;
            areturn
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;

  public com.mongodb.WriteConcern getWriteConcern();
    descriptor: ()Lcom/mongodb/WriteConcern;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
         0: .line 100
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.filesCollection:Lcom/mongodb/client/MongoCollection;
            invokeinterface com.mongodb.client.MongoCollection.getWriteConcern:()Lcom/mongodb/WriteConcern;
            areturn
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;

  public com.mongodb.ReadConcern getReadConcern();
    descriptor: ()Lcom/mongodb/ReadConcern;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
         0: .line 105
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.filesCollection:Lcom/mongodb/client/MongoCollection;
            invokeinterface com.mongodb.client.MongoCollection.getReadConcern:()Lcom/mongodb/ReadConcern;
            areturn
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;

  public boolean getDisableMD5();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
         0: .line 110
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.disableMD5:Z
            ireturn
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;

  public com.mongodb.client.gridfs.GridFSBucket withChunkSizeBytes(int);
    descriptor: (I)Lcom/mongodb/client/gridfs/GridFSBucket;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // int chunkSizeBytes
         0: .line 115
            new com.mongodb.client.gridfs.GridFSBucketImpl
            dup
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.bucketName:Ljava/lang/String;
            iload 1 /* chunkSizeBytes */
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.filesCollection:Lcom/mongodb/client/MongoCollection;
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.chunksCollection:Lcom/mongodb/client/MongoCollection;
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.disableMD5:Z
            invokespecial com.mongodb.client.gridfs.GridFSBucketImpl.<init>:(Ljava/lang/String;ILcom/mongodb/client/MongoCollection;Lcom/mongodb/client/MongoCollection;Z)V
            areturn
        end local 1 // int chunkSizeBytes
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    1     1  chunkSizeBytes  I
    MethodParameters:
                Name  Flags
      chunkSizeBytes  final

  public com.mongodb.client.gridfs.GridFSBucket withReadPreference(com.mongodb.ReadPreference);
    descriptor: (Lcom/mongodb/ReadPreference;)Lcom/mongodb/client/gridfs/GridFSBucket;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.ReadPreference readPreference
         0: .line 120
            new com.mongodb.client.gridfs.GridFSBucketImpl
            dup
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.bucketName:Ljava/lang/String;
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.chunkSizeBytes:I
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.filesCollection:Lcom/mongodb/client/MongoCollection;
            aload 1 /* readPreference */
            invokeinterface com.mongodb.client.MongoCollection.withReadPreference:(Lcom/mongodb/ReadPreference;)Lcom/mongodb/client/MongoCollection;
         1: .line 121
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.chunksCollection:Lcom/mongodb/client/MongoCollection;
            aload 1 /* readPreference */
            invokeinterface com.mongodb.client.MongoCollection.withReadPreference:(Lcom/mongodb/ReadPreference;)Lcom/mongodb/client/MongoCollection;
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.disableMD5:Z
         2: .line 120
            invokespecial com.mongodb.client.gridfs.GridFSBucketImpl.<init>:(Ljava/lang/String;ILcom/mongodb/client/MongoCollection;Lcom/mongodb/client/MongoCollection;Z)V
            areturn
        end local 1 // com.mongodb.ReadPreference readPreference
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    3     1  readPreference  Lcom/mongodb/ReadPreference;
    MethodParameters:
                Name  Flags
      readPreference  final

  public com.mongodb.client.gridfs.GridFSBucket withWriteConcern(com.mongodb.WriteConcern);
    descriptor: (Lcom/mongodb/WriteConcern;)Lcom/mongodb/client/gridfs/GridFSBucket;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.WriteConcern writeConcern
         0: .line 126
            new com.mongodb.client.gridfs.GridFSBucketImpl
            dup
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.bucketName:Ljava/lang/String;
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.chunkSizeBytes:I
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.filesCollection:Lcom/mongodb/client/MongoCollection;
            aload 1 /* writeConcern */
            invokeinterface com.mongodb.client.MongoCollection.withWriteConcern:(Lcom/mongodb/WriteConcern;)Lcom/mongodb/client/MongoCollection;
         1: .line 127
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.chunksCollection:Lcom/mongodb/client/MongoCollection;
            aload 1 /* writeConcern */
            invokeinterface com.mongodb.client.MongoCollection.withWriteConcern:(Lcom/mongodb/WriteConcern;)Lcom/mongodb/client/MongoCollection;
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.disableMD5:Z
         2: .line 126
            invokespecial com.mongodb.client.gridfs.GridFSBucketImpl.<init>:(Ljava/lang/String;ILcom/mongodb/client/MongoCollection;Lcom/mongodb/client/MongoCollection;Z)V
            areturn
        end local 1 // com.mongodb.WriteConcern writeConcern
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    3     1  writeConcern  Lcom/mongodb/WriteConcern;
    MethodParameters:
              Name  Flags
      writeConcern  final

  public com.mongodb.client.gridfs.GridFSBucket withReadConcern(com.mongodb.ReadConcern);
    descriptor: (Lcom/mongodb/ReadConcern;)Lcom/mongodb/client/gridfs/GridFSBucket;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.ReadConcern readConcern
         0: .line 132
            new com.mongodb.client.gridfs.GridFSBucketImpl
            dup
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.bucketName:Ljava/lang/String;
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.chunkSizeBytes:I
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.filesCollection:Lcom/mongodb/client/MongoCollection;
            aload 1 /* readConcern */
            invokeinterface com.mongodb.client.MongoCollection.withReadConcern:(Lcom/mongodb/ReadConcern;)Lcom/mongodb/client/MongoCollection;
         1: .line 133
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.chunksCollection:Lcom/mongodb/client/MongoCollection;
            aload 1 /* readConcern */
            invokeinterface com.mongodb.client.MongoCollection.withReadConcern:(Lcom/mongodb/ReadConcern;)Lcom/mongodb/client/MongoCollection;
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.disableMD5:Z
         2: .line 132
            invokespecial com.mongodb.client.gridfs.GridFSBucketImpl.<init>:(Ljava/lang/String;ILcom/mongodb/client/MongoCollection;Lcom/mongodb/client/MongoCollection;Z)V
            areturn
        end local 1 // com.mongodb.ReadConcern readConcern
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    3     1  readConcern  Lcom/mongodb/ReadConcern;
    MethodParameters:
             Name  Flags
      readConcern  final

  public com.mongodb.client.gridfs.GridFSBucket withDisableMD5(boolean);
    descriptor: (Z)Lcom/mongodb/client/gridfs/GridFSBucket;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // boolean disableMD5
         0: .line 138
            new com.mongodb.client.gridfs.GridFSBucketImpl
            dup
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.bucketName:Ljava/lang/String;
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.chunkSizeBytes:I
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.filesCollection:Lcom/mongodb/client/MongoCollection;
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.chunksCollection:Lcom/mongodb/client/MongoCollection;
            iload 1 /* disableMD5 */
            invokespecial com.mongodb.client.gridfs.GridFSBucketImpl.<init>:(Ljava/lang/String;ILcom/mongodb/client/MongoCollection;Lcom/mongodb/client/MongoCollection;Z)V
            areturn
        end local 1 // boolean disableMD5
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    1     1  disableMD5  Z
    MethodParameters:
            Name  Flags
      disableMD5  final

  public com.mongodb.client.gridfs.GridFSUploadStream openUploadStream(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/mongodb/client/gridfs/GridFSUploadStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // java.lang.String filename
         0: .line 143
            aload 0 /* this */
            new org.bson.BsonObjectId
            dup
            invokespecial org.bson.BsonObjectId.<init>:()V
            aload 1 /* filename */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.openUploadStream:(Lorg/bson/BsonValue;Ljava/lang/String;)Lcom/mongodb/client/gridfs/GridFSUploadStream;
            areturn
        end local 1 // java.lang.String filename
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    1     1  filename  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      filename  final

  public com.mongodb.client.gridfs.GridFSUploadStream openUploadStream(java.lang.String, com.mongodb.client.gridfs.model.GridFSUploadOptions);
    descriptor: (Ljava/lang/String;Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;)Lcom/mongodb/client/gridfs/GridFSUploadStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // java.lang.String filename
        start local 2 // com.mongodb.client.gridfs.model.GridFSUploadOptions options
         0: .line 148
            aload 0 /* this */
            new org.bson.BsonObjectId
            dup
            invokespecial org.bson.BsonObjectId.<init>:()V
            aload 1 /* filename */
            aload 2 /* options */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.openUploadStream:(Lorg/bson/BsonValue;Ljava/lang/String;Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;)Lcom/mongodb/client/gridfs/GridFSUploadStream;
            areturn
        end local 2 // com.mongodb.client.gridfs.model.GridFSUploadOptions options
        end local 1 // java.lang.String filename
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    1     1  filename  Ljava/lang/String;
            0    1     2   options  Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;
    MethodParameters:
          Name  Flags
      filename  final
      options   final

  public com.mongodb.client.gridfs.GridFSUploadStream openUploadStream(org.bson.BsonValue, java.lang.String);
    descriptor: (Lorg/bson/BsonValue;Ljava/lang/String;)Lcom/mongodb/client/gridfs/GridFSUploadStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // org.bson.BsonValue id
        start local 2 // java.lang.String filename
         0: .line 153
            aload 0 /* this */
            aload 1 /* id */
            aload 2 /* filename */
            new com.mongodb.client.gridfs.model.GridFSUploadOptions
            dup
            invokespecial com.mongodb.client.gridfs.model.GridFSUploadOptions.<init>:()V
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.openUploadStream:(Lorg/bson/BsonValue;Ljava/lang/String;Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;)Lcom/mongodb/client/gridfs/GridFSUploadStream;
            areturn
        end local 2 // java.lang.String filename
        end local 1 // org.bson.BsonValue id
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    1     1        id  Lorg/bson/BsonValue;
            0    1     2  filename  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      id        final
      filename  final

  public com.mongodb.client.gridfs.GridFSUploadStream openUploadStream(org.bson.BsonValue, java.lang.String, com.mongodb.client.gridfs.model.GridFSUploadOptions);
    descriptor: (Lorg/bson/BsonValue;Ljava/lang/String;Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;)Lcom/mongodb/client/gridfs/GridFSUploadStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // org.bson.BsonValue id
        start local 2 // java.lang.String filename
        start local 3 // com.mongodb.client.gridfs.model.GridFSUploadOptions options
         0: .line 158
            aload 0 /* this */
            aconst_null
            aload 1 /* id */
            aload 2 /* filename */
            aload 3 /* options */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.createGridFSUploadStream:(Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;Ljava/lang/String;Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;)Lcom/mongodb/client/gridfs/GridFSUploadStream;
            areturn
        end local 3 // com.mongodb.client.gridfs.model.GridFSUploadOptions options
        end local 2 // java.lang.String filename
        end local 1 // org.bson.BsonValue id
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    1     1        id  Lorg/bson/BsonValue;
            0    1     2  filename  Ljava/lang/String;
            0    1     3   options  Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;
    MethodParameters:
          Name  Flags
      id        final
      filename  final
      options   final

  public com.mongodb.client.gridfs.GridFSUploadStream openUploadStream(com.mongodb.client.ClientSession, java.lang.String);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;)Lcom/mongodb/client/gridfs/GridFSUploadStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.String filename
         0: .line 163
            aload 0 /* this */
            aload 1 /* clientSession */
            new org.bson.BsonObjectId
            dup
            invokespecial org.bson.BsonObjectId.<init>:()V
            aload 2 /* filename */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.openUploadStream:(Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;Ljava/lang/String;)Lcom/mongodb/client/gridfs/GridFSUploadStream;
            areturn
        end local 2 // java.lang.String filename
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2       filename  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      clientSession  final
      filename       final

  public com.mongodb.client.gridfs.GridFSUploadStream openUploadStream(com.mongodb.client.ClientSession, java.lang.String, com.mongodb.client.gridfs.model.GridFSUploadOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;)Lcom/mongodb/client/gridfs/GridFSUploadStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.String filename
        start local 3 // com.mongodb.client.gridfs.model.GridFSUploadOptions options
         0: .line 169
            aload 0 /* this */
            aload 1 /* clientSession */
            new org.bson.BsonObjectId
            dup
            invokespecial org.bson.BsonObjectId.<init>:()V
            aload 2 /* filename */
            aload 3 /* options */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.openUploadStream:(Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;Ljava/lang/String;Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;)Lcom/mongodb/client/gridfs/GridFSUploadStream;
            areturn
        end local 3 // com.mongodb.client.gridfs.model.GridFSUploadOptions options
        end local 2 // java.lang.String filename
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2       filename  Ljava/lang/String;
            0    1     3        options  Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;
    MethodParameters:
               Name  Flags
      clientSession  final
      filename       final
      options        final

  public com.mongodb.client.gridfs.GridFSUploadStream openUploadStream(com.mongodb.client.ClientSession, org.bson.types.ObjectId, java.lang.String);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/types/ObjectId;Ljava/lang/String;)Lcom/mongodb/client/gridfs/GridFSUploadStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.types.ObjectId id
        start local 3 // java.lang.String filename
         0: .line 174
            aload 0 /* this */
            aload 1 /* clientSession */
            new org.bson.BsonObjectId
            dup
            aload 2 /* id */
            invokespecial org.bson.BsonObjectId.<init>:(Lorg/bson/types/ObjectId;)V
            aload 3 /* filename */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.openUploadStream:(Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;Ljava/lang/String;)Lcom/mongodb/client/gridfs/GridFSUploadStream;
            areturn
        end local 3 // java.lang.String filename
        end local 2 // org.bson.types.ObjectId id
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2             id  Lorg/bson/types/ObjectId;
            0    1     3       filename  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      clientSession  final
      id             final
      filename       final

  public com.mongodb.client.gridfs.GridFSUploadStream openUploadStream(com.mongodb.client.ClientSession, org.bson.BsonValue, java.lang.String);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;Ljava/lang/String;)Lcom/mongodb/client/gridfs/GridFSUploadStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.BsonValue id
        start local 3 // java.lang.String filename
         0: .line 179
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* id */
            aload 3 /* filename */
            new com.mongodb.client.gridfs.model.GridFSUploadOptions
            dup
            invokespecial com.mongodb.client.gridfs.model.GridFSUploadOptions.<init>:()V
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.openUploadStream:(Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;Ljava/lang/String;Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;)Lcom/mongodb/client/gridfs/GridFSUploadStream;
            areturn
        end local 3 // java.lang.String filename
        end local 2 // org.bson.BsonValue id
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2             id  Lorg/bson/BsonValue;
            0    1     3       filename  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      clientSession  final
      id             final
      filename       final

  public com.mongodb.client.gridfs.GridFSUploadStream openUploadStream(com.mongodb.client.ClientSession, org.bson.BsonValue, java.lang.String, com.mongodb.client.gridfs.model.GridFSUploadOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;Ljava/lang/String;Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;)Lcom/mongodb/client/gridfs/GridFSUploadStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.BsonValue id
        start local 3 // java.lang.String filename
        start local 4 // com.mongodb.client.gridfs.model.GridFSUploadOptions options
         0: .line 185
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 186
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* id */
            aload 3 /* filename */
            aload 4 /* options */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.createGridFSUploadStream:(Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;Ljava/lang/String;Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;)Lcom/mongodb/client/gridfs/GridFSUploadStream;
            areturn
        end local 4 // com.mongodb.client.gridfs.model.GridFSUploadOptions options
        end local 3 // java.lang.String filename
        end local 2 // org.bson.BsonValue id
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2             id  Lorg/bson/BsonValue;
            0    2     3       filename  Ljava/lang/String;
            0    2     4        options  Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;
    MethodParameters:
               Name  Flags
      clientSession  final
      id             final
      filename       final
      options        final

  private com.mongodb.client.gridfs.GridFSUploadStream createGridFSUploadStream(com.mongodb.client.ClientSession, org.bson.BsonValue, java.lang.String, com.mongodb.client.gridfs.model.GridFSUploadOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;Ljava/lang/String;Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;)Lcom/mongodb/client/gridfs/GridFSUploadStream;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=7, args_size=5
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.BsonValue id
        start local 3 // java.lang.String filename
        start local 4 // com.mongodb.client.gridfs.model.GridFSUploadOptions options
         0: .line 191
            ldc "options"
            aload 4 /* options */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 192
            aload 4 /* options */
            invokevirtual com.mongodb.client.gridfs.model.GridFSUploadOptions.getChunkSizeBytes:()Ljava/lang/Integer;
            astore 5 /* chunkSizeBytes */
        start local 5 // java.lang.Integer chunkSizeBytes
         2: .line 193
            aload 5 /* chunkSizeBytes */
            ifnonnull 3
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.chunkSizeBytes:I
            goto 4
      StackMap locals: java.lang.Integer
      StackMap stack:
         3: aload 5 /* chunkSizeBytes */
            invokevirtual java.lang.Integer.intValue:()I
      StackMap locals:
      StackMap stack: int
         4: istore 6 /* chunkSize */
        start local 6 // int chunkSize
         5: .line 194
            aload 0 /* this */
            aload 1 /* clientSession */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.checkCreateIndex:(Lcom/mongodb/client/ClientSession;)V
         6: .line 195
            new com.mongodb.client.gridfs.GridFSUploadStreamImpl
            dup
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.filesCollection:Lcom/mongodb/client/MongoCollection;
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.chunksCollection:Lcom/mongodb/client/MongoCollection;
            aload 2 /* id */
            aload 3 /* filename */
            iload 6 /* chunkSize */
         7: .line 196
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.disableMD5:Z
            aload 4 /* options */
            invokevirtual com.mongodb.client.gridfs.model.GridFSUploadOptions.getMetadata:()Lorg/bson/Document;
         8: .line 195
            invokespecial com.mongodb.client.gridfs.GridFSUploadStreamImpl.<init>:(Lcom/mongodb/client/ClientSession;Lcom/mongodb/client/MongoCollection;Lcom/mongodb/client/MongoCollection;Lorg/bson/BsonValue;Ljava/lang/String;IZLorg/bson/Document;)V
            areturn
        end local 6 // int chunkSize
        end local 5 // java.lang.Integer chunkSizeBytes
        end local 4 // com.mongodb.client.gridfs.model.GridFSUploadOptions options
        end local 3 // java.lang.String filename
        end local 2 // org.bson.BsonValue id
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    9     1   clientSession  Lcom/mongodb/client/ClientSession;
            0    9     2              id  Lorg/bson/BsonValue;
            0    9     3        filename  Ljava/lang/String;
            0    9     4         options  Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;
            2    9     5  chunkSizeBytes  Ljava/lang/Integer;
            5    9     6       chunkSize  I
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
    MethodParameters:
               Name  Flags
      clientSession  final
      id             final
      filename       final
      options        final

  public org.bson.types.ObjectId uploadFromStream(java.lang.String, java.io.InputStream);
    descriptor: (Ljava/lang/String;Ljava/io/InputStream;)Lorg/bson/types/ObjectId;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // java.lang.String filename
        start local 2 // java.io.InputStream source
         0: .line 201
            aload 0 /* this */
            aload 1 /* filename */
            aload 2 /* source */
            new com.mongodb.client.gridfs.model.GridFSUploadOptions
            dup
            invokespecial com.mongodb.client.gridfs.model.GridFSUploadOptions.<init>:()V
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.uploadFromStream:(Ljava/lang/String;Ljava/io/InputStream;Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;)Lorg/bson/types/ObjectId;
            areturn
        end local 2 // java.io.InputStream source
        end local 1 // java.lang.String filename
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    1     1  filename  Ljava/lang/String;
            0    1     2    source  Ljava/io/InputStream;
    MethodParameters:
          Name  Flags
      filename  final
      source    final

  public org.bson.types.ObjectId uploadFromStream(java.lang.String, java.io.InputStream, com.mongodb.client.gridfs.model.GridFSUploadOptions);
    descriptor: (Ljava/lang/String;Ljava/io/InputStream;Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;)Lorg/bson/types/ObjectId;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // java.lang.String filename
        start local 2 // java.io.InputStream source
        start local 3 // com.mongodb.client.gridfs.model.GridFSUploadOptions options
         0: .line 206
            new org.bson.types.ObjectId
            dup
            invokespecial org.bson.types.ObjectId.<init>:()V
            astore 4 /* id */
        start local 4 // org.bson.types.ObjectId id
         1: .line 207
            aload 0 /* this */
            new org.bson.BsonObjectId
            dup
            aload 4 /* id */
            invokespecial org.bson.BsonObjectId.<init>:(Lorg/bson/types/ObjectId;)V
            aload 1 /* filename */
            aload 2 /* source */
            aload 3 /* options */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.uploadFromStream:(Lorg/bson/BsonValue;Ljava/lang/String;Ljava/io/InputStream;Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;)V
         2: .line 208
            aload 4 /* id */
            areturn
        end local 4 // org.bson.types.ObjectId id
        end local 3 // com.mongodb.client.gridfs.model.GridFSUploadOptions options
        end local 2 // java.io.InputStream source
        end local 1 // java.lang.String filename
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    3     1  filename  Ljava/lang/String;
            0    3     2    source  Ljava/io/InputStream;
            0    3     3   options  Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;
            1    3     4        id  Lorg/bson/types/ObjectId;
    MethodParameters:
          Name  Flags
      filename  final
      source    final
      options   final

  public void uploadFromStream(org.bson.BsonValue, java.lang.String, java.io.InputStream);
    descriptor: (Lorg/bson/BsonValue;Ljava/lang/String;Ljava/io/InputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // org.bson.BsonValue id
        start local 2 // java.lang.String filename
        start local 3 // java.io.InputStream source
         0: .line 213
            aload 0 /* this */
            aload 1 /* id */
            aload 2 /* filename */
            aload 3 /* source */
            new com.mongodb.client.gridfs.model.GridFSUploadOptions
            dup
            invokespecial com.mongodb.client.gridfs.model.GridFSUploadOptions.<init>:()V
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.uploadFromStream:(Lorg/bson/BsonValue;Ljava/lang/String;Ljava/io/InputStream;Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;)V
         1: .line 214
            return
        end local 3 // java.io.InputStream source
        end local 2 // java.lang.String filename
        end local 1 // org.bson.BsonValue id
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    2     1        id  Lorg/bson/BsonValue;
            0    2     2  filename  Ljava/lang/String;
            0    2     3    source  Ljava/io/InputStream;
    MethodParameters:
          Name  Flags
      id        final
      filename  final
      source    final

  public void uploadFromStream(org.bson.BsonValue, java.lang.String, java.io.InputStream, com.mongodb.client.gridfs.model.GridFSUploadOptions);
    descriptor: (Lorg/bson/BsonValue;Ljava/lang/String;Ljava/io/InputStream;Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // org.bson.BsonValue id
        start local 2 // java.lang.String filename
        start local 3 // java.io.InputStream source
        start local 4 // com.mongodb.client.gridfs.model.GridFSUploadOptions options
         0: .line 219
            aload 0 /* this */
            aconst_null
            aload 1 /* id */
            aload 2 /* filename */
            aload 3 /* source */
            aload 4 /* options */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.executeUploadFromStream:(Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;Ljava/lang/String;Ljava/io/InputStream;Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;)V
         1: .line 220
            return
        end local 4 // com.mongodb.client.gridfs.model.GridFSUploadOptions options
        end local 3 // java.io.InputStream source
        end local 2 // java.lang.String filename
        end local 1 // org.bson.BsonValue id
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    2     1        id  Lorg/bson/BsonValue;
            0    2     2  filename  Ljava/lang/String;
            0    2     3    source  Ljava/io/InputStream;
            0    2     4   options  Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;
    MethodParameters:
          Name  Flags
      id        final
      filename  final
      source    final
      options   final

  public org.bson.types.ObjectId uploadFromStream(com.mongodb.client.ClientSession, java.lang.String, java.io.InputStream);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/io/InputStream;)Lorg/bson/types/ObjectId;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.String filename
        start local 3 // java.io.InputStream source
         0: .line 224
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filename */
            aload 3 /* source */
            new com.mongodb.client.gridfs.model.GridFSUploadOptions
            dup
            invokespecial com.mongodb.client.gridfs.model.GridFSUploadOptions.<init>:()V
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.uploadFromStream:(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/io/InputStream;Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;)Lorg/bson/types/ObjectId;
            areturn
        end local 3 // java.io.InputStream source
        end local 2 // java.lang.String filename
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2       filename  Ljava/lang/String;
            0    1     3         source  Ljava/io/InputStream;
    MethodParameters:
               Name  Flags
      clientSession  final
      filename       final
      source         final

  public org.bson.types.ObjectId uploadFromStream(com.mongodb.client.ClientSession, java.lang.String, java.io.InputStream, com.mongodb.client.gridfs.model.GridFSUploadOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/io/InputStream;Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;)Lorg/bson/types/ObjectId;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.String filename
        start local 3 // java.io.InputStream source
        start local 4 // com.mongodb.client.gridfs.model.GridFSUploadOptions options
         0: .line 230
            new org.bson.types.ObjectId
            dup
            invokespecial org.bson.types.ObjectId.<init>:()V
            astore 5 /* id */
        start local 5 // org.bson.types.ObjectId id
         1: .line 231
            aload 0 /* this */
            aload 1 /* clientSession */
            new org.bson.BsonObjectId
            dup
            aload 5 /* id */
            invokespecial org.bson.BsonObjectId.<init>:(Lorg/bson/types/ObjectId;)V
            aload 2 /* filename */
            aload 3 /* source */
            aload 4 /* options */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.uploadFromStream:(Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;Ljava/lang/String;Ljava/io/InputStream;Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;)V
         2: .line 232
            aload 5 /* id */
            areturn
        end local 5 // org.bson.types.ObjectId id
        end local 4 // com.mongodb.client.gridfs.model.GridFSUploadOptions options
        end local 3 // java.io.InputStream source
        end local 2 // java.lang.String filename
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    3     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    3     2       filename  Ljava/lang/String;
            0    3     3         source  Ljava/io/InputStream;
            0    3     4        options  Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;
            1    3     5             id  Lorg/bson/types/ObjectId;
    MethodParameters:
               Name  Flags
      clientSession  final
      filename       final
      source         final
      options        final

  public void uploadFromStream(com.mongodb.client.ClientSession, org.bson.BsonValue, java.lang.String, java.io.InputStream);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;Ljava/lang/String;Ljava/io/InputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.BsonValue id
        start local 3 // java.lang.String filename
        start local 4 // java.io.InputStream source
         0: .line 237
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* id */
            aload 3 /* filename */
            aload 4 /* source */
            new com.mongodb.client.gridfs.model.GridFSUploadOptions
            dup
            invokespecial com.mongodb.client.gridfs.model.GridFSUploadOptions.<init>:()V
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.uploadFromStream:(Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;Ljava/lang/String;Ljava/io/InputStream;Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;)V
         1: .line 238
            return
        end local 4 // java.io.InputStream source
        end local 3 // java.lang.String filename
        end local 2 // org.bson.BsonValue id
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2             id  Lorg/bson/BsonValue;
            0    2     3       filename  Ljava/lang/String;
            0    2     4         source  Ljava/io/InputStream;
    MethodParameters:
               Name  Flags
      clientSession  final
      id             final
      filename       final
      source         final

  public void uploadFromStream(com.mongodb.client.ClientSession, org.bson.BsonValue, java.lang.String, java.io.InputStream, com.mongodb.client.gridfs.model.GridFSUploadOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;Ljava/lang/String;Ljava/io/InputStream;Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.BsonValue id
        start local 3 // java.lang.String filename
        start local 4 // java.io.InputStream source
        start local 5 // com.mongodb.client.gridfs.model.GridFSUploadOptions options
         0: .line 243
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 244
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* id */
            aload 3 /* filename */
            aload 4 /* source */
            aload 5 /* options */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.executeUploadFromStream:(Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;Ljava/lang/String;Ljava/io/InputStream;Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;)V
         2: .line 245
            return
        end local 5 // com.mongodb.client.gridfs.model.GridFSUploadOptions options
        end local 4 // java.io.InputStream source
        end local 3 // java.lang.String filename
        end local 2 // org.bson.BsonValue id
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    3     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    3     2             id  Lorg/bson/BsonValue;
            0    3     3       filename  Ljava/lang/String;
            0    3     4         source  Ljava/io/InputStream;
            0    3     5        options  Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;
    MethodParameters:
               Name  Flags
      clientSession  final
      id             final
      filename       final
      source         final
      options        final

  private void executeUploadFromStream(com.mongodb.client.ClientSession, org.bson.BsonValue, java.lang.String, java.io.InputStream, com.mongodb.client.gridfs.model.GridFSUploadOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;Ljava/lang/String;Ljava/io/InputStream;Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=12, args_size=6
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.BsonValue id
        start local 3 // java.lang.String filename
        start local 4 // java.io.InputStream source
        start local 5 // com.mongodb.client.gridfs.model.GridFSUploadOptions options
         0: .line 249
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* id */
            aload 3 /* filename */
            aload 5 /* options */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.createGridFSUploadStream:(Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;Ljava/lang/String;Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;)Lcom/mongodb/client/gridfs/GridFSUploadStream;
            astore 6 /* uploadStream */
        start local 6 // com.mongodb.client.gridfs.GridFSUploadStream uploadStream
         1: .line 250
            aload 5 /* options */
            invokevirtual com.mongodb.client.gridfs.model.GridFSUploadOptions.getChunkSizeBytes:()Ljava/lang/Integer;
            astore 7 /* chunkSizeBytes */
        start local 7 // java.lang.Integer chunkSizeBytes
         2: .line 251
            aload 7 /* chunkSizeBytes */
            ifnonnull 3
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.chunkSizeBytes:I
            goto 4
      StackMap locals: com.mongodb.client.gridfs.GridFSUploadStream java.lang.Integer
      StackMap stack:
         3: aload 7 /* chunkSizeBytes */
            invokevirtual java.lang.Integer.intValue:()I
      StackMap locals:
      StackMap stack: int
         4: istore 8 /* chunkSize */
        start local 8 // int chunkSize
         5: .line 252
            iload 8 /* chunkSize */
            newarray 8
            astore 9 /* buffer */
        start local 9 // byte[] buffer
         6: .line 255
            goto 8
        start local 10 // int len
         7: .line 256
      StackMap locals: int byte[] int
      StackMap stack:
            aload 6 /* uploadStream */
            aload 9 /* buffer */
            iconst_0
            iload 10 /* len */
            invokevirtual com.mongodb.client.gridfs.GridFSUploadStream.write:([BII)V
        end local 10 // int len
         8: .line 255
      StackMap locals:
      StackMap stack:
            aload 4 /* source */
            aload 9 /* buffer */
            invokevirtual java.io.InputStream.read:([B)I
            dup
            istore 10 /* len */
        start local 10 // int len
         9: iconst_m1
            if_icmpne 7
        10: .line 258
            aload 6 /* uploadStream */
            invokevirtual com.mongodb.client.gridfs.GridFSUploadStream.close:()V
        11: .line 259
            goto 15
        end local 10 // int len
      StackMap locals:
      StackMap stack: java.io.IOException
        12: astore 11 /* e */
        start local 11 // java.io.IOException e
        13: .line 260
            aload 6 /* uploadStream */
            invokevirtual com.mongodb.client.gridfs.GridFSUploadStream.abort:()V
        14: .line 261
            new com.mongodb.MongoGridFSException
            dup
            ldc "IOException when reading from the InputStream"
            aload 11 /* e */
            invokespecial com.mongodb.MongoGridFSException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 11 // java.io.IOException e
        start local 10 // int len
        15: .line 263
      StackMap locals: int
      StackMap stack:
            return
        end local 10 // int len
        end local 9 // byte[] buffer
        end local 8 // int chunkSize
        end local 7 // java.lang.Integer chunkSizeBytes
        end local 6 // com.mongodb.client.gridfs.GridFSUploadStream uploadStream
        end local 5 // com.mongodb.client.gridfs.model.GridFSUploadOptions options
        end local 4 // java.io.InputStream source
        end local 3 // java.lang.String filename
        end local 2 // org.bson.BsonValue id
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   16     0            this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0   16     1   clientSession  Lcom/mongodb/client/ClientSession;
            0   16     2              id  Lorg/bson/BsonValue;
            0   16     3        filename  Ljava/lang/String;
            0   16     4          source  Ljava/io/InputStream;
            0   16     5         options  Lcom/mongodb/client/gridfs/model/GridFSUploadOptions;
            1   16     6    uploadStream  Lcom/mongodb/client/gridfs/GridFSUploadStream;
            2   16     7  chunkSizeBytes  Ljava/lang/Integer;
            5   16     8       chunkSize  I
            6   16     9          buffer  [B
            7    8    10             len  I
            9   12    10             len  I
           15   16    10             len  I
           13   15    11               e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           6    11      12  Class java.io.IOException
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
      4:
    MethodParameters:
               Name  Flags
      clientSession  final
      id             final
      filename       final
      source         final
      options        final

  public com.mongodb.client.gridfs.GridFSDownloadStream openDownloadStream(org.bson.types.ObjectId);
    descriptor: (Lorg/bson/types/ObjectId;)Lcom/mongodb/client/gridfs/GridFSDownloadStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // org.bson.types.ObjectId id
         0: .line 267
            aload 0 /* this */
            new org.bson.BsonObjectId
            dup
            aload 1 /* id */
            invokespecial org.bson.BsonObjectId.<init>:(Lorg/bson/types/ObjectId;)V
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.openDownloadStream:(Lorg/bson/BsonValue;)Lcom/mongodb/client/gridfs/GridFSDownloadStream;
            areturn
        end local 1 // org.bson.types.ObjectId id
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    1     1    id  Lorg/bson/types/ObjectId;
    MethodParameters:
      Name  Flags
      id    final

  public com.mongodb.client.gridfs.GridFSDownloadStream openDownloadStream(org.bson.BsonValue);
    descriptor: (Lorg/bson/BsonValue;)Lcom/mongodb/client/gridfs/GridFSDownloadStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // org.bson.BsonValue id
         0: .line 272
            aload 0 /* this */
            aconst_null
            aload 0 /* this */
            aconst_null
            aload 1 /* id */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.getFileInfoById:(Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;)Lcom/mongodb/client/gridfs/model/GridFSFile;
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.createGridFSDownloadStream:(Lcom/mongodb/client/ClientSession;Lcom/mongodb/client/gridfs/model/GridFSFile;)Lcom/mongodb/client/gridfs/GridFSDownloadStream;
            areturn
        end local 1 // org.bson.BsonValue id
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    1     1    id  Lorg/bson/BsonValue;
    MethodParameters:
      Name  Flags
      id    final

  public com.mongodb.client.gridfs.GridFSDownloadStream openDownloadStream(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/mongodb/client/gridfs/GridFSDownloadStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // java.lang.String filename
         0: .line 277
            aload 0 /* this */
            aload 1 /* filename */
            new com.mongodb.client.gridfs.model.GridFSDownloadOptions
            dup
            invokespecial com.mongodb.client.gridfs.model.GridFSDownloadOptions.<init>:()V
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.openDownloadStream:(Ljava/lang/String;Lcom/mongodb/client/gridfs/model/GridFSDownloadOptions;)Lcom/mongodb/client/gridfs/GridFSDownloadStream;
            areturn
        end local 1 // java.lang.String filename
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    1     1  filename  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      filename  final

  public com.mongodb.client.gridfs.GridFSDownloadStream openDownloadStream(java.lang.String, com.mongodb.client.gridfs.model.GridFSDownloadOptions);
    descriptor: (Ljava/lang/String;Lcom/mongodb/client/gridfs/model/GridFSDownloadOptions;)Lcom/mongodb/client/gridfs/GridFSDownloadStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // java.lang.String filename
        start local 2 // com.mongodb.client.gridfs.model.GridFSDownloadOptions options
         0: .line 282
            aload 0 /* this */
            aconst_null
            aload 0 /* this */
            aconst_null
            aload 1 /* filename */
            aload 2 /* options */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.getFileByName:(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/gridfs/model/GridFSDownloadOptions;)Lcom/mongodb/client/gridfs/model/GridFSFile;
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.createGridFSDownloadStream:(Lcom/mongodb/client/ClientSession;Lcom/mongodb/client/gridfs/model/GridFSFile;)Lcom/mongodb/client/gridfs/GridFSDownloadStream;
            areturn
        end local 2 // com.mongodb.client.gridfs.model.GridFSDownloadOptions options
        end local 1 // java.lang.String filename
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    1     1  filename  Ljava/lang/String;
            0    1     2   options  Lcom/mongodb/client/gridfs/model/GridFSDownloadOptions;
    MethodParameters:
          Name  Flags
      filename  final
      options   final

  public com.mongodb.client.gridfs.GridFSDownloadStream openDownloadStream(com.mongodb.client.ClientSession, org.bson.types.ObjectId);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/types/ObjectId;)Lcom/mongodb/client/gridfs/GridFSDownloadStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.types.ObjectId id
         0: .line 287
            aload 0 /* this */
            aload 1 /* clientSession */
            new org.bson.BsonObjectId
            dup
            aload 2 /* id */
            invokespecial org.bson.BsonObjectId.<init>:(Lorg/bson/types/ObjectId;)V
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.openDownloadStream:(Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;)Lcom/mongodb/client/gridfs/GridFSDownloadStream;
            areturn
        end local 2 // org.bson.types.ObjectId id
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2             id  Lorg/bson/types/ObjectId;
    MethodParameters:
               Name  Flags
      clientSession  final
      id             final

  public com.mongodb.client.gridfs.GridFSDownloadStream openDownloadStream(com.mongodb.client.ClientSession, org.bson.BsonValue);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;)Lcom/mongodb/client/gridfs/GridFSDownloadStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.BsonValue id
         0: .line 292
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 293
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* id */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.getFileInfoById:(Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;)Lcom/mongodb/client/gridfs/model/GridFSFile;
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.createGridFSDownloadStream:(Lcom/mongodb/client/ClientSession;Lcom/mongodb/client/gridfs/model/GridFSFile;)Lcom/mongodb/client/gridfs/GridFSDownloadStream;
            areturn
        end local 2 // org.bson.BsonValue id
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2             id  Lorg/bson/BsonValue;
    MethodParameters:
               Name  Flags
      clientSession  final
      id             final

  public com.mongodb.client.gridfs.GridFSDownloadStream openDownloadStream(com.mongodb.client.ClientSession, java.lang.String);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;)Lcom/mongodb/client/gridfs/GridFSDownloadStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.String filename
         0: .line 298
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filename */
            new com.mongodb.client.gridfs.model.GridFSDownloadOptions
            dup
            invokespecial com.mongodb.client.gridfs.model.GridFSDownloadOptions.<init>:()V
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.openDownloadStream:(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/gridfs/model/GridFSDownloadOptions;)Lcom/mongodb/client/gridfs/GridFSDownloadStream;
            areturn
        end local 2 // java.lang.String filename
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2       filename  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      clientSession  final
      filename       final

  public com.mongodb.client.gridfs.GridFSDownloadStream openDownloadStream(com.mongodb.client.ClientSession, java.lang.String, com.mongodb.client.gridfs.model.GridFSDownloadOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/gridfs/model/GridFSDownloadOptions;)Lcom/mongodb/client/gridfs/GridFSDownloadStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.String filename
        start local 3 // com.mongodb.client.gridfs.model.GridFSDownloadOptions options
         0: .line 304
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 305
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filename */
            aload 3 /* options */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.getFileByName:(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/gridfs/model/GridFSDownloadOptions;)Lcom/mongodb/client/gridfs/model/GridFSFile;
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.createGridFSDownloadStream:(Lcom/mongodb/client/ClientSession;Lcom/mongodb/client/gridfs/model/GridFSFile;)Lcom/mongodb/client/gridfs/GridFSDownloadStream;
            areturn
        end local 3 // com.mongodb.client.gridfs.model.GridFSDownloadOptions options
        end local 2 // java.lang.String filename
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2       filename  Ljava/lang/String;
            0    2     3        options  Lcom/mongodb/client/gridfs/model/GridFSDownloadOptions;
    MethodParameters:
               Name  Flags
      clientSession  final
      filename       final
      options        final

  private com.mongodb.client.gridfs.GridFSDownloadStream createGridFSDownloadStream(com.mongodb.client.ClientSession, com.mongodb.client.gridfs.model.GridFSFile);
    descriptor: (Lcom/mongodb/client/ClientSession;Lcom/mongodb/client/gridfs/model/GridFSFile;)Lcom/mongodb/client/gridfs/GridFSDownloadStream;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // com.mongodb.client.gridfs.model.GridFSFile gridFSFile
         0: .line 309
            new com.mongodb.client.gridfs.GridFSDownloadStreamImpl
            dup
            aload 1 /* clientSession */
            aload 2 /* gridFSFile */
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.chunksCollection:Lcom/mongodb/client/MongoCollection;
            invokespecial com.mongodb.client.gridfs.GridFSDownloadStreamImpl.<init>:(Lcom/mongodb/client/ClientSession;Lcom/mongodb/client/gridfs/model/GridFSFile;Lcom/mongodb/client/MongoCollection;)V
            areturn
        end local 2 // com.mongodb.client.gridfs.model.GridFSFile gridFSFile
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2     gridFSFile  Lcom/mongodb/client/gridfs/model/GridFSFile;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
    MethodParameters:
               Name  Flags
      clientSession  final
      gridFSFile     final

  public void downloadToStream(org.bson.types.ObjectId, java.io.OutputStream);
    descriptor: (Lorg/bson/types/ObjectId;Ljava/io/OutputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // org.bson.types.ObjectId id
        start local 2 // java.io.OutputStream destination
         0: .line 314
            aload 0 /* this */
            new org.bson.BsonObjectId
            dup
            aload 1 /* id */
            invokespecial org.bson.BsonObjectId.<init>:(Lorg/bson/types/ObjectId;)V
            aload 2 /* destination */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.downloadToStream:(Lorg/bson/BsonValue;Ljava/io/OutputStream;)V
         1: .line 315
            return
        end local 2 // java.io.OutputStream destination
        end local 1 // org.bson.types.ObjectId id
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    2     1           id  Lorg/bson/types/ObjectId;
            0    2     2  destination  Ljava/io/OutputStream;
    MethodParameters:
             Name  Flags
      id           final
      destination  final

  public void downloadToStream(org.bson.BsonValue, java.io.OutputStream);
    descriptor: (Lorg/bson/BsonValue;Ljava/io/OutputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // org.bson.BsonValue id
        start local 2 // java.io.OutputStream destination
         0: .line 319
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* id */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.openDownloadStream:(Lorg/bson/BsonValue;)Lcom/mongodb/client/gridfs/GridFSDownloadStream;
            aload 2 /* destination */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.downloadToStream:(Lcom/mongodb/client/gridfs/GridFSDownloadStream;Ljava/io/OutputStream;)V
         1: .line 320
            return
        end local 2 // java.io.OutputStream destination
        end local 1 // org.bson.BsonValue id
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    2     1           id  Lorg/bson/BsonValue;
            0    2     2  destination  Ljava/io/OutputStream;
    MethodParameters:
             Name  Flags
      id           final
      destination  final

  public void downloadToStream(java.lang.String, java.io.OutputStream);
    descriptor: (Ljava/lang/String;Ljava/io/OutputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // java.lang.String filename
        start local 2 // java.io.OutputStream destination
         0: .line 324
            aload 0 /* this */
            aload 1 /* filename */
            aload 2 /* destination */
            new com.mongodb.client.gridfs.model.GridFSDownloadOptions
            dup
            invokespecial com.mongodb.client.gridfs.model.GridFSDownloadOptions.<init>:()V
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.downloadToStream:(Ljava/lang/String;Ljava/io/OutputStream;Lcom/mongodb/client/gridfs/model/GridFSDownloadOptions;)V
         1: .line 325
            return
        end local 2 // java.io.OutputStream destination
        end local 1 // java.lang.String filename
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    2     1     filename  Ljava/lang/String;
            0    2     2  destination  Ljava/io/OutputStream;
    MethodParameters:
             Name  Flags
      filename     final
      destination  final

  public void downloadToStream(java.lang.String, java.io.OutputStream, com.mongodb.client.gridfs.model.GridFSDownloadOptions);
    descriptor: (Ljava/lang/String;Ljava/io/OutputStream;Lcom/mongodb/client/gridfs/model/GridFSDownloadOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // java.lang.String filename
        start local 2 // java.io.OutputStream destination
        start local 3 // com.mongodb.client.gridfs.model.GridFSDownloadOptions options
         0: .line 329
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* filename */
            aload 3 /* options */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.openDownloadStream:(Ljava/lang/String;Lcom/mongodb/client/gridfs/model/GridFSDownloadOptions;)Lcom/mongodb/client/gridfs/GridFSDownloadStream;
            aload 2 /* destination */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.downloadToStream:(Lcom/mongodb/client/gridfs/GridFSDownloadStream;Ljava/io/OutputStream;)V
         1: .line 330
            return
        end local 3 // com.mongodb.client.gridfs.model.GridFSDownloadOptions options
        end local 2 // java.io.OutputStream destination
        end local 1 // java.lang.String filename
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    2     1     filename  Ljava/lang/String;
            0    2     2  destination  Ljava/io/OutputStream;
            0    2     3      options  Lcom/mongodb/client/gridfs/model/GridFSDownloadOptions;
    MethodParameters:
             Name  Flags
      filename     final
      destination  final
      options      final

  public void downloadToStream(com.mongodb.client.ClientSession, org.bson.types.ObjectId, java.io.OutputStream);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/types/ObjectId;Ljava/io/OutputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.types.ObjectId id
        start local 3 // java.io.OutputStream destination
         0: .line 334
            aload 0 /* this */
            aload 1 /* clientSession */
            new org.bson.BsonObjectId
            dup
            aload 2 /* id */
            invokespecial org.bson.BsonObjectId.<init>:(Lorg/bson/types/ObjectId;)V
            aload 3 /* destination */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.downloadToStream:(Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;Ljava/io/OutputStream;)V
         1: .line 335
            return
        end local 3 // java.io.OutputStream destination
        end local 2 // org.bson.types.ObjectId id
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2             id  Lorg/bson/types/ObjectId;
            0    2     3    destination  Ljava/io/OutputStream;
    MethodParameters:
               Name  Flags
      clientSession  final
      id             final
      destination    final

  public void downloadToStream(com.mongodb.client.ClientSession, org.bson.BsonValue, java.io.OutputStream);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;Ljava/io/OutputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.BsonValue id
        start local 3 // java.io.OutputStream destination
         0: .line 339
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 340
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* id */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.openDownloadStream:(Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;)Lcom/mongodb/client/gridfs/GridFSDownloadStream;
            aload 3 /* destination */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.downloadToStream:(Lcom/mongodb/client/gridfs/GridFSDownloadStream;Ljava/io/OutputStream;)V
         2: .line 341
            return
        end local 3 // java.io.OutputStream destination
        end local 2 // org.bson.BsonValue id
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    3     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    3     2             id  Lorg/bson/BsonValue;
            0    3     3    destination  Ljava/io/OutputStream;
    MethodParameters:
               Name  Flags
      clientSession  final
      id             final
      destination    final

  public void downloadToStream(com.mongodb.client.ClientSession, java.lang.String, java.io.OutputStream);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/io/OutputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.String filename
        start local 3 // java.io.OutputStream destination
         0: .line 345
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filename */
            aload 3 /* destination */
            new com.mongodb.client.gridfs.model.GridFSDownloadOptions
            dup
            invokespecial com.mongodb.client.gridfs.model.GridFSDownloadOptions.<init>:()V
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.downloadToStream:(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/io/OutputStream;Lcom/mongodb/client/gridfs/model/GridFSDownloadOptions;)V
         1: .line 346
            return
        end local 3 // java.io.OutputStream destination
        end local 2 // java.lang.String filename
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2       filename  Ljava/lang/String;
            0    2     3    destination  Ljava/io/OutputStream;
    MethodParameters:
               Name  Flags
      clientSession  final
      filename       final
      destination    final

  public void downloadToStream(com.mongodb.client.ClientSession, java.lang.String, java.io.OutputStream, com.mongodb.client.gridfs.model.GridFSDownloadOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/io/OutputStream;Lcom/mongodb/client/gridfs/model/GridFSDownloadOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.String filename
        start local 3 // java.io.OutputStream destination
        start local 4 // com.mongodb.client.gridfs.model.GridFSDownloadOptions options
         0: .line 351
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 352
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filename */
            aload 4 /* options */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.openDownloadStream:(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/gridfs/model/GridFSDownloadOptions;)Lcom/mongodb/client/gridfs/GridFSDownloadStream;
            aload 3 /* destination */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.downloadToStream:(Lcom/mongodb/client/gridfs/GridFSDownloadStream;Ljava/io/OutputStream;)V
         2: .line 353
            return
        end local 4 // com.mongodb.client.gridfs.model.GridFSDownloadOptions options
        end local 3 // java.io.OutputStream destination
        end local 2 // java.lang.String filename
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    3     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    3     2       filename  Ljava/lang/String;
            0    3     3    destination  Ljava/io/OutputStream;
            0    3     4        options  Lcom/mongodb/client/gridfs/model/GridFSDownloadOptions;
    MethodParameters:
               Name  Flags
      clientSession  final
      filename       final
      destination    final
      options        final

  public com.mongodb.client.gridfs.GridFSFindIterable find();
    descriptor: ()Lcom/mongodb/client/gridfs/GridFSFindIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
         0: .line 357
            aload 0 /* this */
            aconst_null
            aconst_null
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.createGridFSFindIterable:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;)Lcom/mongodb/client/gridfs/GridFSFindIterable;
            areturn
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;

  public com.mongodb.client.gridfs.GridFSFindIterable find(org.bson.conversions.Bson);
    descriptor: (Lorg/bson/conversions/Bson;)Lcom/mongodb/client/gridfs/GridFSFindIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // org.bson.conversions.Bson filter
         0: .line 362
            ldc "filter"
            aload 1 /* filter */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 363
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.createGridFSFindIterable:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;)Lcom/mongodb/client/gridfs/GridFSFindIterable;
            areturn
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    2     1  filter  Lorg/bson/conversions/Bson;
    MethodParameters:
        Name  Flags
      filter  final

  public com.mongodb.client.gridfs.GridFSFindIterable find(com.mongodb.client.ClientSession);
    descriptor: (Lcom/mongodb/client/ClientSession;)Lcom/mongodb/client/gridfs/GridFSFindIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
         0: .line 368
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 369
            aload 0 /* this */
            aload 1 /* clientSession */
            aconst_null
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.createGridFSFindIterable:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;)Lcom/mongodb/client/gridfs/GridFSFindIterable;
            areturn
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
    MethodParameters:
               Name  Flags
      clientSession  final

  public com.mongodb.client.gridfs.GridFSFindIterable find(com.mongodb.client.ClientSession, org.bson.conversions.Bson);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;)Lcom/mongodb/client/gridfs/GridFSFindIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
         0: .line 374
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 375
            ldc "filter"
            aload 2 /* filter */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 376
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.createGridFSFindIterable:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;)Lcom/mongodb/client/gridfs/GridFSFindIterable;
            areturn
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    3     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    3     2         filter  Lorg/bson/conversions/Bson;
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final

  private com.mongodb.client.gridfs.GridFSFindIterable createGridFSFindIterable(com.mongodb.client.ClientSession, org.bson.conversions.Bson);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;)Lcom/mongodb/client/gridfs/GridFSFindIterable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
         0: .line 380
            new com.mongodb.client.gridfs.GridFSFindIterableImpl
            dup
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.createFindIterable:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;)Lcom/mongodb/client/FindIterable;
            invokespecial com.mongodb.client.gridfs.GridFSFindIterableImpl.<init>:(Lcom/mongodb/client/FindIterable;)V
            areturn
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2         filter  Lorg/bson/conversions/Bson;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
        com.mongodb.lang.Nullable()
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final

  public void delete(org.bson.types.ObjectId);
    descriptor: (Lorg/bson/types/ObjectId;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // org.bson.types.ObjectId id
         0: .line 385
            aload 0 /* this */
            new org.bson.BsonObjectId
            dup
            aload 1 /* id */
            invokespecial org.bson.BsonObjectId.<init>:(Lorg/bson/types/ObjectId;)V
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.delete:(Lorg/bson/BsonValue;)V
         1: .line 386
            return
        end local 1 // org.bson.types.ObjectId id
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    2     1    id  Lorg/bson/types/ObjectId;
    MethodParameters:
      Name  Flags
      id    final

  public void delete(org.bson.BsonValue);
    descriptor: (Lorg/bson/BsonValue;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // org.bson.BsonValue id
         0: .line 390
            aload 0 /* this */
            aconst_null
            aload 1 /* id */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.executeDelete:(Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;)V
         1: .line 391
            return
        end local 1 // org.bson.BsonValue id
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    2     1    id  Lorg/bson/BsonValue;
    MethodParameters:
      Name  Flags
      id    final

  public void delete(com.mongodb.client.ClientSession, org.bson.types.ObjectId);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/types/ObjectId;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.types.ObjectId id
         0: .line 395
            aload 0 /* this */
            aload 1 /* clientSession */
            new org.bson.BsonObjectId
            dup
            aload 2 /* id */
            invokespecial org.bson.BsonObjectId.<init>:(Lorg/bson/types/ObjectId;)V
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.delete:(Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;)V
         1: .line 396
            return
        end local 2 // org.bson.types.ObjectId id
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2             id  Lorg/bson/types/ObjectId;
    MethodParameters:
               Name  Flags
      clientSession  final
      id             final

  public void delete(com.mongodb.client.ClientSession, org.bson.BsonValue);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.BsonValue id
         0: .line 400
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 401
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* id */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.executeDelete:(Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;)V
         2: .line 402
            return
        end local 2 // org.bson.BsonValue id
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    3     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    3     2             id  Lorg/bson/BsonValue;
    MethodParameters:
               Name  Flags
      clientSession  final
      id             final

  private void executeDelete(com.mongodb.client.ClientSession, org.bson.BsonValue);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.BsonValue id
         0: .line 406
            aload 1 /* clientSession */
            ifnull 4
         1: .line 407
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.filesCollection:Lcom/mongodb/client/MongoCollection;
            aload 1 /* clientSession */
            new org.bson.BsonDocument
            dup
            ldc "_id"
            aload 2 /* id */
            invokespecial org.bson.BsonDocument.<init>:(Ljava/lang/String;Lorg/bson/BsonValue;)V
            invokeinterface com.mongodb.client.MongoCollection.deleteOne:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;)Lcom/mongodb/client/result/DeleteResult;
            astore 3 /* result */
        start local 3 // com.mongodb.client.result.DeleteResult result
         2: .line 408
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.chunksCollection:Lcom/mongodb/client/MongoCollection;
            aload 1 /* clientSession */
            new org.bson.BsonDocument
            dup
            ldc "files_id"
            aload 2 /* id */
            invokespecial org.bson.BsonDocument.<init>:(Ljava/lang/String;Lorg/bson/BsonValue;)V
            invokeinterface com.mongodb.client.MongoCollection.deleteMany:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;)Lcom/mongodb/client/result/DeleteResult;
            pop
         3: .line 409
            goto 6
        end local 3 // com.mongodb.client.result.DeleteResult result
         4: .line 410
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.filesCollection:Lcom/mongodb/client/MongoCollection;
            new org.bson.BsonDocument
            dup
            ldc "_id"
            aload 2 /* id */
            invokespecial org.bson.BsonDocument.<init>:(Ljava/lang/String;Lorg/bson/BsonValue;)V
            invokeinterface com.mongodb.client.MongoCollection.deleteOne:(Lorg/bson/conversions/Bson;)Lcom/mongodb/client/result/DeleteResult;
            astore 3 /* result */
        start local 3 // com.mongodb.client.result.DeleteResult result
         5: .line 411
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.chunksCollection:Lcom/mongodb/client/MongoCollection;
            new org.bson.BsonDocument
            dup
            ldc "files_id"
            aload 2 /* id */
            invokespecial org.bson.BsonDocument.<init>:(Ljava/lang/String;Lorg/bson/BsonValue;)V
            invokeinterface com.mongodb.client.MongoCollection.deleteMany:(Lorg/bson/conversions/Bson;)Lcom/mongodb/client/result/DeleteResult;
            pop
         6: .line 414
      StackMap locals: com.mongodb.client.result.DeleteResult
      StackMap stack:
            aload 3 /* result */
            invokevirtual com.mongodb.client.result.DeleteResult.wasAcknowledged:()Z
            ifeq 8
            aload 3 /* result */
            invokevirtual com.mongodb.client.result.DeleteResult.getDeletedCount:()J
            lconst_0
            lcmp
            ifne 8
         7: .line 415
            new com.mongodb.MongoGridFSException
            dup
            ldc "No file found with the id: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* id */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial com.mongodb.MongoGridFSException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 417
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.mongodb.client.result.DeleteResult result
        end local 2 // org.bson.BsonValue id
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    9     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    9     2             id  Lorg/bson/BsonValue;
            2    4     3         result  Lcom/mongodb/client/result/DeleteResult;
            5    9     3         result  Lcom/mongodb/client/result/DeleteResult;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
    MethodParameters:
               Name  Flags
      clientSession  final
      id             final

  public void rename(org.bson.types.ObjectId, java.lang.String);
    descriptor: (Lorg/bson/types/ObjectId;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // org.bson.types.ObjectId id
        start local 2 // java.lang.String newFilename
         0: .line 421
            aload 0 /* this */
            new org.bson.BsonObjectId
            dup
            aload 1 /* id */
            invokespecial org.bson.BsonObjectId.<init>:(Lorg/bson/types/ObjectId;)V
            aload 2 /* newFilename */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.rename:(Lorg/bson/BsonValue;Ljava/lang/String;)V
         1: .line 422
            return
        end local 2 // java.lang.String newFilename
        end local 1 // org.bson.types.ObjectId id
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    2     1           id  Lorg/bson/types/ObjectId;
            0    2     2  newFilename  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      id           final
      newFilename  final

  public void rename(org.bson.BsonValue, java.lang.String);
    descriptor: (Lorg/bson/BsonValue;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // org.bson.BsonValue id
        start local 2 // java.lang.String newFilename
         0: .line 426
            aload 0 /* this */
            aconst_null
            aload 1 /* id */
            aload 2 /* newFilename */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.executeRename:(Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;Ljava/lang/String;)V
         1: .line 427
            return
        end local 2 // java.lang.String newFilename
        end local 1 // org.bson.BsonValue id
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    2     1           id  Lorg/bson/BsonValue;
            0    2     2  newFilename  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      id           final
      newFilename  final

  public void rename(com.mongodb.client.ClientSession, org.bson.types.ObjectId, java.lang.String);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/types/ObjectId;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.types.ObjectId id
        start local 3 // java.lang.String newFilename
         0: .line 431
            aload 0 /* this */
            aload 1 /* clientSession */
            new org.bson.BsonObjectId
            dup
            aload 2 /* id */
            invokespecial org.bson.BsonObjectId.<init>:(Lorg/bson/types/ObjectId;)V
            aload 3 /* newFilename */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.rename:(Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;Ljava/lang/String;)V
         1: .line 432
            return
        end local 3 // java.lang.String newFilename
        end local 2 // org.bson.types.ObjectId id
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2             id  Lorg/bson/types/ObjectId;
            0    2     3    newFilename  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      clientSession  final
      id             final
      newFilename    final

  public void rename(com.mongodb.client.ClientSession, org.bson.BsonValue, java.lang.String);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.BsonValue id
        start local 3 // java.lang.String newFilename
         0: .line 436
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 437
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* id */
            aload 3 /* newFilename */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.executeRename:(Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;Ljava/lang/String;)V
         2: .line 438
            return
        end local 3 // java.lang.String newFilename
        end local 2 // org.bson.BsonValue id
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    3     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    3     2             id  Lorg/bson/BsonValue;
            0    3     3    newFilename  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      clientSession  final
      id             final
      newFilename    final

  private void executeRename(com.mongodb.client.ClientSession, org.bson.BsonValue, java.lang.String);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=12, locals=5, args_size=4
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.BsonValue id
        start local 3 // java.lang.String newFilename
         0: .line 442
            aload 1 /* clientSession */
            ifnull 5
         1: .line 443
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.filesCollection:Lcom/mongodb/client/MongoCollection;
            aload 1 /* clientSession */
            new org.bson.BsonDocument
            dup
            ldc "_id"
            aload 2 /* id */
            invokespecial org.bson.BsonDocument.<init>:(Ljava/lang/String;Lorg/bson/BsonValue;)V
         2: .line 444
            new org.bson.BsonDocument
            dup
            ldc "$set"
            new org.bson.BsonDocument
            dup
            ldc "filename"
            new org.bson.BsonString
            dup
            aload 3 /* newFilename */
            invokespecial org.bson.BsonString.<init>:(Ljava/lang/String;)V
            invokespecial org.bson.BsonDocument.<init>:(Ljava/lang/String;Lorg/bson/BsonValue;)V
            invokespecial org.bson.BsonDocument.<init>:(Ljava/lang/String;Lorg/bson/BsonValue;)V
         3: .line 443
            invokeinterface com.mongodb.client.MongoCollection.updateOne:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;)Lcom/mongodb/client/result/UpdateResult;
            astore 4 /* updateResult */
        start local 4 // com.mongodb.client.result.UpdateResult updateResult
         4: .line 445
            goto 8
        end local 4 // com.mongodb.client.result.UpdateResult updateResult
         5: .line 446
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.filesCollection:Lcom/mongodb/client/MongoCollection;
            new org.bson.BsonDocument
            dup
            ldc "_id"
            aload 2 /* id */
            invokespecial org.bson.BsonDocument.<init>:(Ljava/lang/String;Lorg/bson/BsonValue;)V
         6: .line 447
            new org.bson.BsonDocument
            dup
            ldc "$set"
            new org.bson.BsonDocument
            dup
            ldc "filename"
            new org.bson.BsonString
            dup
            aload 3 /* newFilename */
            invokespecial org.bson.BsonString.<init>:(Ljava/lang/String;)V
            invokespecial org.bson.BsonDocument.<init>:(Ljava/lang/String;Lorg/bson/BsonValue;)V
            invokespecial org.bson.BsonDocument.<init>:(Ljava/lang/String;Lorg/bson/BsonValue;)V
         7: .line 446
            invokeinterface com.mongodb.client.MongoCollection.updateOne:(Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;)Lcom/mongodb/client/result/UpdateResult;
            astore 4 /* updateResult */
        start local 4 // com.mongodb.client.result.UpdateResult updateResult
         8: .line 450
      StackMap locals: com.mongodb.client.result.UpdateResult
      StackMap stack:
            aload 4 /* updateResult */
            invokevirtual com.mongodb.client.result.UpdateResult.wasAcknowledged:()Z
            ifeq 10
            aload 4 /* updateResult */
            invokevirtual com.mongodb.client.result.UpdateResult.getMatchedCount:()J
            lconst_0
            lcmp
            ifne 10
         9: .line 451
            new com.mongodb.MongoGridFSException
            dup
            ldc "No file found with the id: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* id */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial com.mongodb.MongoGridFSException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 453
      StackMap locals:
      StackMap stack:
            return
        end local 4 // com.mongodb.client.result.UpdateResult updateResult
        end local 3 // java.lang.String newFilename
        end local 2 // org.bson.BsonValue id
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0   11     1  clientSession  Lcom/mongodb/client/ClientSession;
            0   11     2             id  Lorg/bson/BsonValue;
            0   11     3    newFilename  Ljava/lang/String;
            4    5     4   updateResult  Lcom/mongodb/client/result/UpdateResult;
            8   11     4   updateResult  Lcom/mongodb/client/result/UpdateResult;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
    MethodParameters:
               Name  Flags
      clientSession  final
      id             final
      newFilename    final

  public void drop();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
         0: .line 457
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.filesCollection:Lcom/mongodb/client/MongoCollection;
            invokeinterface com.mongodb.client.MongoCollection.drop:()V
         1: .line 458
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.chunksCollection:Lcom/mongodb/client/MongoCollection;
            invokeinterface com.mongodb.client.MongoCollection.drop:()V
         2: .line 459
            return
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;

  public void drop(com.mongodb.client.ClientSession);
    descriptor: (Lcom/mongodb/client/ClientSession;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
         0: .line 463
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 464
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.filesCollection:Lcom/mongodb/client/MongoCollection;
            aload 1 /* clientSession */
            invokeinterface com.mongodb.client.MongoCollection.drop:(Lcom/mongodb/client/ClientSession;)V
         2: .line 465
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.chunksCollection:Lcom/mongodb/client/MongoCollection;
            aload 1 /* clientSession */
            invokeinterface com.mongodb.client.MongoCollection.drop:(Lcom/mongodb/client/ClientSession;)V
         3: .line 466
            return
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    4     1  clientSession  Lcom/mongodb/client/ClientSession;
    MethodParameters:
               Name  Flags
      clientSession  final

  public com.mongodb.client.gridfs.GridFSDownloadStream openDownloadStreamByName(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/mongodb/client/gridfs/GridFSDownloadStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // java.lang.String filename
         0: .line 471
            aload 0 /* this */
            aload 1 /* filename */
            new com.mongodb.client.gridfs.model.GridFSDownloadByNameOptions
            dup
            invokespecial com.mongodb.client.gridfs.model.GridFSDownloadByNameOptions.<init>:()V
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.openDownloadStreamByName:(Ljava/lang/String;Lcom/mongodb/client/gridfs/model/GridFSDownloadByNameOptions;)Lcom/mongodb/client/gridfs/GridFSDownloadStream;
            areturn
        end local 1 // java.lang.String filename
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    1     1  filename  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      filename  final

  public com.mongodb.client.gridfs.GridFSDownloadStream openDownloadStreamByName(java.lang.String, com.mongodb.client.gridfs.model.GridFSDownloadByNameOptions);
    descriptor: (Ljava/lang/String;Lcom/mongodb/client/gridfs/model/GridFSDownloadByNameOptions;)Lcom/mongodb/client/gridfs/GridFSDownloadStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // java.lang.String filename
        start local 2 // com.mongodb.client.gridfs.model.GridFSDownloadByNameOptions options
         0: .line 478
            aload 0 /* this */
            aload 1 /* filename */
            new com.mongodb.client.gridfs.model.GridFSDownloadOptions
            dup
            invokespecial com.mongodb.client.gridfs.model.GridFSDownloadOptions.<init>:()V
            aload 2 /* options */
            invokevirtual com.mongodb.client.gridfs.model.GridFSDownloadByNameOptions.getRevision:()I
            invokevirtual com.mongodb.client.gridfs.model.GridFSDownloadOptions.revision:(I)Lcom/mongodb/client/gridfs/model/GridFSDownloadOptions;
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.openDownloadStream:(Ljava/lang/String;Lcom/mongodb/client/gridfs/model/GridFSDownloadOptions;)Lcom/mongodb/client/gridfs/GridFSDownloadStream;
            areturn
        end local 2 // com.mongodb.client.gridfs.model.GridFSDownloadByNameOptions options
        end local 1 // java.lang.String filename
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    1     1  filename  Ljava/lang/String;
            0    1     2   options  Lcom/mongodb/client/gridfs/model/GridFSDownloadByNameOptions;
    MethodParameters:
          Name  Flags
      filename  final
      options   final

  public void downloadToStreamByName(java.lang.String, java.io.OutputStream);
    descriptor: (Ljava/lang/String;Ljava/io/OutputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // java.lang.String filename
        start local 2 // java.io.OutputStream destination
         0: .line 484
            aload 0 /* this */
            aload 1 /* filename */
            aload 2 /* destination */
            new com.mongodb.client.gridfs.model.GridFSDownloadByNameOptions
            dup
            invokespecial com.mongodb.client.gridfs.model.GridFSDownloadByNameOptions.<init>:()V
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.downloadToStreamByName:(Ljava/lang/String;Ljava/io/OutputStream;Lcom/mongodb/client/gridfs/model/GridFSDownloadByNameOptions;)V
         1: .line 485
            return
        end local 2 // java.io.OutputStream destination
        end local 1 // java.lang.String filename
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    2     1     filename  Ljava/lang/String;
            0    2     2  destination  Ljava/io/OutputStream;
    MethodParameters:
             Name  Flags
      filename     final
      destination  final

  public void downloadToStreamByName(java.lang.String, java.io.OutputStream, com.mongodb.client.gridfs.model.GridFSDownloadByNameOptions);
    descriptor: (Ljava/lang/String;Ljava/io/OutputStream;Lcom/mongodb/client/gridfs/model/GridFSDownloadByNameOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // java.lang.String filename
        start local 2 // java.io.OutputStream destination
        start local 3 // com.mongodb.client.gridfs.model.GridFSDownloadByNameOptions options
         0: .line 491
            aload 0 /* this */
            aload 1 /* filename */
            aload 2 /* destination */
            new com.mongodb.client.gridfs.model.GridFSDownloadOptions
            dup
            invokespecial com.mongodb.client.gridfs.model.GridFSDownloadOptions.<init>:()V
            aload 3 /* options */
            invokevirtual com.mongodb.client.gridfs.model.GridFSDownloadByNameOptions.getRevision:()I
            invokevirtual com.mongodb.client.gridfs.model.GridFSDownloadOptions.revision:(I)Lcom/mongodb/client/gridfs/model/GridFSDownloadOptions;
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.downloadToStream:(Ljava/lang/String;Ljava/io/OutputStream;Lcom/mongodb/client/gridfs/model/GridFSDownloadOptions;)V
         1: .line 492
            return
        end local 3 // com.mongodb.client.gridfs.model.GridFSDownloadByNameOptions options
        end local 2 // java.io.OutputStream destination
        end local 1 // java.lang.String filename
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    2     1     filename  Ljava/lang/String;
            0    2     2  destination  Ljava/io/OutputStream;
            0    2     3      options  Lcom/mongodb/client/gridfs/model/GridFSDownloadByNameOptions;
    MethodParameters:
             Name  Flags
      filename     final
      destination  final
      options      final

  private static com.mongodb.client.MongoCollection<com.mongodb.client.gridfs.model.GridFSFile> getFilesCollection(com.mongodb.client.MongoDatabase, java.lang.String);
    descriptor: (Lcom/mongodb/client/MongoDatabase;Ljava/lang/String;)Lcom/mongodb/client/MongoCollection;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.mongodb.client.MongoDatabase database
        start local 1 // java.lang.String bucketName
         0: .line 495
            aload 0 /* database */
            new java.lang.StringBuilder
            dup
            aload 1 /* bucketName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".files"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            ldc Lcom/mongodb/client/gridfs/model/GridFSFile;
            invokeinterface com.mongodb.client.MongoDatabase.getCollection:(Ljava/lang/String;Ljava/lang/Class;)Lcom/mongodb/client/MongoCollection;
            iconst_2
            anewarray org.bson.codecs.configuration.CodecRegistry
            dup
            iconst_0
         1: .line 496
            aload 0 /* database */
            invokeinterface com.mongodb.client.MongoDatabase.getCodecRegistry:()Lorg/bson/codecs/configuration/CodecRegistry;
            aastore
            dup
            iconst_1
            invokestatic com.mongodb.MongoClientSettings.getDefaultCodecRegistry:()Lorg/bson/codecs/configuration/CodecRegistry;
            aastore
            invokestatic org.bson.codecs.configuration.CodecRegistries.fromRegistries:([Lorg/bson/codecs/configuration/CodecRegistry;)Lorg/bson/codecs/configuration/CodecRegistry;
         2: .line 495
            invokeinterface com.mongodb.client.MongoCollection.withCodecRegistry:(Lorg/bson/codecs/configuration/CodecRegistry;)Lcom/mongodb/client/MongoCollection;
            areturn
        end local 1 // java.lang.String bucketName
        end local 0 // com.mongodb.client.MongoDatabase database
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0    database  Lcom/mongodb/client/MongoDatabase;
            0    3     1  bucketName  Ljava/lang/String;
    Signature: (Lcom/mongodb/client/MongoDatabase;Ljava/lang/String;)Lcom/mongodb/client/MongoCollection<Lcom/mongodb/client/gridfs/model/GridFSFile;>;
    MethodParameters:
            Name  Flags
      database    final
      bucketName  final

  private static com.mongodb.client.MongoCollection<org.bson.Document> getChunksCollection(com.mongodb.client.MongoDatabase, java.lang.String);
    descriptor: (Lcom/mongodb/client/MongoDatabase;Ljava/lang/String;)Lcom/mongodb/client/MongoCollection;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.client.MongoDatabase database
        start local 1 // java.lang.String bucketName
         0: .line 501
            aload 0 /* database */
            new java.lang.StringBuilder
            dup
            aload 1 /* bucketName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".chunks"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface com.mongodb.client.MongoDatabase.getCollection:(Ljava/lang/String;)Lcom/mongodb/client/MongoCollection;
            invokestatic com.mongodb.MongoClientSettings.getDefaultCodecRegistry:()Lorg/bson/codecs/configuration/CodecRegistry;
            invokeinterface com.mongodb.client.MongoCollection.withCodecRegistry:(Lorg/bson/codecs/configuration/CodecRegistry;)Lcom/mongodb/client/MongoCollection;
            areturn
        end local 1 // java.lang.String bucketName
        end local 0 // com.mongodb.client.MongoDatabase database
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0    database  Lcom/mongodb/client/MongoDatabase;
            0    1     1  bucketName  Ljava/lang/String;
    Signature: (Lcom/mongodb/client/MongoDatabase;Ljava/lang/String;)Lcom/mongodb/client/MongoCollection<Lorg/bson/Document;>;
    MethodParameters:
            Name  Flags
      database    final
      bucketName  final

  private void checkCreateIndex(com.mongodb.client.ClientSession);
    descriptor: (Lcom/mongodb/client/ClientSession;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
         0: .line 505
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.checkedIndexes:Z
            ifne 9
         1: .line 506
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.filesCollection:Lcom/mongodb/client/MongoCollection;
            ldc Lorg/bson/Document;
            invokeinterface com.mongodb.client.MongoCollection.withDocumentClass:(Ljava/lang/Class;)Lcom/mongodb/client/MongoCollection;
            invokestatic com.mongodb.ReadPreference.primary:()Lcom/mongodb/ReadPreference;
            invokeinterface com.mongodb.client.MongoCollection.withReadPreference:(Lcom/mongodb/ReadPreference;)Lcom/mongodb/client/MongoCollection;
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.collectionIsEmpty:(Lcom/mongodb/client/ClientSession;Lcom/mongodb/client/MongoCollection;)Z
            ifeq 8
         2: .line 507
            new org.bson.Document
            dup
            ldc "filename"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokespecial org.bson.Document.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            ldc "uploadDate"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual org.bson.Document.append:(Ljava/lang/String;Ljava/lang/Object;)Lorg/bson/Document;
            astore 2 /* filesIndex */
        start local 2 // org.bson.Document filesIndex
         3: .line 508
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.filesCollection:Lcom/mongodb/client/MongoCollection;
            invokestatic com.mongodb.ReadPreference.primary:()Lcom/mongodb/ReadPreference;
            invokeinterface com.mongodb.client.MongoCollection.withReadPreference:(Lcom/mongodb/ReadPreference;)Lcom/mongodb/client/MongoCollection;
            aload 2 /* filesIndex */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.hasIndex:(Lcom/mongodb/client/ClientSession;Lcom/mongodb/client/MongoCollection;Lorg/bson/Document;)Z
            ifne 5
         4: .line 509
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.filesCollection:Lcom/mongodb/client/MongoCollection;
            aload 2 /* filesIndex */
            new com.mongodb.client.model.IndexOptions
            dup
            invokespecial com.mongodb.client.model.IndexOptions.<init>:()V
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.createIndex:(Lcom/mongodb/client/ClientSession;Lcom/mongodb/client/MongoCollection;Lorg/bson/Document;Lcom/mongodb/client/model/IndexOptions;)V
         5: .line 511
      StackMap locals: org.bson.Document
      StackMap stack:
            new org.bson.Document
            dup
            ldc "files_id"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokespecial org.bson.Document.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            ldc "n"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual org.bson.Document.append:(Ljava/lang/String;Ljava/lang/Object;)Lorg/bson/Document;
            astore 3 /* chunksIndex */
        start local 3 // org.bson.Document chunksIndex
         6: .line 512
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.chunksCollection:Lcom/mongodb/client/MongoCollection;
            invokestatic com.mongodb.ReadPreference.primary:()Lcom/mongodb/ReadPreference;
            invokeinterface com.mongodb.client.MongoCollection.withReadPreference:(Lcom/mongodb/ReadPreference;)Lcom/mongodb/client/MongoCollection;
            aload 3 /* chunksIndex */
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.hasIndex:(Lcom/mongodb/client/ClientSession;Lcom/mongodb/client/MongoCollection;Lorg/bson/Document;)Z
            ifne 8
         7: .line 513
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.chunksCollection:Lcom/mongodb/client/MongoCollection;
            aload 3 /* chunksIndex */
            new com.mongodb.client.model.IndexOptions
            dup
            invokespecial com.mongodb.client.model.IndexOptions.<init>:()V
            iconst_1
            invokevirtual com.mongodb.client.model.IndexOptions.unique:(Z)Lcom/mongodb/client/model/IndexOptions;
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.createIndex:(Lcom/mongodb/client/ClientSession;Lcom/mongodb/client/MongoCollection;Lorg/bson/Document;Lcom/mongodb/client/model/IndexOptions;)V
        end local 3 // org.bson.Document chunksIndex
        end local 2 // org.bson.Document filesIndex
         8: .line 516
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.mongodb.client.gridfs.GridFSBucketImpl.checkedIndexes:Z
         9: .line 518
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0   10     1  clientSession  Lcom/mongodb/client/ClientSession;
            3    8     2     filesIndex  Lorg/bson/Document;
            6    8     3    chunksIndex  Lorg/bson/Document;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
    MethodParameters:
               Name  Flags
      clientSession  final

  private <T> boolean collectionIsEmpty(com.mongodb.client.ClientSession, com.mongodb.client.MongoCollection<T>);
    descriptor: (Lcom/mongodb/client/ClientSession;Lcom/mongodb/client/MongoCollection;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // com.mongodb.client.MongoCollection collection
         0: .line 521
            aload 1 /* clientSession */
            ifnull 3
         1: .line 522
            aload 2 /* collection */
            aload 1 /* clientSession */
            invokeinterface com.mongodb.client.MongoCollection.find:(Lcom/mongodb/client/ClientSession;)Lcom/mongodb/client/FindIterable;
            new org.bson.Document
            dup
            ldc "_id"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokespecial org.bson.Document.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            invokeinterface com.mongodb.client.FindIterable.projection:(Lorg/bson/conversions/Bson;)Lcom/mongodb/client/FindIterable;
            invokeinterface com.mongodb.client.FindIterable.first:()Ljava/lang/Object;
            ifnonnull 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
         3: .line 524
      StackMap locals:
      StackMap stack:
            aload 2 /* collection */
            invokeinterface com.mongodb.client.MongoCollection.find:()Lcom/mongodb/client/FindIterable;
            new org.bson.Document
            dup
            ldc "_id"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokespecial org.bson.Document.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            invokeinterface com.mongodb.client.FindIterable.projection:(Lorg/bson/conversions/Bson;)Lcom/mongodb/client/FindIterable;
            invokeinterface com.mongodb.client.FindIterable.first:()Ljava/lang/Object;
            ifnonnull 4
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
        end local 2 // com.mongodb.client.MongoCollection collection
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    5     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    5     2     collection  Lcom/mongodb/client/MongoCollection<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Lcom/mongodb/client/MongoCollection<TT;>;)Z
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
    MethodParameters:
               Name  Flags
      clientSession  final
      collection     final

  private <T> boolean hasIndex(com.mongodb.client.ClientSession, com.mongodb.client.MongoCollection<T>, org.bson.Document);
    descriptor: (Lcom/mongodb/client/ClientSession;Lcom/mongodb/client/MongoCollection;Lorg/bson/Document;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=12, args_size=4
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // com.mongodb.client.MongoCollection collection
        start local 3 // org.bson.Document index
         0: .line 529
            iconst_0
            istore 4 /* hasIndex */
        start local 4 // boolean hasIndex
         1: .line 531
            aload 1 /* clientSession */
            ifnull 4
         2: .line 532
            aload 2 /* collection */
            aload 1 /* clientSession */
            invokeinterface com.mongodb.client.MongoCollection.listIndexes:(Lcom/mongodb/client/ClientSession;)Lcom/mongodb/client/ListIndexesIterable;
            astore 5 /* listIndexesIterable */
        start local 5 // com.mongodb.client.ListIndexesIterable listIndexesIterable
         3: .line 533
            goto 5
        end local 5 // com.mongodb.client.ListIndexesIterable listIndexesIterable
         4: .line 534
      StackMap locals: int
      StackMap stack:
            aload 2 /* collection */
            invokeinterface com.mongodb.client.MongoCollection.listIndexes:()Lcom/mongodb/client/ListIndexesIterable;
            astore 5 /* listIndexesIterable */
        start local 5 // com.mongodb.client.ListIndexesIterable listIndexesIterable
         5: .line 537
      StackMap locals: com.mongodb.client.ListIndexesIterable
      StackMap stack:
            aload 5 /* listIndexesIterable */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            invokeinterface com.mongodb.client.ListIndexesIterable.into:(Ljava/util/Collection;)Ljava/util/Collection;
            checkcast java.util.ArrayList
            astore 6 /* indexes */
        start local 6 // java.util.ArrayList indexes
         6: .line 538
            aload 6 /* indexes */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 8
            goto 17
      StackMap locals: com.mongodb.client.gridfs.GridFSBucketImpl com.mongodb.client.ClientSession com.mongodb.client.MongoCollection org.bson.Document int com.mongodb.client.ListIndexesIterable java.util.ArrayList top java.util.Iterator
      StackMap stack:
         7: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.bson.Document
            astore 7 /* result */
        start local 7 // org.bson.Document result
         8: .line 539
            aload 7 /* result */
            ldc "key"
            new org.bson.Document
            dup
            invokespecial org.bson.Document.<init>:()V
            invokevirtual org.bson.Document.get:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.bson.Document
            astore 9 /* indexDoc */
        start local 9 // org.bson.Document indexDoc
         9: .line 540
            aload 9 /* indexDoc */
            invokevirtual org.bson.Document.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 11
            goto 13
      StackMap locals: com.mongodb.client.gridfs.GridFSBucketImpl com.mongodb.client.ClientSession com.mongodb.client.MongoCollection org.bson.Document int com.mongodb.client.ListIndexesIterable java.util.ArrayList org.bson.Document java.util.Iterator org.bson.Document top java.util.Iterator
      StackMap stack:
        10: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 10 /* entry */
        start local 10 // java.util.Map$Entry entry
        11: .line 541
            aload 10 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            instanceof java.lang.Number
            ifeq 13
        12: .line 542
            aload 10 /* entry */
            aload 10 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.Number
            invokevirtual java.lang.Number.intValue:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map$Entry.setValue:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 10 // java.util.Map$Entry entry
        13: .line 540
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        14: .line 545
            aload 9 /* indexDoc */
            aload 3 /* index */
            invokevirtual org.bson.Document.equals:(Ljava/lang/Object;)Z
            ifeq 17
        15: .line 546
            iconst_1
            istore 4 /* hasIndex */
        16: .line 547
            goto 18
        end local 9 // org.bson.Document indexDoc
        end local 7 // org.bson.Document result
        17: .line 538
      StackMap locals: com.mongodb.client.gridfs.GridFSBucketImpl com.mongodb.client.ClientSession com.mongodb.client.MongoCollection org.bson.Document int com.mongodb.client.ListIndexesIterable java.util.ArrayList top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        18: .line 550
      StackMap locals: com.mongodb.client.gridfs.GridFSBucketImpl com.mongodb.client.ClientSession com.mongodb.client.MongoCollection org.bson.Document int com.mongodb.client.ListIndexesIterable java.util.ArrayList
      StackMap stack:
            iload 4 /* hasIndex */
            ireturn
        end local 6 // java.util.ArrayList indexes
        end local 5 // com.mongodb.client.ListIndexesIterable listIndexesIterable
        end local 4 // boolean hasIndex
        end local 3 // org.bson.Document index
        end local 2 // com.mongodb.client.MongoCollection collection
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   19     0                 this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0   19     1        clientSession  Lcom/mongodb/client/ClientSession;
            0   19     2           collection  Lcom/mongodb/client/MongoCollection<TT;>;
            0   19     3                index  Lorg/bson/Document;
            1   19     4             hasIndex  Z
            3    4     5  listIndexesIterable  Lcom/mongodb/client/ListIndexesIterable<Lorg/bson/Document;>;
            5   19     5  listIndexesIterable  Lcom/mongodb/client/ListIndexesIterable<Lorg/bson/Document;>;
            6   19     6              indexes  Ljava/util/ArrayList<Lorg/bson/Document;>;
            8   17     7               result  Lorg/bson/Document;
            9   17     9             indexDoc  Lorg/bson/Document;
           11   13    10                entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Object;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Lcom/mongodb/client/MongoCollection<TT;>;Lorg/bson/Document;)Z
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
    MethodParameters:
               Name  Flags
      clientSession  final
      collection     final
      index          final

  private <T> void createIndex(com.mongodb.client.ClientSession, com.mongodb.client.MongoCollection<T>, org.bson.Document, com.mongodb.client.model.IndexOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Lcom/mongodb/client/MongoCollection;Lorg/bson/Document;Lcom/mongodb/client/model/IndexOptions;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // com.mongodb.client.MongoCollection collection
        start local 3 // org.bson.Document index
        start local 4 // com.mongodb.client.model.IndexOptions indexOptions
         0: .line 555
            aload 1 /* clientSession */
            ifnull 3
         1: .line 556
            aload 2 /* collection */
            aload 1 /* clientSession */
            aload 3 /* index */
            aload 4 /* indexOptions */
            invokeinterface com.mongodb.client.MongoCollection.createIndex:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/IndexOptions;)Ljava/lang/String;
            pop
         2: .line 557
            goto 4
         3: .line 558
      StackMap locals:
      StackMap stack:
            aload 2 /* collection */
            aload 3 /* index */
            aload 4 /* indexOptions */
            invokeinterface com.mongodb.client.MongoCollection.createIndex:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/IndexOptions;)Ljava/lang/String;
            pop
         4: .line 560
      StackMap locals:
      StackMap stack:
            return
        end local 4 // com.mongodb.client.model.IndexOptions indexOptions
        end local 3 // org.bson.Document index
        end local 2 // com.mongodb.client.MongoCollection collection
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    5     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    5     2     collection  Lcom/mongodb/client/MongoCollection<TT;>;
            0    5     3          index  Lorg/bson/Document;
            0    5     4   indexOptions  Lcom/mongodb/client/model/IndexOptions;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Lcom/mongodb/client/MongoCollection<TT;>;Lorg/bson/Document;Lcom/mongodb/client/model/IndexOptions;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
    MethodParameters:
               Name  Flags
      clientSession  final
      collection     final
      index          final
      indexOptions   final

  private com.mongodb.client.gridfs.model.GridFSFile getFileByName(com.mongodb.client.ClientSession, java.lang.String, com.mongodb.client.gridfs.model.GridFSDownloadOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/gridfs/model/GridFSDownloadOptions;)Lcom/mongodb/client/gridfs/model/GridFSFile;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=8, args_size=4
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.String filename
        start local 3 // com.mongodb.client.gridfs.model.GridFSDownloadOptions options
         0: .line 564
            aload 3 /* options */
            invokevirtual com.mongodb.client.gridfs.model.GridFSDownloadOptions.getRevision:()I
            istore 4 /* revision */
        start local 4 // int revision
         1: .line 567
            iload 4 /* revision */
            iflt 5
         2: .line 568
            iload 4 /* revision */
            istore 5 /* skip */
        start local 5 // int skip
         3: .line 569
            iconst_1
            istore 6 /* sort */
        start local 6 // int sort
         4: .line 570
            goto 7
        end local 6 // int sort
        end local 5 // int skip
         5: .line 571
      StackMap locals: int
      StackMap stack:
            iload 4 /* revision */
            ineg
            iconst_1
            isub
            istore 5 /* skip */
        start local 5 // int skip
         6: .line 572
            iconst_m1
            istore 6 /* sort */
        start local 6 // int sort
         7: .line 575
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* clientSession */
            new org.bson.Document
            dup
            ldc "filename"
            aload 2 /* filename */
            invokespecial org.bson.Document.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.createGridFSFindIterable:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;)Lcom/mongodb/client/gridfs/GridFSFindIterable;
            iload 5 /* skip */
            invokeinterface com.mongodb.client.gridfs.GridFSFindIterable.skip:(I)Lcom/mongodb/client/gridfs/GridFSFindIterable;
         8: .line 576
            new org.bson.Document
            dup
            ldc "uploadDate"
            iload 6 /* sort */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokespecial org.bson.Document.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            invokeinterface com.mongodb.client.gridfs.GridFSFindIterable.sort:(Lorg/bson/conversions/Bson;)Lcom/mongodb/client/gridfs/GridFSFindIterable;
            invokeinterface com.mongodb.client.gridfs.GridFSFindIterable.first:()Ljava/lang/Object;
            checkcast com.mongodb.client.gridfs.model.GridFSFile
         9: .line 575
            astore 7 /* fileInfo */
        start local 7 // com.mongodb.client.gridfs.model.GridFSFile fileInfo
        10: .line 577
            aload 7 /* fileInfo */
            ifnonnull 12
        11: .line 578
            new com.mongodb.MongoGridFSException
            dup
            ldc "No file found with the filename: %s and revision: %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* filename */
            aastore
            dup
            iconst_1
            iload 4 /* revision */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial com.mongodb.MongoGridFSException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 580
      StackMap locals: com.mongodb.client.gridfs.model.GridFSFile
      StackMap stack:
            aload 7 /* fileInfo */
            areturn
        end local 7 // com.mongodb.client.gridfs.model.GridFSFile fileInfo
        end local 6 // int sort
        end local 5 // int skip
        end local 4 // int revision
        end local 3 // com.mongodb.client.gridfs.model.GridFSDownloadOptions options
        end local 2 // java.lang.String filename
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   13     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0   13     1  clientSession  Lcom/mongodb/client/ClientSession;
            0   13     2       filename  Ljava/lang/String;
            0   13     3        options  Lcom/mongodb/client/gridfs/model/GridFSDownloadOptions;
            1   13     4       revision  I
            3    5     5           skip  I
            6   13     5           skip  I
            4    5     6           sort  I
            7   13     6           sort  I
           10   13     7       fileInfo  Lcom/mongodb/client/gridfs/model/GridFSFile;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
    MethodParameters:
               Name  Flags
      clientSession  final
      filename       final
      options        final

  private com.mongodb.client.gridfs.model.GridFSFile getFileInfoById(com.mongodb.client.ClientSession, org.bson.BsonValue);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/BsonValue;)Lcom/mongodb/client/gridfs/model/GridFSFile;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.BsonValue id
         0: .line 584
            ldc "id"
            aload 2 /* id */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 585
            aload 0 /* this */
            aload 1 /* clientSession */
            new org.bson.Document
            dup
            ldc "_id"
            aload 2 /* id */
            invokespecial org.bson.Document.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            invokevirtual com.mongodb.client.gridfs.GridFSBucketImpl.createFindIterable:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;)Lcom/mongodb/client/FindIterable;
            invokeinterface com.mongodb.client.FindIterable.first:()Ljava/lang/Object;
            checkcast com.mongodb.client.gridfs.model.GridFSFile
            astore 3 /* fileInfo */
        start local 3 // com.mongodb.client.gridfs.model.GridFSFile fileInfo
         2: .line 586
            aload 3 /* fileInfo */
            ifnonnull 4
         3: .line 587
            new com.mongodb.MongoGridFSException
            dup
            ldc "No file found with the id: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* id */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial com.mongodb.MongoGridFSException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 589
      StackMap locals: com.mongodb.client.gridfs.model.GridFSFile
      StackMap stack:
            aload 3 /* fileInfo */
            areturn
        end local 3 // com.mongodb.client.gridfs.model.GridFSFile fileInfo
        end local 2 // org.bson.BsonValue id
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    5     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    5     2             id  Lorg/bson/BsonValue;
            2    5     3       fileInfo  Lcom/mongodb/client/gridfs/model/GridFSFile;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
    MethodParameters:
               Name  Flags
      clientSession  final
      id             final

  private com.mongodb.client.FindIterable<com.mongodb.client.gridfs.model.GridFSFile> createFindIterable(com.mongodb.client.ClientSession, org.bson.conversions.Bson);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;)Lcom/mongodb/client/FindIterable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
         0: .line 594
            aload 1 /* clientSession */
            ifnull 3
         1: .line 595
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.filesCollection:Lcom/mongodb/client/MongoCollection;
            aload 1 /* clientSession */
            invokeinterface com.mongodb.client.MongoCollection.find:(Lcom/mongodb/client/ClientSession;)Lcom/mongodb/client/FindIterable;
            astore 3 /* findIterable */
        start local 3 // com.mongodb.client.FindIterable findIterable
         2: .line 596
            goto 4
        end local 3 // com.mongodb.client.FindIterable findIterable
         3: .line 597
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.client.gridfs.GridFSBucketImpl.filesCollection:Lcom/mongodb/client/MongoCollection;
            invokeinterface com.mongodb.client.MongoCollection.find:()Lcom/mongodb/client/FindIterable;
            astore 3 /* findIterable */
        start local 3 // com.mongodb.client.FindIterable findIterable
         4: .line 599
      StackMap locals: com.mongodb.client.FindIterable
      StackMap stack:
            aload 2 /* filter */
            ifnull 6
         5: .line 600
            aload 3 /* findIterable */
            aload 2 /* filter */
            invokeinterface com.mongodb.client.FindIterable.filter:(Lorg/bson/conversions/Bson;)Lcom/mongodb/client/FindIterable;
            astore 3 /* findIterable */
         6: .line 602
      StackMap locals:
      StackMap stack:
            aload 3 /* findIterable */
            areturn
        end local 3 // com.mongodb.client.FindIterable findIterable
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0    7     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    7     2         filter  Lorg/bson/conversions/Bson;
            2    3     3   findIterable  Lcom/mongodb/client/FindIterable<Lcom/mongodb/client/gridfs/model/GridFSFile;>;
            4    7     3   findIterable  Lcom/mongodb/client/FindIterable<Lcom/mongodb/client/gridfs/model/GridFSFile;>;
    Signature: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;)Lcom/mongodb/client/FindIterable<Lcom/mongodb/client/gridfs/model/GridFSFile;>;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
        com.mongodb.lang.Nullable()
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final

  private void downloadToStream(com.mongodb.client.gridfs.GridFSDownloadStream, java.io.OutputStream);
    descriptor: (Lcom/mongodb/client/gridfs/GridFSDownloadStream;Ljava/io/OutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
        start local 1 // com.mongodb.client.gridfs.GridFSDownloadStream downloadStream
        start local 2 // java.io.OutputStream destination
         0: .line 606
            aload 1 /* downloadStream */
            invokevirtual com.mongodb.client.gridfs.GridFSDownloadStream.getGridFSFile:()Lcom/mongodb/client/gridfs/model/GridFSFile;
            invokevirtual com.mongodb.client.gridfs.model.GridFSFile.getChunkSize:()I
            newarray 8
            astore 3 /* buffer */
        start local 3 // byte[] buffer
         1: .line 608
            aconst_null
            astore 5 /* savedThrowable */
        start local 5 // com.mongodb.MongoGridFSException savedThrowable
         2: .line 610
            goto 4
        start local 4 // int len
         3: .line 611
      StackMap locals: byte[] int com.mongodb.MongoGridFSException
      StackMap stack:
            aload 2 /* destination */
            aload 3 /* buffer */
            iconst_0
            iload 4 /* len */
            invokevirtual java.io.OutputStream.write:([BII)V
        end local 4 // int len
         4: .line 610
      StackMap locals: com.mongodb.client.gridfs.GridFSBucketImpl com.mongodb.client.gridfs.GridFSDownloadStream java.io.OutputStream byte[] top com.mongodb.MongoGridFSException
      StackMap stack:
            aload 1 /* downloadStream */
            aload 3 /* buffer */
            invokevirtual com.mongodb.client.gridfs.GridFSDownloadStream.read:([B)I
            dup
            istore 4 /* len */
        start local 4 // int len
         5: iconst_m1
            if_icmpne 3
        end local 4 // int len
         6: .line 613
            goto 28
      StackMap locals:
      StackMap stack: java.io.IOException
         7: astore 6 /* e */
        start local 6 // java.io.IOException e
         8: .line 614
            new com.mongodb.MongoGridFSException
            dup
            ldc "IOException when reading from the OutputStream"
            aload 6 /* e */
            invokespecial com.mongodb.MongoGridFSException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            astore 5 /* savedThrowable */
        end local 6 // java.io.IOException e
         9: .line 619
            aload 1 /* downloadStream */
            invokevirtual com.mongodb.client.gridfs.GridFSDownloadStream.close:()V
        10: .line 620
            goto 12
      StackMap locals:
      StackMap stack: java.lang.Exception
        11: pop
        12: .line 623
      StackMap locals:
      StackMap stack:
            aload 5 /* savedThrowable */
            ifnull 33
        13: .line 624
            aload 5 /* savedThrowable */
            athrow
        14: .line 615
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 6 /* e */
        start local 6 // java.lang.Exception e
        15: .line 616
            new com.mongodb.MongoGridFSException
            dup
            ldc "Unexpected Exception when reading GridFS and writing to the Stream"
            aload 6 /* e */
            invokespecial com.mongodb.MongoGridFSException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            astore 5 /* savedThrowable */
        end local 6 // java.lang.Exception e
        16: .line 619
            aload 1 /* downloadStream */
            invokevirtual com.mongodb.client.gridfs.GridFSDownloadStream.close:()V
        17: .line 620
            goto 19
      StackMap locals:
      StackMap stack: java.lang.Exception
        18: pop
        19: .line 623
      StackMap locals:
      StackMap stack:
            aload 5 /* savedThrowable */
            ifnull 33
        20: .line 624
            aload 5 /* savedThrowable */
            athrow
        21: .line 617
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        22: .line 619
            aload 1 /* downloadStream */
            invokevirtual com.mongodb.client.gridfs.GridFSDownloadStream.close:()V
        23: .line 620
            goto 25
      StackMap locals: com.mongodb.client.gridfs.GridFSBucketImpl com.mongodb.client.gridfs.GridFSDownloadStream java.io.OutputStream byte[] top com.mongodb.MongoGridFSException top java.lang.Throwable
      StackMap stack: java.lang.Exception
        24: pop
        25: .line 623
      StackMap locals:
      StackMap stack:
            aload 5 /* savedThrowable */
            ifnull 27
        26: .line 624
            aload 5 /* savedThrowable */
            athrow
        27: .line 626
      StackMap locals:
      StackMap stack:
            aload 7
            athrow
        28: .line 619
      StackMap locals: com.mongodb.client.gridfs.GridFSBucketImpl com.mongodb.client.gridfs.GridFSDownloadStream java.io.OutputStream byte[] top com.mongodb.MongoGridFSException
      StackMap stack:
            aload 1 /* downloadStream */
            invokevirtual com.mongodb.client.gridfs.GridFSDownloadStream.close:()V
        29: .line 620
            goto 31
      StackMap locals:
      StackMap stack: java.lang.Exception
        30: pop
        31: .line 623
      StackMap locals:
      StackMap stack:
            aload 5 /* savedThrowable */
            ifnull 33
        32: .line 624
            aload 5 /* savedThrowable */
            athrow
        33: .line 627
      StackMap locals:
      StackMap stack:
            return
        end local 5 // com.mongodb.MongoGridFSException savedThrowable
        end local 3 // byte[] buffer
        end local 2 // java.io.OutputStream destination
        end local 1 // com.mongodb.client.gridfs.GridFSDownloadStream downloadStream
        end local 0 // com.mongodb.client.gridfs.GridFSBucketImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   34     0            this  Lcom/mongodb/client/gridfs/GridFSBucketImpl;
            0   34     1  downloadStream  Lcom/mongodb/client/gridfs/GridFSDownloadStream;
            0   34     2     destination  Ljava/io/OutputStream;
            1   34     3          buffer  [B
            3    4     4             len  I
            5    6     4             len  I
            2   34     5  savedThrowable  Lcom/mongodb/MongoGridFSException;
            8    9     6               e  Ljava/io/IOException;
           15   16     6               e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     6       7  Class java.io.IOException
           9    10      11  Class java.lang.Exception
           2     6      14  Class java.lang.Exception
          16    17      18  Class java.lang.Exception
           2     9      21  any
          14    16      21  any
          22    23      24  Class java.lang.Exception
          28    29      30  Class java.lang.Exception
    MethodParameters:
                Name  Flags
      downloadStream  final
      destination     final
}
SourceFile: "GridFSBucketImpl.java"
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map