class com.mongodb.async.client.MongoCollectionImpl<TDocument> implements com.mongodb.async.client.MongoCollection<TDocument>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.mongodb.async.client.MongoCollectionImpl
  super_class: java.lang.Object
{
  private final com.mongodb.MongoNamespace namespace;
    descriptor: Lcom/mongodb/MongoNamespace;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Class<TDocument> documentClass;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<TTDocument;>;

  private final com.mongodb.ReadPreference readPreference;
    descriptor: Lcom/mongodb/ReadPreference;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.bson.codecs.configuration.CodecRegistry codecRegistry;
    descriptor: Lorg/bson/codecs/configuration/CodecRegistry;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.WriteConcern writeConcern;
    descriptor: Lcom/mongodb/WriteConcern;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private final com.mongodb.ReadConcern readConcern;
    descriptor: Lcom/mongodb/ReadConcern;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.async.client.OperationExecutor executor;
    descriptor: Lcom/mongodb/async/client/OperationExecutor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.internal.operation.AsyncOperations<TDocument> operations;
    descriptor: Lcom/mongodb/internal/operation/AsyncOperations;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lcom/mongodb/internal/operation/AsyncOperations<TTDocument;>;

  private static volatile int[] $SWITCH_TABLE$com$mongodb$bulk$WriteRequest$Type;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  void <init>(com.mongodb.MongoNamespace, java.lang.Class<TDocument>, org.bson.codecs.configuration.CodecRegistry, com.mongodb.ReadPreference, com.mongodb.WriteConcern, boolean, boolean, com.mongodb.ReadConcern, com.mongodb.async.client.OperationExecutor);
    descriptor: (Lcom/mongodb/MongoNamespace;Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/WriteConcern;ZZLcom/mongodb/ReadConcern;Lcom/mongodb/async/client/OperationExecutor;)V
    flags: (0x0000) 
    Code:
      stack=11, locals=10, args_size=10
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.MongoNamespace namespace
        start local 2 // java.lang.Class documentClass
        start local 3 // org.bson.codecs.configuration.CodecRegistry codecRegistry
        start local 4 // com.mongodb.ReadPreference readPreference
        start local 5 // com.mongodb.WriteConcern writeConcern
        start local 6 // boolean retryWrites
        start local 7 // boolean retryReads
        start local 8 // com.mongodb.ReadConcern readConcern
        start local 9 // com.mongodb.async.client.OperationExecutor executor
         0: .line 88
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 91
            aload 0 /* this */
            ldc "namespace"
            aload 1 /* namespace */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.MongoNamespace
            putfield com.mongodb.async.client.MongoCollectionImpl.namespace:Lcom/mongodb/MongoNamespace;
         2: .line 92
            aload 0 /* this */
            ldc "documentClass"
            aload 2 /* documentClass */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Class
            putfield com.mongodb.async.client.MongoCollectionImpl.documentClass:Ljava/lang/Class;
         3: .line 93
            aload 0 /* this */
            ldc "codecRegistry"
            aload 3 /* codecRegistry */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.bson.codecs.configuration.CodecRegistry
            putfield com.mongodb.async.client.MongoCollectionImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
         4: .line 94
            aload 0 /* this */
            ldc "readPreference"
            aload 4 /* readPreference */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.ReadPreference
            putfield com.mongodb.async.client.MongoCollectionImpl.readPreference:Lcom/mongodb/ReadPreference;
         5: .line 95
            aload 0 /* this */
            ldc "writeConcern"
            aload 5 /* writeConcern */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.WriteConcern
            putfield com.mongodb.async.client.MongoCollectionImpl.writeConcern:Lcom/mongodb/WriteConcern;
         6: .line 96
            aload 0 /* this */
            iload 6 /* retryWrites */
            putfield com.mongodb.async.client.MongoCollectionImpl.retryWrites:Z
         7: .line 97
            aload 0 /* this */
            iload 7 /* retryReads */
            putfield com.mongodb.async.client.MongoCollectionImpl.retryReads:Z
         8: .line 98
            aload 0 /* this */
            ldc "readConcern"
            aload 8 /* readConcern */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.ReadConcern
            putfield com.mongodb.async.client.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
         9: .line 99
            aload 0 /* this */
            ldc "executor"
            aload 9 /* executor */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.async.client.OperationExecutor
            putfield com.mongodb.async.client.MongoCollectionImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
        10: .line 100
            aload 0 /* this */
            new com.mongodb.internal.operation.AsyncOperations
            dup
            aload 1 /* namespace */
            aload 2 /* documentClass */
            aload 4 /* readPreference */
            aload 3 /* codecRegistry */
            aload 8 /* readConcern */
            aload 5 /* writeConcern */
        11: .line 101
            iload 6 /* retryWrites */
            iload 7 /* retryReads */
            invokespecial com.mongodb.internal.operation.AsyncOperations.<init>:(Lcom/mongodb/MongoNamespace;Ljava/lang/Class;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadConcern;Lcom/mongodb/WriteConcern;ZZ)V
        12: .line 100
            putfield com.mongodb.async.client.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/AsyncOperations;
        13: .line 102
            return
        end local 9 // com.mongodb.async.client.OperationExecutor executor
        end local 8 // com.mongodb.ReadConcern readConcern
        end local 7 // boolean retryReads
        end local 6 // boolean retryWrites
        end local 5 // com.mongodb.WriteConcern writeConcern
        end local 4 // com.mongodb.ReadPreference readPreference
        end local 3 // org.bson.codecs.configuration.CodecRegistry codecRegistry
        end local 2 // java.lang.Class documentClass
        end local 1 // com.mongodb.MongoNamespace namespace
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   14     0            this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0   14     1       namespace  Lcom/mongodb/MongoNamespace;
            0   14     2   documentClass  Ljava/lang/Class<TTDocument;>;
            0   14     3   codecRegistry  Lorg/bson/codecs/configuration/CodecRegistry;
            0   14     4  readPreference  Lcom/mongodb/ReadPreference;
            0   14     5    writeConcern  Lcom/mongodb/WriteConcern;
            0   14     6     retryWrites  Z
            0   14     7      retryReads  Z
            0   14     8     readConcern  Lcom/mongodb/ReadConcern;
            0   14     9        executor  Lcom/mongodb/async/client/OperationExecutor;
    Signature: (Lcom/mongodb/MongoNamespace;Ljava/lang/Class<TTDocument;>;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/WriteConcern;ZZLcom/mongodb/ReadConcern;Lcom/mongodb/async/client/OperationExecutor;)V
    MethodParameters:
                Name  Flags
      namespace       final
      documentClass   final
      codecRegistry   final
      readPreference  final
      writeConcern    final
      retryWrites     final
      retryReads      final
      readConcern     final
      executor        final

  public com.mongodb.MongoNamespace getNamespace();
    descriptor: ()Lcom/mongodb/MongoNamespace;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
         0: .line 106
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.namespace:Lcom/mongodb/MongoNamespace;
            areturn
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;

  public java.lang.Class<TDocument> getDocumentClass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
         0: .line 111
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            areturn
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
    Signature: ()Ljava/lang/Class<TTDocument;>;

  public org.bson.codecs.configuration.CodecRegistry getCodecRegistry();
    descriptor: ()Lorg/bson/codecs/configuration/CodecRegistry;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
         0: .line 116
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            areturn
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;

  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.async.client.MongoCollectionImpl this
         0: .line 121
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readPreference:Lcom/mongodb/ReadPreference;
            areturn
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;

  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.async.client.MongoCollectionImpl this
         0: .line 126
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.writeConcern:Lcom/mongodb/WriteConcern;
            areturn
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;

  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.async.client.MongoCollectionImpl this
         0: .line 131
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            areturn
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;

  public <NewTDocument> com.mongodb.async.client.MongoCollection<NewTDocument> withDocumentClass(java.lang.Class<NewTDocument>);
    descriptor: (Ljava/lang/Class;)Lcom/mongodb/async/client/MongoCollection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // java.lang.Class newDocumentClass
         0: .line 136
            new com.mongodb.async.client.MongoCollectionImpl
            dup
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.namespace:Lcom/mongodb/MongoNamespace;
            aload 1 /* newDocumentClass */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.writeConcern:Lcom/mongodb/WriteConcern;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.retryWrites:Z
         1: .line 137
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.retryReads:Z
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
         2: .line 136
            invokespecial com.mongodb.async.client.MongoCollectionImpl.<init>:(Lcom/mongodb/MongoNamespace;Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/WriteConcern;ZZLcom/mongodb/ReadConcern;Lcom/mongodb/async/client/OperationExecutor;)V
            areturn
        end local 1 // java.lang.Class newDocumentClass
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  newDocumentClass  Ljava/lang/Class<TNewTDocument;>;
    Signature: <NewTDocument:Ljava/lang/Object;>(Ljava/lang/Class<TNewTDocument;>;)Lcom/mongodb/async/client/MongoCollection<TNewTDocument;>;
    MethodParameters:
                  Name  Flags
      newDocumentClass  final

  public com.mongodb.async.client.MongoCollection<TDocument> withCodecRegistry(org.bson.codecs.configuration.CodecRegistry);
    descriptor: (Lorg/bson/codecs/configuration/CodecRegistry;)Lcom/mongodb/async/client/MongoCollection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.codecs.configuration.CodecRegistry codecRegistry
         0: .line 142
            new com.mongodb.async.client.MongoCollectionImpl
            dup
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.namespace:Lcom/mongodb/MongoNamespace;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            aload 1 /* codecRegistry */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.writeConcern:Lcom/mongodb/WriteConcern;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.retryWrites:Z
         1: .line 143
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.retryReads:Z
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
         2: .line 142
            invokespecial com.mongodb.async.client.MongoCollectionImpl.<init>:(Lcom/mongodb/MongoNamespace;Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/WriteConcern;ZZLcom/mongodb/ReadConcern;Lcom/mongodb/async/client/OperationExecutor;)V
            areturn
        end local 1 // org.bson.codecs.configuration.CodecRegistry codecRegistry
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  codecRegistry  Lorg/bson/codecs/configuration/CodecRegistry;
    Signature: (Lorg/bson/codecs/configuration/CodecRegistry;)Lcom/mongodb/async/client/MongoCollection<TTDocument;>;
    MethodParameters:
               Name  Flags
      codecRegistry  final

  public com.mongodb.async.client.MongoCollection<TDocument> withReadPreference(com.mongodb.ReadPreference);
    descriptor: (Lcom/mongodb/ReadPreference;)Lcom/mongodb/async/client/MongoCollection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.ReadPreference readPreference
         0: .line 148
            new com.mongodb.async.client.MongoCollectionImpl
            dup
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.namespace:Lcom/mongodb/MongoNamespace;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 1 /* readPreference */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.writeConcern:Lcom/mongodb/WriteConcern;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.retryWrites:Z
         1: .line 149
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.retryReads:Z
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
         2: .line 148
            invokespecial com.mongodb.async.client.MongoCollectionImpl.<init>:(Lcom/mongodb/MongoNamespace;Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/WriteConcern;ZZLcom/mongodb/ReadConcern;Lcom/mongodb/async/client/OperationExecutor;)V
            areturn
        end local 1 // com.mongodb.ReadPreference readPreference
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  readPreference  Lcom/mongodb/ReadPreference;
    Signature: (Lcom/mongodb/ReadPreference;)Lcom/mongodb/async/client/MongoCollection<TTDocument;>;
    MethodParameters:
                Name  Flags
      readPreference  final

  public com.mongodb.async.client.MongoCollection<TDocument> withWriteConcern(com.mongodb.WriteConcern);
    descriptor: (Lcom/mongodb/WriteConcern;)Lcom/mongodb/async/client/MongoCollection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.WriteConcern writeConcern
         0: .line 154
            new com.mongodb.async.client.MongoCollectionImpl
            dup
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.namespace:Lcom/mongodb/MongoNamespace;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 1 /* writeConcern */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.retryWrites:Z
         1: .line 155
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.retryReads:Z
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
         2: .line 154
            invokespecial com.mongodb.async.client.MongoCollectionImpl.<init>:(Lcom/mongodb/MongoNamespace;Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/WriteConcern;ZZLcom/mongodb/ReadConcern;Lcom/mongodb/async/client/OperationExecutor;)V
            areturn
        end local 1 // com.mongodb.WriteConcern writeConcern
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  writeConcern  Lcom/mongodb/WriteConcern;
    Signature: (Lcom/mongodb/WriteConcern;)Lcom/mongodb/async/client/MongoCollection<TTDocument;>;
    MethodParameters:
              Name  Flags
      writeConcern  final

  public com.mongodb.async.client.MongoCollection<TDocument> withReadConcern(com.mongodb.ReadConcern);
    descriptor: (Lcom/mongodb/ReadConcern;)Lcom/mongodb/async/client/MongoCollection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.ReadConcern readConcern
         0: .line 160
            new com.mongodb.async.client.MongoCollectionImpl
            dup
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.namespace:Lcom/mongodb/MongoNamespace;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.writeConcern:Lcom/mongodb/WriteConcern;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.retryWrites:Z
         1: .line 161
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.retryReads:Z
            aload 1 /* readConcern */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
         2: .line 160
            invokespecial com.mongodb.async.client.MongoCollectionImpl.<init>:(Lcom/mongodb/MongoNamespace;Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/WriteConcern;ZZLcom/mongodb/ReadConcern;Lcom/mongodb/async/client/OperationExecutor;)V
            areturn
        end local 1 // com.mongodb.ReadConcern readConcern
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  readConcern  Lcom/mongodb/ReadConcern;
    Signature: (Lcom/mongodb/ReadConcern;)Lcom/mongodb/async/client/MongoCollection<TTDocument;>;
    MethodParameters:
             Name  Flags
      readConcern  final

  public void count(com.mongodb.async.SingleResultCallback<java.lang.Long>);
    descriptor: (Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.SingleResultCallback callback
         0: .line 167
            aload 0 /* this */
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            aload 1 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.count:(Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 168
            return
        end local 1 // com.mongodb.async.SingleResultCallback callback
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;
    Signature: (Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;)V
    MethodParameters:
          Name  Flags
      callback  final

  public void count(org.bson.conversions.Bson, com.mongodb.async.SingleResultCallback<java.lang.Long>);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 173
            aload 0 /* this */
            aload 1 /* filter */
            new com.mongodb.client.model.CountOptions
            dup
            invokespecial com.mongodb.client.model.CountOptions.<init>:()V
            aload 2 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.count:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 174
            return
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1    filter  Lorg/bson/conversions/Bson;
            0    2     2  callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;
    Signature: (Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;)V
    MethodParameters:
          Name  Flags
      filter    final
      callback  final

  public void count(org.bson.conversions.Bson, com.mongodb.client.model.CountOptions, com.mongodb.async.SingleResultCallback<java.lang.Long>);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // com.mongodb.client.model.CountOptions options
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 179
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* options */
            getstatic com.mongodb.internal.client.model.CountStrategy.COMMAND:Lcom/mongodb/internal/client/model/CountStrategy;
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeCount:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;Lcom/mongodb/internal/client/model/CountStrategy;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 180
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // com.mongodb.client.model.CountOptions options
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1    filter  Lorg/bson/conversions/Bson;
            0    2     2   options  Lcom/mongodb/client/model/CountOptions;
            0    2     3  callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;
    Signature: (Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;)V
    MethodParameters:
          Name  Flags
      filter    final
      options   final
      callback  final

  public void count(com.mongodb.async.client.ClientSession, com.mongodb.async.SingleResultCallback<java.lang.Long>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 185
            aload 0 /* this */
            aload 1 /* clientSession */
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            aload 2 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.count:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 186
            return
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2       callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      callback       final

  public void count(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, com.mongodb.async.SingleResultCallback<java.lang.Long>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 191
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            new com.mongodb.client.model.CountOptions
            dup
            invokespecial com.mongodb.client.model.CountOptions.<init>:()V
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.count:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 192
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3       callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      callback       final

  public void count(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, com.mongodb.client.model.CountOptions, com.mongodb.async.SingleResultCallback<java.lang.Long>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // com.mongodb.client.model.CountOptions options
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 198
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 199
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* options */
            getstatic com.mongodb.internal.client.model.CountStrategy.COMMAND:Lcom/mongodb/internal/client/model/CountStrategy;
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeCount:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;Lcom/mongodb/internal/client/model/CountStrategy;Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 200
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.CountOptions options
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2         filter  Lorg/bson/conversions/Bson;
            0    3     3        options  Lcom/mongodb/client/model/CountOptions;
            0    3     4       callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      options        final
      callback       final

  public void countDocuments(com.mongodb.async.SingleResultCallback<java.lang.Long>);
    descriptor: (Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.SingleResultCallback callback
         0: .line 204
            aload 0 /* this */
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            aload 1 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.countDocuments:(Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 205
            return
        end local 1 // com.mongodb.async.SingleResultCallback callback
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;
    Signature: (Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;)V
    MethodParameters:
          Name  Flags
      callback  final

  public void countDocuments(org.bson.conversions.Bson, com.mongodb.async.SingleResultCallback<java.lang.Long>);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 209
            aload 0 /* this */
            aload 1 /* filter */
            new com.mongodb.client.model.CountOptions
            dup
            invokespecial com.mongodb.client.model.CountOptions.<init>:()V
            aload 2 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.countDocuments:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 210
            return
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1    filter  Lorg/bson/conversions/Bson;
            0    2     2  callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;
    Signature: (Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;)V
    MethodParameters:
          Name  Flags
      filter    final
      callback  final

  public void countDocuments(org.bson.conversions.Bson, com.mongodb.client.model.CountOptions, com.mongodb.async.SingleResultCallback<java.lang.Long>);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // com.mongodb.client.model.CountOptions options
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 214
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* options */
            getstatic com.mongodb.internal.client.model.CountStrategy.AGGREGATE:Lcom/mongodb/internal/client/model/CountStrategy;
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeCount:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;Lcom/mongodb/internal/client/model/CountStrategy;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 215
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // com.mongodb.client.model.CountOptions options
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1    filter  Lorg/bson/conversions/Bson;
            0    2     2   options  Lcom/mongodb/client/model/CountOptions;
            0    2     3  callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;
    Signature: (Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;)V
    MethodParameters:
          Name  Flags
      filter    final
      options   final
      callback  final

  public void countDocuments(com.mongodb.async.client.ClientSession, com.mongodb.async.SingleResultCallback<java.lang.Long>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 219
            aload 0 /* this */
            aload 1 /* clientSession */
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            aload 2 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.countDocuments:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 220
            return
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2       callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      callback       final

  public void countDocuments(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, com.mongodb.async.SingleResultCallback<java.lang.Long>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 224
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            new com.mongodb.client.model.CountOptions
            dup
            invokespecial com.mongodb.client.model.CountOptions.<init>:()V
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.countDocuments:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 225
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3       callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      callback       final

  public void countDocuments(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, com.mongodb.client.model.CountOptions, com.mongodb.async.SingleResultCallback<java.lang.Long>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // com.mongodb.client.model.CountOptions options
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 230
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 231
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* options */
            getstatic com.mongodb.internal.client.model.CountStrategy.AGGREGATE:Lcom/mongodb/internal/client/model/CountStrategy;
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeCount:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;Lcom/mongodb/internal/client/model/CountStrategy;Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 232
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.CountOptions options
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2         filter  Lorg/bson/conversions/Bson;
            0    3     3        options  Lcom/mongodb/client/model/CountOptions;
            0    3     4       callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      options        final
      callback       final

  public void estimatedDocumentCount(com.mongodb.async.SingleResultCallback<java.lang.Long>);
    descriptor: (Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.SingleResultCallback callback
         0: .line 236
            aload 0 /* this */
            new com.mongodb.client.model.EstimatedDocumentCountOptions
            dup
            invokespecial com.mongodb.client.model.EstimatedDocumentCountOptions.<init>:()V
            aload 1 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.estimatedDocumentCount:(Lcom/mongodb/client/model/EstimatedDocumentCountOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 237
            return
        end local 1 // com.mongodb.async.SingleResultCallback callback
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;
    Signature: (Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;)V
    MethodParameters:
          Name  Flags
      callback  final

  public void estimatedDocumentCount(com.mongodb.client.model.EstimatedDocumentCountOptions, com.mongodb.async.SingleResultCallback<java.lang.Long>);
    descriptor: (Lcom/mongodb/client/model/EstimatedDocumentCountOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.client.model.EstimatedDocumentCountOptions options
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 241
            aload 0 /* this */
            aconst_null
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            aload 1 /* options */
            invokestatic com.mongodb.internal.client.model.CountOptionsHelper.fromEstimatedDocumentCountOptions:(Lcom/mongodb/client/model/EstimatedDocumentCountOptions;)Lcom/mongodb/client/model/CountOptions;
            getstatic com.mongodb.internal.client.model.CountStrategy.COMMAND:Lcom/mongodb/internal/client/model/CountStrategy;
            aload 2 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeCount:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;Lcom/mongodb/internal/client/model/CountStrategy;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 242
            return
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // com.mongodb.client.model.EstimatedDocumentCountOptions options
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1   options  Lcom/mongodb/client/model/EstimatedDocumentCountOptions;
            0    2     2  callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;
    Signature: (Lcom/mongodb/client/model/EstimatedDocumentCountOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;)V
    MethodParameters:
          Name  Flags
      options   final
      callback  final

  private void executeCount(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, com.mongodb.client.model.CountOptions, com.mongodb.internal.client.model.CountStrategy, com.mongodb.async.SingleResultCallback<java.lang.Long>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;Lcom/mongodb/internal/client/model/CountStrategy;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // com.mongodb.client.model.CountOptions options
        start local 4 // com.mongodb.internal.client.model.CountStrategy countStrategy
        start local 5 // com.mongodb.async.SingleResultCallback callback
         0: .line 246
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/AsyncOperations;
            aload 2 /* filter */
            aload 3 /* options */
            aload 4 /* countStrategy */
            invokevirtual com.mongodb.internal.operation.AsyncOperations.count:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;Lcom/mongodb/internal/client/model/CountStrategy;)Lcom/mongodb/operation/AsyncReadOperation;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            aload 5 /* callback */
            invokeinterface com.mongodb.async.client.OperationExecutor.execute:(Lcom/mongodb/operation/AsyncReadOperation;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 247
            return
        end local 5 // com.mongodb.async.SingleResultCallback callback
        end local 4 // com.mongodb.internal.client.model.CountStrategy countStrategy
        end local 3 // com.mongodb.client.model.CountOptions options
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3        options  Lcom/mongodb/client/model/CountOptions;
            0    2     4  countStrategy  Lcom/mongodb/internal/client/model/CountStrategy;
            0    2     5       callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/CountOptions;Lcom/mongodb/internal/client/model/CountStrategy;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Long;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
      4:
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      options        final
      countStrategy  final
      callback       final

  public <TResult> com.mongodb.async.client.DistinctIterable<TResult> distinct(java.lang.String, java.lang.Class<TResult>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)Lcom/mongodb/async/client/DistinctIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // java.lang.String fieldName
        start local 2 // java.lang.Class resultClass
         0: .line 251
            aload 0 /* this */
            aload 1 /* fieldName */
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            aload 2 /* resultClass */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.distinct:(Ljava/lang/String;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/async/client/DistinctIterable;
            areturn
        end local 2 // java.lang.Class resultClass
        end local 1 // java.lang.String fieldName
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    1     1    fieldName  Ljava/lang/String;
            0    1     2  resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/DistinctIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      fieldName    final
      resultClass  final

  public <TResult> com.mongodb.async.client.DistinctIterable<TResult> distinct(java.lang.String, org.bson.conversions.Bson, java.lang.Class<TResult>);
    descriptor: (Ljava/lang/String;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/async/client/DistinctIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // java.lang.String fieldName
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.lang.Class resultClass
         0: .line 256
            aload 0 /* this */
            aconst_null
            aload 1 /* fieldName */
            aload 2 /* filter */
            aload 3 /* resultClass */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.createDistinctIterable:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/async/client/DistinctIterable;
            areturn
        end local 3 // java.lang.Class resultClass
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // java.lang.String fieldName
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    1     1    fieldName  Ljava/lang/String;
            0    1     2       filter  Lorg/bson/conversions/Bson;
            0    1     3  resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Ljava/lang/String;Lorg/bson/conversions/Bson;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/DistinctIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      fieldName    final
      filter       final
      resultClass  final

  public <TResult> com.mongodb.async.client.DistinctIterable<TResult> distinct(com.mongodb.async.client.ClientSession, java.lang.String, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Ljava/lang/Class;)Lcom/mongodb/async/client/DistinctIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.lang.String fieldName
        start local 3 // java.lang.Class resultClass
         0: .line 262
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* fieldName */
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            aload 3 /* resultClass */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.distinct:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/async/client/DistinctIterable;
            areturn
        end local 3 // java.lang.Class resultClass
        end local 2 // java.lang.String fieldName
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    1     2      fieldName  Ljava/lang/String;
            0    1     3    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/DistinctIterable<TTResult;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      fieldName      final
      resultClass    final

  public <TResult> com.mongodb.async.client.DistinctIterable<TResult> distinct(com.mongodb.async.client.ClientSession, java.lang.String, org.bson.conversions.Bson, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/async/client/DistinctIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.lang.String fieldName
        start local 3 // org.bson.conversions.Bson filter
        start local 4 // java.lang.Class resultClass
         0: .line 268
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 269
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* fieldName */
            aload 3 /* filter */
            aload 4 /* resultClass */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.createDistinctIterable:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/async/client/DistinctIterable;
            areturn
        end local 4 // java.lang.Class resultClass
        end local 3 // org.bson.conversions.Bson filter
        end local 2 // java.lang.String fieldName
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2      fieldName  Ljava/lang/String;
            0    2     3         filter  Lorg/bson/conversions/Bson;
            0    2     4    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lorg/bson/conversions/Bson;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/DistinctIterable<TTResult;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      fieldName      final
      filter         final
      resultClass    final

  private <TResult> com.mongodb.async.client.DistinctIterable<TResult> createDistinctIterable(com.mongodb.async.client.ClientSession, java.lang.String, org.bson.conversions.Bson, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/async/client/DistinctIterable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=13, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.lang.String fieldName
        start local 3 // org.bson.conversions.Bson filter
        start local 4 // java.lang.Class resultClass
         0: .line 274
            new com.mongodb.async.client.DistinctIterableImpl
            dup
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.namespace:Lcom/mongodb/MongoNamespace;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            aload 4 /* resultClass */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
         1: .line 275
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            aload 2 /* fieldName */
            aload 3 /* filter */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.retryReads:Z
         2: .line 274
            invokespecial com.mongodb.async.client.DistinctIterableImpl.<init>:(Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/MongoNamespace;Ljava/lang/Class;Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/OperationExecutor;Ljava/lang/String;Lorg/bson/conversions/Bson;Z)V
            areturn
        end local 4 // java.lang.Class resultClass
        end local 3 // org.bson.conversions.Bson filter
        end local 2 // java.lang.String fieldName
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2      fieldName  Ljava/lang/String;
            0    3     3         filter  Lorg/bson/conversions/Bson;
            0    3     4    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lorg/bson/conversions/Bson;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/DistinctIterable<TTResult;>;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
    MethodParameters:
               Name  Flags
      clientSession  final
      fieldName      final
      filter         final
      resultClass    final

  public com.mongodb.async.client.FindIterable<TDocument> find();
    descriptor: ()Lcom/mongodb/async/client/FindIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
         0: .line 280
            aload 0 /* this */
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.find:(Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/async/client/FindIterable;
            areturn
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
    Signature: ()Lcom/mongodb/async/client/FindIterable<TTDocument;>;

  public <TResult> com.mongodb.async.client.FindIterable<TResult> find(java.lang.Class<TResult>);
    descriptor: (Ljava/lang/Class;)Lcom/mongodb/async/client/FindIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // java.lang.Class resultClass
         0: .line 285
            aload 0 /* this */
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            aload 1 /* resultClass */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.find:(Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/async/client/FindIterable;
            areturn
        end local 1 // java.lang.Class resultClass
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    1     1  resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/FindIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      resultClass  final

  public com.mongodb.async.client.FindIterable<TDocument> find(org.bson.conversions.Bson);
    descriptor: (Lorg/bson/conversions/Bson;)Lcom/mongodb/async/client/FindIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
         0: .line 290
            aload 0 /* this */
            aload 1 /* filter */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.find:(Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/async/client/FindIterable;
            areturn
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    1     1  filter  Lorg/bson/conversions/Bson;
    Signature: (Lorg/bson/conversions/Bson;)Lcom/mongodb/async/client/FindIterable<TTDocument;>;
    MethodParameters:
        Name  Flags
      filter  final

  public <TResult> com.mongodb.async.client.FindIterable<TResult> find(org.bson.conversions.Bson, java.lang.Class<TResult>);
    descriptor: (Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/async/client/FindIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // java.lang.Class resultClass
         0: .line 295
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* resultClass */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.createFindIterable:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/async/client/FindIterable;
            areturn
        end local 2 // java.lang.Class resultClass
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    1     1       filter  Lorg/bson/conversions/Bson;
            0    1     2  resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lorg/bson/conversions/Bson;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/FindIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      filter       final
      resultClass  final

  public com.mongodb.async.client.FindIterable<TDocument> find(com.mongodb.async.client.ClientSession);
    descriptor: (Lcom/mongodb/async/client/ClientSession;)Lcom/mongodb/async/client/FindIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
         0: .line 300
            aload 0 /* this */
            aload 1 /* clientSession */
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.find:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/async/client/FindIterable;
            areturn
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/async/client/ClientSession;
    Signature: (Lcom/mongodb/async/client/ClientSession;)Lcom/mongodb/async/client/FindIterable<TTDocument;>;
    MethodParameters:
               Name  Flags
      clientSession  final

  public <TResult> com.mongodb.async.client.FindIterable<TResult> find(com.mongodb.async.client.ClientSession, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/Class;)Lcom/mongodb/async/client/FindIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.lang.Class resultClass
         0: .line 305
            aload 0 /* this */
            aload 1 /* clientSession */
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            aload 2 /* resultClass */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.find:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/async/client/FindIterable;
            areturn
        end local 2 // java.lang.Class resultClass
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    1     2    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/async/client/ClientSession;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/FindIterable<TTResult;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      resultClass    final

  public com.mongodb.async.client.FindIterable<TDocument> find(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;)Lcom/mongodb/async/client/FindIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
         0: .line 310
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.find:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/async/client/FindIterable;
            areturn
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    1     2         filter  Lorg/bson/conversions/Bson;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;)Lcom/mongodb/async/client/FindIterable<TTDocument;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final

  public <TResult> com.mongodb.async.client.FindIterable<TResult> find(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/async/client/FindIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.lang.Class resultClass
         0: .line 315
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 316
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* resultClass */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.createFindIterable:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/async/client/FindIterable;
            areturn
        end local 3 // java.lang.Class resultClass
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/FindIterable<TTResult;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      resultClass    final

  private <TResult> com.mongodb.async.client.FindIterable<TResult> createFindIterable(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/async/client/FindIterable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=12, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.lang.Class resultClass
         0: .line 321
            new com.mongodb.async.client.FindIterableImpl
            dup
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.namespace:Lcom/mongodb/MongoNamespace;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            aload 3 /* resultClass */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
         1: .line 322
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            aload 2 /* filter */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.retryReads:Z
         2: .line 321
            invokespecial com.mongodb.async.client.FindIterableImpl.<init>:(Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/MongoNamespace;Ljava/lang/Class;Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/OperationExecutor;Lorg/bson/conversions/Bson;Z)V
            areturn
        end local 3 // java.lang.Class resultClass
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2         filter  Lorg/bson/conversions/Bson;
            0    3     3    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/FindIterable<TTResult;>;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      resultClass    final

  public com.mongodb.async.client.AggregateIterable<TDocument> aggregate(java.util.List<? extends org.bson.conversions.Bson>);
    descriptor: (Ljava/util/List;)Lcom/mongodb/async/client/AggregateIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // java.util.List pipeline
         0: .line 327
            aload 0 /* this */
            aload 1 /* pipeline */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.aggregate:(Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/AggregateIterable;
            areturn
        end local 1 // java.util.List pipeline
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    1     1  pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
    Signature: (Ljava/util/List<+Lorg/bson/conversions/Bson;>;)Lcom/mongodb/async/client/AggregateIterable<TTDocument;>;
    MethodParameters:
          Name  Flags
      pipeline  final

  public <TResult> com.mongodb.async.client.AggregateIterable<TResult> aggregate(java.util.List<? extends org.bson.conversions.Bson>, java.lang.Class<TResult>);
    descriptor: (Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/AggregateIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // java.util.List pipeline
        start local 2 // java.lang.Class resultClass
         0: .line 332
            aload 0 /* this */
            aconst_null
            aload 1 /* pipeline */
            aload 2 /* resultClass */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.createAggregateIterable:(Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/AggregateIterable;
            areturn
        end local 2 // java.lang.Class resultClass
        end local 1 // java.util.List pipeline
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    1     1     pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    1     2  resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Ljava/util/List<+Lorg/bson/conversions/Bson;>;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/AggregateIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      pipeline     final
      resultClass  final

  public com.mongodb.async.client.AggregateIterable<TDocument> aggregate(com.mongodb.async.client.ClientSession, java.util.List<? extends org.bson.conversions.Bson>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List;)Lcom/mongodb/async/client/AggregateIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.util.List pipeline
         0: .line 337
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* pipeline */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.aggregate:(Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/AggregateIterable;
            areturn
        end local 2 // java.util.List pipeline
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    1     2       pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List<+Lorg/bson/conversions/Bson;>;)Lcom/mongodb/async/client/AggregateIterable<TTDocument;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      pipeline       final

  public <TResult> com.mongodb.async.client.AggregateIterable<TResult> aggregate(com.mongodb.async.client.ClientSession, java.util.List<? extends org.bson.conversions.Bson>, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/AggregateIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.util.List pipeline
        start local 3 // java.lang.Class resultClass
         0: .line 343
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 344
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* pipeline */
            aload 3 /* resultClass */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.createAggregateIterable:(Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/AggregateIterable;
            areturn
        end local 3 // java.lang.Class resultClass
        end local 2 // java.util.List pipeline
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2       pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    2     3    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/async/client/ClientSession;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/AggregateIterable<TTResult;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      pipeline       final
      resultClass    final

  private <TResult> com.mongodb.async.client.AggregateIterable<TResult> createAggregateIterable(com.mongodb.async.client.ClientSession, java.util.List<? extends org.bson.conversions.Bson>, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/AggregateIterable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=14, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.util.List pipeline
        start local 3 // java.lang.Class resultClass
         0: .line 350
            new com.mongodb.async.client.AggregateIterableImpl
            dup
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.namespace:Lcom/mongodb/MongoNamespace;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            aload 3 /* resultClass */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
         1: .line 351
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.writeConcern:Lcom/mongodb/WriteConcern;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            aload 2 /* pipeline */
            getstatic com.mongodb.client.model.AggregationLevel.COLLECTION:Lcom/mongodb/client/model/AggregationLevel;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.retryReads:Z
         2: .line 350
            invokespecial com.mongodb.async.client.AggregateIterableImpl.<init>:(Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/MongoNamespace;Ljava/lang/Class;Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/WriteConcern;Lcom/mongodb/async/client/OperationExecutor;Ljava/util/List;Lcom/mongodb/client/model/AggregationLevel;Z)V
            areturn
        end local 3 // java.lang.Class resultClass
        end local 2 // java.util.List pipeline
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2       pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    3     3    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/async/client/ClientSession;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/AggregateIterable<TTResult;>;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
    MethodParameters:
               Name  Flags
      clientSession  final
      pipeline       final
      resultClass    final

  public com.mongodb.async.client.ChangeStreamIterable<TDocument> watch();
    descriptor: ()Lcom/mongodb/async/client/ChangeStreamIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
         0: .line 356
            aload 0 /* this */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.watch:(Ljava/util/List;)Lcom/mongodb/async/client/ChangeStreamIterable;
            areturn
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
    Signature: ()Lcom/mongodb/async/client/ChangeStreamIterable<TTDocument;>;

  public <TResult> com.mongodb.async.client.ChangeStreamIterable<TResult> watch(java.lang.Class<TResult>);
    descriptor: (Ljava/lang/Class;)Lcom/mongodb/async/client/ChangeStreamIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // java.lang.Class resultClass
         0: .line 361
            aload 0 /* this */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            aload 1 /* resultClass */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.watch:(Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/ChangeStreamIterable;
            areturn
        end local 1 // java.lang.Class resultClass
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    1     1  resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/ChangeStreamIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      resultClass  final

  public com.mongodb.async.client.ChangeStreamIterable<TDocument> watch(java.util.List<? extends org.bson.conversions.Bson>);
    descriptor: (Ljava/util/List;)Lcom/mongodb/async/client/ChangeStreamIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // java.util.List pipeline
         0: .line 366
            aload 0 /* this */
            aload 1 /* pipeline */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.watch:(Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/ChangeStreamIterable;
            areturn
        end local 1 // java.util.List pipeline
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    1     1  pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
    Signature: (Ljava/util/List<+Lorg/bson/conversions/Bson;>;)Lcom/mongodb/async/client/ChangeStreamIterable<TTDocument;>;
    MethodParameters:
          Name  Flags
      pipeline  final

  public <TResult> com.mongodb.async.client.ChangeStreamIterable<TResult> watch(java.util.List<? extends org.bson.conversions.Bson>, java.lang.Class<TResult>);
    descriptor: (Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/ChangeStreamIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // java.util.List pipeline
        start local 2 // java.lang.Class resultClass
         0: .line 371
            aload 0 /* this */
            aconst_null
            aload 1 /* pipeline */
            aload 2 /* resultClass */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.createChangeStreamIterable:(Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/ChangeStreamIterable;
            areturn
        end local 2 // java.lang.Class resultClass
        end local 1 // java.util.List pipeline
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    1     1     pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    1     2  resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Ljava/util/List<+Lorg/bson/conversions/Bson;>;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/ChangeStreamIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      pipeline     final
      resultClass  final

  public com.mongodb.async.client.ChangeStreamIterable<TDocument> watch(com.mongodb.async.client.ClientSession);
    descriptor: (Lcom/mongodb/async/client/ClientSession;)Lcom/mongodb/async/client/ChangeStreamIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
         0: .line 376
            aload 0 /* this */
            aload 1 /* clientSession */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.watch:(Lcom/mongodb/async/client/ClientSession;Ljava/util/List;)Lcom/mongodb/async/client/ChangeStreamIterable;
            areturn
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/async/client/ClientSession;
    Signature: (Lcom/mongodb/async/client/ClientSession;)Lcom/mongodb/async/client/ChangeStreamIterable<TTDocument;>;
    MethodParameters:
               Name  Flags
      clientSession  final

  public <TResult> com.mongodb.async.client.ChangeStreamIterable<TResult> watch(com.mongodb.async.client.ClientSession, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/Class;)Lcom/mongodb/async/client/ChangeStreamIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.lang.Class resultClass
         0: .line 381
            aload 0 /* this */
            aload 1 /* clientSession */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            aload 2 /* resultClass */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.watch:(Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/ChangeStreamIterable;
            areturn
        end local 2 // java.lang.Class resultClass
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    1     2    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/async/client/ClientSession;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/ChangeStreamIterable<TTResult;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      resultClass    final

  public com.mongodb.async.client.ChangeStreamIterable<TDocument> watch(com.mongodb.async.client.ClientSession, java.util.List<? extends org.bson.conversions.Bson>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List;)Lcom/mongodb/async/client/ChangeStreamIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.util.List pipeline
         0: .line 386
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* pipeline */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.watch:(Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/ChangeStreamIterable;
            areturn
        end local 2 // java.util.List pipeline
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    1     2       pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List<+Lorg/bson/conversions/Bson;>;)Lcom/mongodb/async/client/ChangeStreamIterable<TTDocument;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      pipeline       final

  public <TResult> com.mongodb.async.client.ChangeStreamIterable<TResult> watch(com.mongodb.async.client.ClientSession, java.util.List<? extends org.bson.conversions.Bson>, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/ChangeStreamIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.util.List pipeline
        start local 3 // java.lang.Class resultClass
         0: .line 392
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 393
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* pipeline */
            aload 3 /* resultClass */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.createChangeStreamIterable:(Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/ChangeStreamIterable;
            areturn
        end local 3 // java.lang.Class resultClass
        end local 2 // java.util.List pipeline
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2       pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    2     3    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/async/client/ClientSession;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/ChangeStreamIterable<TTResult;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      pipeline       final
      resultClass    final

  private <TResult> com.mongodb.async.client.ChangeStreamIterable<TResult> createChangeStreamIterable(com.mongodb.async.client.ClientSession, java.util.List<? extends org.bson.conversions.Bson>, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/ChangeStreamIterable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=12, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.util.List pipeline
        start local 3 // java.lang.Class resultClass
         0: .line 399
            new com.mongodb.async.client.ChangeStreamIterableImpl
            dup
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.namespace:Lcom/mongodb/MongoNamespace;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
         1: .line 400
            aload 2 /* pipeline */
            aload 3 /* resultClass */
            getstatic com.mongodb.client.model.changestream.ChangeStreamLevel.COLLECTION:Lcom/mongodb/client/model/changestream/ChangeStreamLevel;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.retryReads:Z
         2: .line 399
            invokespecial com.mongodb.async.client.ChangeStreamIterableImpl.<init>:(Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/MongoNamespace;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/OperationExecutor;Ljava/util/List;Ljava/lang/Class;Lcom/mongodb/client/model/changestream/ChangeStreamLevel;Z)V
            areturn
        end local 3 // java.lang.Class resultClass
        end local 2 // java.util.List pipeline
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2       pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    3     3    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/async/client/ClientSession;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/ChangeStreamIterable<TTResult;>;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
    MethodParameters:
               Name  Flags
      clientSession  final
      pipeline       final
      resultClass    final

  public com.mongodb.async.client.MapReduceIterable<TDocument> mapReduce(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lcom/mongodb/async/client/MapReduceIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // java.lang.String mapFunction
        start local 2 // java.lang.String reduceFunction
         0: .line 405
            aload 0 /* this */
            aload 1 /* mapFunction */
            aload 2 /* reduceFunction */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.mapReduce:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)Lcom/mongodb/async/client/MapReduceIterable;
            areturn
        end local 2 // java.lang.String reduceFunction
        end local 1 // java.lang.String mapFunction
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    1     1     mapFunction  Ljava/lang/String;
            0    1     2  reduceFunction  Ljava/lang/String;
    Signature: (Ljava/lang/String;Ljava/lang/String;)Lcom/mongodb/async/client/MapReduceIterable<TTDocument;>;
    MethodParameters:
                Name  Flags
      mapFunction     final
      reduceFunction  final

  public <TResult> com.mongodb.async.client.MapReduceIterable<TResult> mapReduce(java.lang.String, java.lang.String, java.lang.Class<TResult>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)Lcom/mongodb/async/client/MapReduceIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // java.lang.String mapFunction
        start local 2 // java.lang.String reduceFunction
        start local 3 // java.lang.Class resultClass
         0: .line 411
            aload 0 /* this */
            aconst_null
            aload 1 /* mapFunction */
            aload 2 /* reduceFunction */
            aload 3 /* resultClass */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.createMapReduceIterable:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)Lcom/mongodb/async/client/MapReduceIterable;
            areturn
        end local 3 // java.lang.Class resultClass
        end local 2 // java.lang.String reduceFunction
        end local 1 // java.lang.String mapFunction
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    1     1     mapFunction  Ljava/lang/String;
            0    1     2  reduceFunction  Ljava/lang/String;
            0    1     3     resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/MapReduceIterable<TTResult;>;
    MethodParameters:
                Name  Flags
      mapFunction     final
      reduceFunction  final
      resultClass     final

  public com.mongodb.async.client.MapReduceIterable<TDocument> mapReduce(com.mongodb.async.client.ClientSession, java.lang.String, java.lang.String);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Ljava/lang/String;)Lcom/mongodb/async/client/MapReduceIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.lang.String mapFunction
        start local 3 // java.lang.String reduceFunction
         0: .line 417
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* mapFunction */
            aload 3 /* reduceFunction */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.mapReduce:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)Lcom/mongodb/async/client/MapReduceIterable;
            areturn
        end local 3 // java.lang.String reduceFunction
        end local 2 // java.lang.String mapFunction
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    1     1   clientSession  Lcom/mongodb/async/client/ClientSession;
            0    1     2     mapFunction  Ljava/lang/String;
            0    1     3  reduceFunction  Ljava/lang/String;
    Signature: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Ljava/lang/String;)Lcom/mongodb/async/client/MapReduceIterable<TTDocument;>;
    MethodParameters:
                Name  Flags
      clientSession   final
      mapFunction     final
      reduceFunction  final

  public <TResult> com.mongodb.async.client.MapReduceIterable<TResult> mapReduce(com.mongodb.async.client.ClientSession, java.lang.String, java.lang.String, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)Lcom/mongodb/async/client/MapReduceIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.lang.String mapFunction
        start local 3 // java.lang.String reduceFunction
        start local 4 // java.lang.Class resultClass
         0: .line 423
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 424
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* mapFunction */
            aload 3 /* reduceFunction */
            aload 4 /* resultClass */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.createMapReduceIterable:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)Lcom/mongodb/async/client/MapReduceIterable;
            areturn
        end local 4 // java.lang.Class resultClass
        end local 3 // java.lang.String reduceFunction
        end local 2 // java.lang.String mapFunction
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1   clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2     mapFunction  Ljava/lang/String;
            0    2     3  reduceFunction  Ljava/lang/String;
            0    2     4     resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/MapReduceIterable<TTResult;>;
    MethodParameters:
                Name  Flags
      clientSession   final
      mapFunction     final
      reduceFunction  final
      resultClass     final

  private <TResult> com.mongodb.async.client.MapReduceIterable<TResult> createMapReduceIterable(com.mongodb.async.client.ClientSession, java.lang.String, java.lang.String, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)Lcom/mongodb/async/client/MapReduceIterable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=13, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.lang.String mapFunction
        start local 3 // java.lang.String reduceFunction
        start local 4 // java.lang.Class resultClass
         0: .line 430
            new com.mongodb.async.client.MapReduceIterableImpl
            dup
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.namespace:Lcom/mongodb/MongoNamespace;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.documentClass:Ljava/lang/Class;
            aload 4 /* resultClass */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
         1: .line 431
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.writeConcern:Lcom/mongodb/WriteConcern;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            aload 2 /* mapFunction */
            aload 3 /* reduceFunction */
         2: .line 430
            invokespecial com.mongodb.async.client.MapReduceIterableImpl.<init>:(Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/MongoNamespace;Ljava/lang/Class;Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/WriteConcern;Lcom/mongodb/async/client/OperationExecutor;Ljava/lang/String;Ljava/lang/String;)V
            areturn
        end local 4 // java.lang.Class resultClass
        end local 3 // java.lang.String reduceFunction
        end local 2 // java.lang.String mapFunction
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1   clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2     mapFunction  Ljava/lang/String;
            0    3     3  reduceFunction  Ljava/lang/String;
            0    3     4     resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/MapReduceIterable<TTResult;>;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
    MethodParameters:
                Name  Flags
      clientSession   final
      mapFunction     final
      reduceFunction  final
      resultClass     final

  public void bulkWrite(java.util.List<? extends com.mongodb.client.model.WriteModel<? extends TDocument>>, com.mongodb.async.SingleResultCallback<com.mongodb.bulk.BulkWriteResult>);
    descriptor: (Ljava/util/List;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // java.util.List requests
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 437
            aload 0 /* this */
            aload 1 /* requests */
            new com.mongodb.client.model.BulkWriteOptions
            dup
            invokespecial com.mongodb.client.model.BulkWriteOptions.<init>:()V
            aload 2 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.bulkWrite:(Ljava/util/List;Lcom/mongodb/client/model/BulkWriteOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 438
            return
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // java.util.List requests
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  requests  Ljava/util/List<+Lcom/mongodb/client/model/WriteModel<+TTDocument;>;>;
            0    2     2  callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/bulk/BulkWriteResult;>;
    Signature: (Ljava/util/List<+Lcom/mongodb/client/model/WriteModel<+TTDocument;>;>;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/bulk/BulkWriteResult;>;)V
    MethodParameters:
          Name  Flags
      requests  final
      callback  final

  public void bulkWrite(java.util.List<? extends com.mongodb.client.model.WriteModel<? extends TDocument>>, com.mongodb.client.model.BulkWriteOptions, com.mongodb.async.SingleResultCallback<com.mongodb.bulk.BulkWriteResult>);
    descriptor: (Ljava/util/List;Lcom/mongodb/client/model/BulkWriteOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // java.util.List requests
        start local 2 // com.mongodb.client.model.BulkWriteOptions options
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 443
            aload 0 /* this */
            aconst_null
            aload 1 /* requests */
            aload 2 /* options */
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeBulkWrite:(Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/BulkWriteOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 444
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // com.mongodb.client.model.BulkWriteOptions options
        end local 1 // java.util.List requests
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  requests  Ljava/util/List<+Lcom/mongodb/client/model/WriteModel<+TTDocument;>;>;
            0    2     2   options  Lcom/mongodb/client/model/BulkWriteOptions;
            0    2     3  callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/bulk/BulkWriteResult;>;
    Signature: (Ljava/util/List<+Lcom/mongodb/client/model/WriteModel<+TTDocument;>;>;Lcom/mongodb/client/model/BulkWriteOptions;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/bulk/BulkWriteResult;>;)V
    MethodParameters:
          Name  Flags
      requests  final
      options   final
      callback  final

  public void bulkWrite(com.mongodb.async.client.ClientSession, java.util.List<? extends com.mongodb.client.model.WriteModel<? extends TDocument>>, com.mongodb.async.SingleResultCallback<com.mongodb.bulk.BulkWriteResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.util.List requests
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 449
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* requests */
            new com.mongodb.client.model.BulkWriteOptions
            dup
            invokespecial com.mongodb.client.model.BulkWriteOptions.<init>:()V
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.bulkWrite:(Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/BulkWriteOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 450
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // java.util.List requests
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2       requests  Ljava/util/List<+Lcom/mongodb/client/model/WriteModel<+TTDocument;>;>;
            0    2     3       callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/bulk/BulkWriteResult;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List<+Lcom/mongodb/client/model/WriteModel<+TTDocument;>;>;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/bulk/BulkWriteResult;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      requests       final
      callback       final

  public void bulkWrite(com.mongodb.async.client.ClientSession, java.util.List<? extends com.mongodb.client.model.WriteModel<? extends TDocument>>, com.mongodb.client.model.BulkWriteOptions, com.mongodb.async.SingleResultCallback<com.mongodb.bulk.BulkWriteResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/BulkWriteOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.util.List requests
        start local 3 // com.mongodb.client.model.BulkWriteOptions options
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 455
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 456
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* requests */
            aload 3 /* options */
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeBulkWrite:(Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/BulkWriteOptions;Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 457
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.BulkWriteOptions options
        end local 2 // java.util.List requests
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2       requests  Ljava/util/List<+Lcom/mongodb/client/model/WriteModel<+TTDocument;>;>;
            0    3     3        options  Lcom/mongodb/client/model/BulkWriteOptions;
            0    3     4       callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/bulk/BulkWriteResult;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List<+Lcom/mongodb/client/model/WriteModel<+TTDocument;>;>;Lcom/mongodb/client/model/BulkWriteOptions;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/bulk/BulkWriteResult;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      requests       final
      options        final
      callback       final

  private void executeBulkWrite(com.mongodb.async.client.ClientSession, java.util.List<? extends com.mongodb.client.model.WriteModel<? extends TDocument>>, com.mongodb.client.model.BulkWriteOptions, com.mongodb.async.SingleResultCallback<com.mongodb.bulk.BulkWriteResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/BulkWriteOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.util.List requests
        start local 3 // com.mongodb.client.model.BulkWriteOptions options
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 463
            ldc "requests"
            aload 2 /* requests */
            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.async.client.MongoCollectionImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/AsyncOperations;
            aload 2 /* requests */
            aload 3 /* options */
            invokevirtual com.mongodb.internal.operation.AsyncOperations.bulkWrite:(Ljava/util/List;Lcom/mongodb/client/model/BulkWriteOptions;)Lcom/mongodb/operation/AsyncWriteOperation;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            aload 4 /* callback */
            invokeinterface com.mongodb.async.client.OperationExecutor.execute:(Lcom/mongodb/operation/AsyncWriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 465
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.BulkWriteOptions options
        end local 2 // java.util.List requests
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2       requests  Ljava/util/List<+Lcom/mongodb/client/model/WriteModel<+TTDocument;>;>;
            0    3     3        options  Lcom/mongodb/client/model/BulkWriteOptions;
            0    3     4       callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/bulk/BulkWriteResult;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List<+Lcom/mongodb/client/model/WriteModel<+TTDocument;>;>;Lcom/mongodb/client/model/BulkWriteOptions;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/bulk/BulkWriteResult;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
    MethodParameters:
               Name  Flags
      clientSession  final
      requests       final
      options        final
      callback       final

  public void insertOne(TDocument, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Ljava/lang/Object;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // java.lang.Object document
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 469
            aload 0 /* this */
            aload 1 /* document */
            new com.mongodb.client.model.InsertOneOptions
            dup
            invokespecial com.mongodb.client.model.InsertOneOptions.<init>:()V
            aload 2 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.insertOne:(Ljava/lang/Object;Lcom/mongodb/client/model/InsertOneOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 470
            return
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // java.lang.Object document
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  document  TTDocument;
            0    2     2  callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (TTDocument;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
          Name  Flags
      document  final
      callback  final

  public void insertOne(TDocument, com.mongodb.client.model.InsertOneOptions, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Ljava/lang/Object;Lcom/mongodb/client/model/InsertOneOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // java.lang.Object document
        start local 2 // com.mongodb.client.model.InsertOneOptions options
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 474
            aload 0 /* this */
            aconst_null
            aload 1 /* document */
            aload 2 /* options */
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeInsertOne:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/Object;Lcom/mongodb/client/model/InsertOneOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 475
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // com.mongodb.client.model.InsertOneOptions options
        end local 1 // java.lang.Object document
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  document  TTDocument;
            0    2     2   options  Lcom/mongodb/client/model/InsertOneOptions;
            0    2     3  callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (TTDocument;Lcom/mongodb/client/model/InsertOneOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
          Name  Flags
      document  final
      options   final
      callback  final

  public void insertOne(com.mongodb.async.client.ClientSession, TDocument, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/Object;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.lang.Object document
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 479
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* document */
            new com.mongodb.client.model.InsertOneOptions
            dup
            invokespecial com.mongodb.client.model.InsertOneOptions.<init>:()V
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.insertOne:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/Object;Lcom/mongodb/client/model/InsertOneOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 480
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // java.lang.Object document
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2       document  TTDocument;
            0    2     3       callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;TTDocument;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      document       final
      callback       final

  public void insertOne(com.mongodb.async.client.ClientSession, TDocument, com.mongodb.client.model.InsertOneOptions, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/Object;Lcom/mongodb/client/model/InsertOneOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.lang.Object document
        start local 3 // com.mongodb.client.model.InsertOneOptions options
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 485
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 486
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* document */
            aload 3 /* options */
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeInsertOne:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/Object;Lcom/mongodb/client/model/InsertOneOptions;Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 487
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.InsertOneOptions options
        end local 2 // java.lang.Object document
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2       document  TTDocument;
            0    3     3        options  Lcom/mongodb/client/model/InsertOneOptions;
            0    3     4       callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;TTDocument;Lcom/mongodb/client/model/InsertOneOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      document       final
      options        final
      callback       final

  private void executeInsertOne(com.mongodb.async.client.ClientSession, TDocument, com.mongodb.client.model.InsertOneOptions, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/Object;Lcom/mongodb/client/model/InsertOneOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.lang.Object document
        start local 3 // com.mongodb.client.model.InsertOneOptions options
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 491
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/AsyncOperations;
            aload 2 /* document */
            aload 3 /* options */
            invokevirtual com.mongodb.internal.operation.AsyncOperations.insertOne:(Ljava/lang/Object;Lcom/mongodb/client/model/InsertOneOptions;)Lcom/mongodb/operation/AsyncWriteOperation;
            getstatic com.mongodb.bulk.WriteRequest$Type.INSERT:Lcom/mongodb/bulk/WriteRequest$Type;
         1: .line 492
            new com.mongodb.async.client.MongoCollectionImpl$1
            dup
            aload 0 /* this */
            aload 4 /* callback */
            invokespecial com.mongodb.async.client.MongoCollectionImpl$1.<init>:(Lcom/mongodb/async/client/MongoCollectionImpl;Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 491
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeSingleWriteRequest:(Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/operation/AsyncWriteOperation;Lcom/mongodb/bulk/WriteRequest$Type;Lcom/mongodb/async/SingleResultCallback;)V
         3: .line 498
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.InsertOneOptions options
        end local 2 // java.lang.Object document
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    4     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    4     2       document  TTDocument;
            0    4     3        options  Lcom/mongodb/client/model/InsertOneOptions;
            0    4     4       callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;TTDocument;Lcom/mongodb/client/model/InsertOneOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
    MethodParameters:
               Name  Flags
      clientSession  final
      document       final
      options        final
      callback       final

  public void insertMany(java.util.List<? extends TDocument>, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Ljava/util/List;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // java.util.List documents
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 502
            aload 0 /* this */
            aload 1 /* documents */
            new com.mongodb.client.model.InsertManyOptions
            dup
            invokespecial com.mongodb.client.model.InsertManyOptions.<init>:()V
            aload 2 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.insertMany:(Ljava/util/List;Lcom/mongodb/client/model/InsertManyOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 503
            return
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // java.util.List documents
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  documents  Ljava/util/List<+TTDocument;>;
            0    2     2   callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Ljava/util/List<+TTDocument;>;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
           Name  Flags
      documents  final
      callback   final

  public void insertMany(java.util.List<? extends TDocument>, com.mongodb.client.model.InsertManyOptions, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Ljava/util/List;Lcom/mongodb/client/model/InsertManyOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // java.util.List documents
        start local 2 // com.mongodb.client.model.InsertManyOptions options
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 508
            aload 0 /* this */
            aconst_null
            aload 1 /* documents */
            aload 2 /* options */
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeInsertMany:(Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/InsertManyOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 509
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // com.mongodb.client.model.InsertManyOptions options
        end local 1 // java.util.List documents
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  documents  Ljava/util/List<+TTDocument;>;
            0    2     2    options  Lcom/mongodb/client/model/InsertManyOptions;
            0    2     3   callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Ljava/util/List<+TTDocument;>;Lcom/mongodb/client/model/InsertManyOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
           Name  Flags
      documents  final
      options    final
      callback   final

  public void insertMany(com.mongodb.async.client.ClientSession, java.util.List<? extends TDocument>, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.util.List documents
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 514
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* documents */
            new com.mongodb.client.model.InsertManyOptions
            dup
            invokespecial com.mongodb.client.model.InsertManyOptions.<init>:()V
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.insertMany:(Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/InsertManyOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 515
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // java.util.List documents
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2      documents  Ljava/util/List<+TTDocument;>;
            0    2     3       callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List<+TTDocument;>;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      documents      final
      callback       final

  public void insertMany(com.mongodb.async.client.ClientSession, java.util.List<? extends TDocument>, com.mongodb.client.model.InsertManyOptions, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/InsertManyOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.util.List documents
        start local 3 // com.mongodb.client.model.InsertManyOptions options
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 520
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 521
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* documents */
            aload 3 /* options */
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeInsertMany:(Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/InsertManyOptions;Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 522
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.InsertManyOptions options
        end local 2 // java.util.List documents
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2      documents  Ljava/util/List<+TTDocument;>;
            0    3     3        options  Lcom/mongodb/client/model/InsertManyOptions;
            0    3     4       callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List<+TTDocument;>;Lcom/mongodb/client/model/InsertManyOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      documents      final
      options        final
      callback       final

  private void executeInsertMany(com.mongodb.async.client.ClientSession, java.util.List<? extends TDocument>, com.mongodb.client.model.InsertManyOptions, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/InsertManyOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.util.List documents
        start local 3 // com.mongodb.client.model.InsertManyOptions options
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 526
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/AsyncOperations;
            aload 2 /* documents */
            aload 3 /* options */
            invokevirtual com.mongodb.internal.operation.AsyncOperations.insertMany:(Ljava/util/List;Lcom/mongodb/client/model/InsertManyOptions;)Lcom/mongodb/operation/AsyncWriteOperation;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
         1: .line 527
            new com.mongodb.async.client.MongoCollectionImpl$2
            dup
            aload 0 /* this */
            aload 4 /* callback */
            invokespecial com.mongodb.async.client.MongoCollectionImpl$2.<init>:(Lcom/mongodb/async/client/MongoCollectionImpl;Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 526
            invokeinterface com.mongodb.async.client.OperationExecutor.execute:(Lcom/mongodb/operation/AsyncWriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
         3: .line 533
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.InsertManyOptions options
        end local 2 // java.util.List documents
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    4     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    4     2      documents  Ljava/util/List<+TTDocument;>;
            0    4     3        options  Lcom/mongodb/client/model/InsertManyOptions;
            0    4     4       callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List<+TTDocument;>;Lcom/mongodb/client/model/InsertManyOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
    MethodParameters:
               Name  Flags
      clientSession  final
      documents      final
      options        final
      callback       final

  public void deleteOne(org.bson.conversions.Bson, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.DeleteResult>);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 537
            aload 0 /* this */
            aload 1 /* filter */
            new com.mongodb.client.model.DeleteOptions
            dup
            invokespecial com.mongodb.client.model.DeleteOptions.<init>:()V
            aload 2 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.deleteOne:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 538
            return
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1    filter  Lorg/bson/conversions/Bson;
            0    2     2  callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/DeleteResult;>;
    Signature: (Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/DeleteResult;>;)V
    MethodParameters:
          Name  Flags
      filter    final
      callback  final

  public void deleteOne(org.bson.conversions.Bson, com.mongodb.client.model.DeleteOptions, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.DeleteResult>);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // com.mongodb.client.model.DeleteOptions options
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 542
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* options */
            iconst_0
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeDelete:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;ZLcom/mongodb/async/SingleResultCallback;)V
         1: .line 543
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // com.mongodb.client.model.DeleteOptions options
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1    filter  Lorg/bson/conversions/Bson;
            0    2     2   options  Lcom/mongodb/client/model/DeleteOptions;
            0    2     3  callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/DeleteResult;>;
    Signature: (Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/DeleteResult;>;)V
    MethodParameters:
          Name  Flags
      filter    final
      options   final
      callback  final

  public void deleteOne(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.DeleteResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 547
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            new com.mongodb.client.model.DeleteOptions
            dup
            invokespecial com.mongodb.client.model.DeleteOptions.<init>:()V
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.deleteOne:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 548
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3       callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/DeleteResult;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/DeleteResult;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      callback       final

  public void deleteOne(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, com.mongodb.client.model.DeleteOptions, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.DeleteResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // com.mongodb.client.model.DeleteOptions options
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 553
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 554
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* options */
            iconst_0
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeDelete:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;ZLcom/mongodb/async/SingleResultCallback;)V
         2: .line 555
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.DeleteOptions options
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2         filter  Lorg/bson/conversions/Bson;
            0    3     3        options  Lcom/mongodb/client/model/DeleteOptions;
            0    3     4       callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/DeleteResult;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/DeleteResult;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      options        final
      callback       final

  public void deleteMany(org.bson.conversions.Bson, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.DeleteResult>);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 559
            aload 0 /* this */
            aload 1 /* filter */
            new com.mongodb.client.model.DeleteOptions
            dup
            invokespecial com.mongodb.client.model.DeleteOptions.<init>:()V
            aload 2 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.deleteMany:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 560
            return
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1    filter  Lorg/bson/conversions/Bson;
            0    2     2  callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/DeleteResult;>;
    Signature: (Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/DeleteResult;>;)V
    MethodParameters:
          Name  Flags
      filter    final
      callback  final

  public void deleteMany(org.bson.conversions.Bson, com.mongodb.client.model.DeleteOptions, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.DeleteResult>);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // com.mongodb.client.model.DeleteOptions options
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 564
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* options */
            iconst_1
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeDelete:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;ZLcom/mongodb/async/SingleResultCallback;)V
         1: .line 565
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // com.mongodb.client.model.DeleteOptions options
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1    filter  Lorg/bson/conversions/Bson;
            0    2     2   options  Lcom/mongodb/client/model/DeleteOptions;
            0    2     3  callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/DeleteResult;>;
    Signature: (Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/DeleteResult;>;)V
    MethodParameters:
          Name  Flags
      filter    final
      options   final
      callback  final

  public void deleteMany(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.DeleteResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 569
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            new com.mongodb.client.model.DeleteOptions
            dup
            invokespecial com.mongodb.client.model.DeleteOptions.<init>:()V
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.deleteMany:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 570
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3       callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/DeleteResult;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/DeleteResult;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      callback       final

  public void deleteMany(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, com.mongodb.client.model.DeleteOptions, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.DeleteResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // com.mongodb.client.model.DeleteOptions options
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 575
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 576
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* options */
            iconst_1
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeDelete:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;ZLcom/mongodb/async/SingleResultCallback;)V
         2: .line 577
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.DeleteOptions options
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2         filter  Lorg/bson/conversions/Bson;
            0    3     3        options  Lcom/mongodb/client/model/DeleteOptions;
            0    3     4       callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/DeleteResult;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/DeleteResult;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      options        final
      callback       final

  private void executeDelete(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, com.mongodb.client.model.DeleteOptions, boolean, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.DeleteResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;ZLcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=6, args_size=6
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // com.mongodb.client.model.DeleteOptions options
        start local 4 // boolean multi
        start local 5 // com.mongodb.async.SingleResultCallback callback
         0: .line 581
            aload 0 /* this */
            aload 1 /* clientSession */
         1: .line 582
            iload 4 /* multi */
            ifeq 2
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/AsyncOperations;
            aload 2 /* filter */
            aload 3 /* options */
            invokevirtual com.mongodb.internal.operation.AsyncOperations.deleteMany:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;)Lcom/mongodb/operation/AsyncWriteOperation;
            goto 3
      StackMap locals: com.mongodb.async.client.MongoCollectionImpl com.mongodb.async.client.ClientSession org.bson.conversions.Bson com.mongodb.client.model.DeleteOptions int com.mongodb.async.SingleResultCallback
      StackMap stack: com.mongodb.async.client.MongoCollectionImpl com.mongodb.async.client.ClientSession
         2: aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/AsyncOperations;
            aload 2 /* filter */
            aload 3 /* options */
            invokevirtual com.mongodb.internal.operation.AsyncOperations.deleteOne:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;)Lcom/mongodb/operation/AsyncWriteOperation;
      StackMap locals: com.mongodb.async.client.MongoCollectionImpl com.mongodb.async.client.ClientSession org.bson.conversions.Bson com.mongodb.client.model.DeleteOptions int com.mongodb.async.SingleResultCallback
      StackMap stack: com.mongodb.async.client.MongoCollectionImpl com.mongodb.async.client.ClientSession com.mongodb.operation.AsyncWriteOperation
         3: getstatic com.mongodb.bulk.WriteRequest$Type.DELETE:Lcom/mongodb/bulk/WriteRequest$Type;
         4: .line 583
            new com.mongodb.async.client.MongoCollectionImpl$3
            dup
            aload 0 /* this */
            aload 5 /* callback */
            invokespecial com.mongodb.async.client.MongoCollectionImpl$3.<init>:(Lcom/mongodb/async/client/MongoCollectionImpl;Lcom/mongodb/async/SingleResultCallback;)V
         5: .line 581
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeSingleWriteRequest:(Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/operation/AsyncWriteOperation;Lcom/mongodb/bulk/WriteRequest$Type;Lcom/mongodb/async/SingleResultCallback;)V
         6: .line 598
            return
        end local 5 // com.mongodb.async.SingleResultCallback callback
        end local 4 // boolean multi
        end local 3 // com.mongodb.client.model.DeleteOptions options
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    7     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    7     2         filter  Lorg/bson/conversions/Bson;
            0    7     3        options  Lcom/mongodb/client/model/DeleteOptions;
            0    7     4          multi  Z
            0    7     5       callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/DeleteResult;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DeleteOptions;ZLcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/DeleteResult;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
      4:
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      options        final
      multi          final
      callback       final

  public void replaceOne(org.bson.conversions.Bson, TDocument, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.UpdateResult>);
    descriptor: (Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // java.lang.Object replacement
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 602
            aload 0 /* this */
            aload 1 /* filter */
            aload 2 /* replacement */
            new com.mongodb.client.model.ReplaceOptions
            dup
            invokespecial com.mongodb.client.model.ReplaceOptions.<init>:()V
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.replaceOne:(Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/ReplaceOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 603
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // java.lang.Object replacement
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1       filter  Lorg/bson/conversions/Bson;
            0    2     2  replacement  TTDocument;
            0    2     3     callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;
    Signature: (Lorg/bson/conversions/Bson;TTDocument;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;)V
    MethodParameters:
             Name  Flags
      filter       final
      replacement  final
      callback     final

  public void replaceOne(org.bson.conversions.Bson, TDocument, com.mongodb.client.model.UpdateOptions, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.UpdateResult>);
    descriptor: (Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // java.lang.Object replacement
        start local 3 // com.mongodb.client.model.UpdateOptions options
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 609
            aload 0 /* this */
            aload 1 /* filter */
            aload 2 /* replacement */
            aload 3 /* options */
            invokestatic com.mongodb.client.model.ReplaceOptions.createReplaceOptions:(Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/model/ReplaceOptions;
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.replaceOne:(Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/ReplaceOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 610
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.UpdateOptions options
        end local 2 // java.lang.Object replacement
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1       filter  Lorg/bson/conversions/Bson;
            0    2     2  replacement  TTDocument;
            0    2     3      options  Lcom/mongodb/client/model/UpdateOptions;
            0    2     4     callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;
    Signature: (Lorg/bson/conversions/Bson;TTDocument;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;)V
    MethodParameters:
             Name  Flags
      filter       final
      replacement  final
      options      final
      callback     final

  public void replaceOne(org.bson.conversions.Bson, TDocument, com.mongodb.client.model.ReplaceOptions, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.UpdateResult>);
    descriptor: (Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/ReplaceOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // java.lang.Object replacement
        start local 3 // com.mongodb.client.model.ReplaceOptions options
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 615
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* replacement */
            aload 3 /* options */
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeReplaceOne:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/ReplaceOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 616
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.ReplaceOptions options
        end local 2 // java.lang.Object replacement
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1       filter  Lorg/bson/conversions/Bson;
            0    2     2  replacement  TTDocument;
            0    2     3      options  Lcom/mongodb/client/model/ReplaceOptions;
            0    2     4     callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;
    Signature: (Lorg/bson/conversions/Bson;TTDocument;Lcom/mongodb/client/model/ReplaceOptions;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;)V
    MethodParameters:
             Name  Flags
      filter       final
      replacement  final
      options      final
      callback     final

  public void replaceOne(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, TDocument, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.UpdateResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.lang.Object replacement
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 621
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* replacement */
            new com.mongodb.client.model.ReplaceOptions
            dup
            invokespecial com.mongodb.client.model.ReplaceOptions.<init>:()V
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.replaceOne:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/ReplaceOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 622
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // java.lang.Object replacement
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3    replacement  TTDocument;
            0    2     4       callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;TTDocument;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      replacement    final
      callback       final

  public void replaceOne(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, TDocument, com.mongodb.client.model.UpdateOptions, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.UpdateResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.lang.Object replacement
        start local 4 // com.mongodb.client.model.UpdateOptions options
        start local 5 // com.mongodb.async.SingleResultCallback callback
         0: .line 628
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* replacement */
            aload 4 /* options */
            invokestatic com.mongodb.client.model.ReplaceOptions.createReplaceOptions:(Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/client/model/ReplaceOptions;
            aload 5 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.replaceOne:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/ReplaceOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 629
            return
        end local 5 // com.mongodb.async.SingleResultCallback callback
        end local 4 // com.mongodb.client.model.UpdateOptions options
        end local 3 // java.lang.Object replacement
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3    replacement  TTDocument;
            0    2     4        options  Lcom/mongodb/client/model/UpdateOptions;
            0    2     5       callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;TTDocument;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      replacement    final
      options        final
      callback       final

  public void replaceOne(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, TDocument, com.mongodb.client.model.ReplaceOptions, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.UpdateResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/ReplaceOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.lang.Object replacement
        start local 4 // com.mongodb.client.model.ReplaceOptions options
        start local 5 // com.mongodb.async.SingleResultCallback callback
         0: .line 634
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 635
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* replacement */
            aload 4 /* options */
            aload 5 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeReplaceOne:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/ReplaceOptions;Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 636
            return
        end local 5 // com.mongodb.async.SingleResultCallback callback
        end local 4 // com.mongodb.client.model.ReplaceOptions options
        end local 3 // java.lang.Object replacement
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2         filter  Lorg/bson/conversions/Bson;
            0    3     3    replacement  TTDocument;
            0    3     4        options  Lcom/mongodb/client/model/ReplaceOptions;
            0    3     5       callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;TTDocument;Lcom/mongodb/client/model/ReplaceOptions;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      replacement    final
      options        final
      callback       final

  private void executeReplaceOne(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, TDocument, com.mongodb.client.model.ReplaceOptions, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.UpdateResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/ReplaceOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=6, args_size=6
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.lang.Object replacement
        start local 4 // com.mongodb.client.model.ReplaceOptions options
        start local 5 // com.mongodb.async.SingleResultCallback callback
         0: .line 640
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/AsyncOperations;
            aload 2 /* filter */
            aload 3 /* replacement */
            aload 4 /* options */
            invokevirtual com.mongodb.internal.operation.AsyncOperations.replaceOne:(Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/ReplaceOptions;)Lcom/mongodb/operation/AsyncWriteOperation;
            getstatic com.mongodb.bulk.WriteRequest$Type.REPLACE:Lcom/mongodb/bulk/WriteRequest$Type;
         1: .line 641
            new com.mongodb.async.client.MongoCollectionImpl$4
            dup
            aload 0 /* this */
            aload 5 /* callback */
            invokespecial com.mongodb.async.client.MongoCollectionImpl$4.<init>:(Lcom/mongodb/async/client/MongoCollectionImpl;Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 640
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeSingleWriteRequest:(Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/operation/AsyncWriteOperation;Lcom/mongodb/bulk/WriteRequest$Type;Lcom/mongodb/async/SingleResultCallback;)V
         3: .line 651
            return
        end local 5 // com.mongodb.async.SingleResultCallback callback
        end local 4 // com.mongodb.client.model.ReplaceOptions options
        end local 3 // java.lang.Object replacement
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    4     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    4     2         filter  Lorg/bson/conversions/Bson;
            0    4     3    replacement  TTDocument;
            0    4     4        options  Lcom/mongodb/client/model/ReplaceOptions;
            0    4     5       callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;TTDocument;Lcom/mongodb/client/model/ReplaceOptions;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
      4:
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      replacement    final
      options        final
      callback       final

  public void updateOne(org.bson.conversions.Bson, org.bson.conversions.Bson, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.UpdateResult>);
    descriptor: (Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // org.bson.conversions.Bson update
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 655
            aload 0 /* this */
            aload 1 /* filter */
            aload 2 /* update */
            new com.mongodb.client.model.UpdateOptions
            dup
            invokespecial com.mongodb.client.model.UpdateOptions.<init>:()V
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.updateOne:(Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 656
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // org.bson.conversions.Bson update
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1    filter  Lorg/bson/conversions/Bson;
            0    2     2    update  Lorg/bson/conversions/Bson;
            0    2     3  callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;
    Signature: (Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;)V
    MethodParameters:
          Name  Flags
      filter    final
      update    final
      callback  final

  public void updateOne(org.bson.conversions.Bson, org.bson.conversions.Bson, com.mongodb.client.model.UpdateOptions, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.UpdateResult>);
    descriptor: (Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // org.bson.conversions.Bson update
        start local 3 // com.mongodb.client.model.UpdateOptions options
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 661
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* update */
            aload 3 /* options */
            iconst_0
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeUpdate:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;ZLcom/mongodb/async/SingleResultCallback;)V
         1: .line 662
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.UpdateOptions options
        end local 2 // org.bson.conversions.Bson update
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1    filter  Lorg/bson/conversions/Bson;
            0    2     2    update  Lorg/bson/conversions/Bson;
            0    2     3   options  Lcom/mongodb/client/model/UpdateOptions;
            0    2     4  callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;
    Signature: (Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;)V
    MethodParameters:
          Name  Flags
      filter    final
      update    final
      options   final
      callback  final

  public void updateOne(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, org.bson.conversions.Bson, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.UpdateResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // org.bson.conversions.Bson update
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 667
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* update */
            new com.mongodb.client.model.UpdateOptions
            dup
            invokespecial com.mongodb.client.model.UpdateOptions.<init>:()V
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.updateOne:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 668
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // org.bson.conversions.Bson update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3         update  Lorg/bson/conversions/Bson;
            0    2     4       callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final
      callback       final

  public void updateOne(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, org.bson.conversions.Bson, com.mongodb.client.model.UpdateOptions, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.UpdateResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // org.bson.conversions.Bson update
        start local 4 // com.mongodb.client.model.UpdateOptions options
        start local 5 // com.mongodb.async.SingleResultCallback callback
         0: .line 673
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 674
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* update */
            aload 4 /* options */
            iconst_0
            aload 5 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeUpdate:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;ZLcom/mongodb/async/SingleResultCallback;)V
         2: .line 675
            return
        end local 5 // com.mongodb.async.SingleResultCallback callback
        end local 4 // com.mongodb.client.model.UpdateOptions options
        end local 3 // org.bson.conversions.Bson update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2         filter  Lorg/bson/conversions/Bson;
            0    3     3         update  Lorg/bson/conversions/Bson;
            0    3     4        options  Lcom/mongodb/client/model/UpdateOptions;
            0    3     5       callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final
      options        final
      callback       final

  public void updateOne(org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.UpdateResult>);
    descriptor: (Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // java.util.List update
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 679
            aload 0 /* this */
            aload 1 /* filter */
            aload 2 /* update */
            new com.mongodb.client.model.UpdateOptions
            dup
            invokespecial com.mongodb.client.model.UpdateOptions.<init>:()V
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.updateOne:(Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 680
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // java.util.List update
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1    filter  Lorg/bson/conversions/Bson;
            0    2     2    update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    2     3  callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;
    Signature: (Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;)V
    MethodParameters:
          Name  Flags
      filter    final
      update    final
      callback  final

  public void updateOne(org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.client.model.UpdateOptions, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.UpdateResult>);
    descriptor: (Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // java.util.List update
        start local 3 // com.mongodb.client.model.UpdateOptions options
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 685
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* update */
            aload 3 /* options */
            iconst_0
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeUpdate:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;ZLcom/mongodb/async/SingleResultCallback;)V
         1: .line 686
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.UpdateOptions options
        end local 2 // java.util.List update
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1    filter  Lorg/bson/conversions/Bson;
            0    2     2    update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    2     3   options  Lcom/mongodb/client/model/UpdateOptions;
            0    2     4  callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;
    Signature: (Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;)V
    MethodParameters:
          Name  Flags
      filter    final
      update    final
      options   final
      callback  final

  public void updateOne(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.UpdateResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.util.List update
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 691
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* update */
            new com.mongodb.client.model.UpdateOptions
            dup
            invokespecial com.mongodb.client.model.UpdateOptions.<init>:()V
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.updateOne:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 692
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // java.util.List update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3         update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    2     4       callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final
      callback       final

  public void updateOne(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.client.model.UpdateOptions, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.UpdateResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.util.List update
        start local 4 // com.mongodb.client.model.UpdateOptions options
        start local 5 // com.mongodb.async.SingleResultCallback callback
         0: .line 697
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 698
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* update */
            aload 4 /* options */
            iconst_0
            aload 5 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeUpdate:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;ZLcom/mongodb/async/SingleResultCallback;)V
         2: .line 699
            return
        end local 5 // com.mongodb.async.SingleResultCallback callback
        end local 4 // com.mongodb.client.model.UpdateOptions options
        end local 3 // java.util.List update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2         filter  Lorg/bson/conversions/Bson;
            0    3     3         update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    3     4        options  Lcom/mongodb/client/model/UpdateOptions;
            0    3     5       callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final
      options        final
      callback       final

  public void updateMany(org.bson.conversions.Bson, org.bson.conversions.Bson, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.UpdateResult>);
    descriptor: (Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // org.bson.conversions.Bson update
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 703
            aload 0 /* this */
            aload 1 /* filter */
            aload 2 /* update */
            new com.mongodb.client.model.UpdateOptions
            dup
            invokespecial com.mongodb.client.model.UpdateOptions.<init>:()V
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.updateMany:(Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 704
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // org.bson.conversions.Bson update
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1    filter  Lorg/bson/conversions/Bson;
            0    2     2    update  Lorg/bson/conversions/Bson;
            0    2     3  callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;
    Signature: (Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;)V
    MethodParameters:
          Name  Flags
      filter    final
      update    final
      callback  final

  public void updateMany(org.bson.conversions.Bson, org.bson.conversions.Bson, com.mongodb.client.model.UpdateOptions, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.UpdateResult>);
    descriptor: (Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // org.bson.conversions.Bson update
        start local 3 // com.mongodb.client.model.UpdateOptions options
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 709
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* update */
            aload 3 /* options */
            iconst_1
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeUpdate:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;ZLcom/mongodb/async/SingleResultCallback;)V
         1: .line 710
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.UpdateOptions options
        end local 2 // org.bson.conversions.Bson update
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1    filter  Lorg/bson/conversions/Bson;
            0    2     2    update  Lorg/bson/conversions/Bson;
            0    2     3   options  Lcom/mongodb/client/model/UpdateOptions;
            0    2     4  callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;
    Signature: (Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;)V
    MethodParameters:
          Name  Flags
      filter    final
      update    final
      options   final
      callback  final

  public void updateMany(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, org.bson.conversions.Bson, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.UpdateResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // org.bson.conversions.Bson update
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 715
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* update */
            new com.mongodb.client.model.UpdateOptions
            dup
            invokespecial com.mongodb.client.model.UpdateOptions.<init>:()V
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.updateMany:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 716
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // org.bson.conversions.Bson update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3         update  Lorg/bson/conversions/Bson;
            0    2     4       callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final
      callback       final

  public void updateMany(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, org.bson.conversions.Bson, com.mongodb.client.model.UpdateOptions, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.UpdateResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // org.bson.conversions.Bson update
        start local 4 // com.mongodb.client.model.UpdateOptions options
        start local 5 // com.mongodb.async.SingleResultCallback callback
         0: .line 721
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 722
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* update */
            aload 4 /* options */
            iconst_1
            aload 5 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeUpdate:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;ZLcom/mongodb/async/SingleResultCallback;)V
         2: .line 723
            return
        end local 5 // com.mongodb.async.SingleResultCallback callback
        end local 4 // com.mongodb.client.model.UpdateOptions options
        end local 3 // org.bson.conversions.Bson update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2         filter  Lorg/bson/conversions/Bson;
            0    3     3         update  Lorg/bson/conversions/Bson;
            0    3     4        options  Lcom/mongodb/client/model/UpdateOptions;
            0    3     5       callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final
      options        final
      callback       final

  public void updateMany(org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.UpdateResult>);
    descriptor: (Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // java.util.List update
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 727
            aload 0 /* this */
            aload 1 /* filter */
            aload 2 /* update */
            new com.mongodb.client.model.UpdateOptions
            dup
            invokespecial com.mongodb.client.model.UpdateOptions.<init>:()V
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.updateMany:(Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 728
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // java.util.List update
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1    filter  Lorg/bson/conversions/Bson;
            0    2     2    update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    2     3  callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;
    Signature: (Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;)V
    MethodParameters:
          Name  Flags
      filter    final
      update    final
      callback  final

  public void updateMany(org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.client.model.UpdateOptions, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.UpdateResult>);
    descriptor: (Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // java.util.List update
        start local 3 // com.mongodb.client.model.UpdateOptions options
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 733
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* update */
            aload 3 /* options */
            iconst_1
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeUpdate:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;ZLcom/mongodb/async/SingleResultCallback;)V
         1: .line 734
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.UpdateOptions options
        end local 2 // java.util.List update
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1    filter  Lorg/bson/conversions/Bson;
            0    2     2    update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    2     3   options  Lcom/mongodb/client/model/UpdateOptions;
            0    2     4  callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;
    Signature: (Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;)V
    MethodParameters:
          Name  Flags
      filter    final
      update    final
      options   final
      callback  final

  public void updateMany(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.UpdateResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.util.List update
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 739
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* update */
            new com.mongodb.client.model.UpdateOptions
            dup
            invokespecial com.mongodb.client.model.UpdateOptions.<init>:()V
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.updateMany:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 740
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // java.util.List update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3         update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    2     4       callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final
      callback       final

  public void updateMany(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.client.model.UpdateOptions, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.UpdateResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.util.List update
        start local 4 // com.mongodb.client.model.UpdateOptions options
        start local 5 // com.mongodb.async.SingleResultCallback callback
         0: .line 745
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 746
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* update */
            aload 4 /* options */
            iconst_1
            aload 5 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeUpdate:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;ZLcom/mongodb/async/SingleResultCallback;)V
         2: .line 747
            return
        end local 5 // com.mongodb.async.SingleResultCallback callback
        end local 4 // com.mongodb.client.model.UpdateOptions options
        end local 3 // java.util.List update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2         filter  Lorg/bson/conversions/Bson;
            0    3     3         update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    3     4        options  Lcom/mongodb/client/model/UpdateOptions;
            0    3     5       callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final
      options        final
      callback       final

  private void executeUpdate(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, org.bson.conversions.Bson, com.mongodb.client.model.UpdateOptions, boolean, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.UpdateResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;ZLcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=7, args_size=7
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // org.bson.conversions.Bson update
        start local 4 // com.mongodb.client.model.UpdateOptions options
        start local 5 // boolean multi
        start local 6 // com.mongodb.async.SingleResultCallback callback
         0: .line 751
            aload 0 /* this */
            aload 1 /* clientSession */
         1: .line 752
            iload 5 /* multi */
            ifeq 2
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/AsyncOperations;
            aload 2 /* filter */
            aload 3 /* update */
            aload 4 /* options */
            invokevirtual com.mongodb.internal.operation.AsyncOperations.updateMany:(Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/operation/AsyncWriteOperation;
            goto 3
      StackMap locals: com.mongodb.async.client.MongoCollectionImpl com.mongodb.async.client.ClientSession org.bson.conversions.Bson org.bson.conversions.Bson com.mongodb.client.model.UpdateOptions int com.mongodb.async.SingleResultCallback
      StackMap stack: com.mongodb.async.client.MongoCollectionImpl com.mongodb.async.client.ClientSession
         2: aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/AsyncOperations;
            aload 2 /* filter */
            aload 3 /* update */
            aload 4 /* options */
            invokevirtual com.mongodb.internal.operation.AsyncOperations.updateOne:(Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/operation/AsyncWriteOperation;
      StackMap locals: com.mongodb.async.client.MongoCollectionImpl com.mongodb.async.client.ClientSession org.bson.conversions.Bson org.bson.conversions.Bson com.mongodb.client.model.UpdateOptions int com.mongodb.async.SingleResultCallback
      StackMap stack: com.mongodb.async.client.MongoCollectionImpl com.mongodb.async.client.ClientSession com.mongodb.operation.AsyncWriteOperation
         3: getstatic com.mongodb.bulk.WriteRequest$Type.UPDATE:Lcom/mongodb/bulk/WriteRequest$Type;
         4: .line 753
            new com.mongodb.async.client.MongoCollectionImpl$5
            dup
            aload 0 /* this */
            aload 6 /* callback */
            invokespecial com.mongodb.async.client.MongoCollectionImpl$5.<init>:(Lcom/mongodb/async/client/MongoCollectionImpl;Lcom/mongodb/async/SingleResultCallback;)V
         5: .line 751
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeSingleWriteRequest:(Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/operation/AsyncWriteOperation;Lcom/mongodb/bulk/WriteRequest$Type;Lcom/mongodb/async/SingleResultCallback;)V
         6: .line 763
            return
        end local 6 // com.mongodb.async.SingleResultCallback callback
        end local 5 // boolean multi
        end local 4 // com.mongodb.client.model.UpdateOptions options
        end local 3 // org.bson.conversions.Bson update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    7     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    7     2         filter  Lorg/bson/conversions/Bson;
            0    7     3         update  Lorg/bson/conversions/Bson;
            0    7     4        options  Lcom/mongodb/client/model/UpdateOptions;
            0    7     5          multi  Z
            0    7     6       callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;ZLcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
      4:
      5:
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final
      options        final
      multi          final
      callback       final

  private void executeUpdate(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.client.model.UpdateOptions, boolean, com.mongodb.async.SingleResultCallback<com.mongodb.client.result.UpdateResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;ZLcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=7, args_size=7
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.util.List update
        start local 4 // com.mongodb.client.model.UpdateOptions options
        start local 5 // boolean multi
        start local 6 // com.mongodb.async.SingleResultCallback callback
         0: .line 767
            aload 0 /* this */
            aload 1 /* clientSession */
         1: .line 768
            iload 5 /* multi */
            ifeq 2
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/AsyncOperations;
            aload 2 /* filter */
            aload 3 /* update */
            aload 4 /* options */
            invokevirtual com.mongodb.internal.operation.AsyncOperations.updateMany:(Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/operation/AsyncWriteOperation;
            goto 3
      StackMap locals: com.mongodb.async.client.MongoCollectionImpl com.mongodb.async.client.ClientSession org.bson.conversions.Bson java.util.List com.mongodb.client.model.UpdateOptions int com.mongodb.async.SingleResultCallback
      StackMap stack: com.mongodb.async.client.MongoCollectionImpl com.mongodb.async.client.ClientSession
         2: aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/AsyncOperations;
            aload 2 /* filter */
            aload 3 /* update */
            aload 4 /* options */
            invokevirtual com.mongodb.internal.operation.AsyncOperations.updateOne:(Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/UpdateOptions;)Lcom/mongodb/operation/AsyncWriteOperation;
      StackMap locals: com.mongodb.async.client.MongoCollectionImpl com.mongodb.async.client.ClientSession org.bson.conversions.Bson java.util.List com.mongodb.client.model.UpdateOptions int com.mongodb.async.SingleResultCallback
      StackMap stack: com.mongodb.async.client.MongoCollectionImpl com.mongodb.async.client.ClientSession com.mongodb.operation.AsyncWriteOperation
         3: getstatic com.mongodb.bulk.WriteRequest$Type.UPDATE:Lcom/mongodb/bulk/WriteRequest$Type;
         4: .line 769
            new com.mongodb.async.client.MongoCollectionImpl$6
            dup
            aload 0 /* this */
            aload 6 /* callback */
            invokespecial com.mongodb.async.client.MongoCollectionImpl$6.<init>:(Lcom/mongodb/async/client/MongoCollectionImpl;Lcom/mongodb/async/SingleResultCallback;)V
         5: .line 767
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeSingleWriteRequest:(Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/operation/AsyncWriteOperation;Lcom/mongodb/bulk/WriteRequest$Type;Lcom/mongodb/async/SingleResultCallback;)V
         6: .line 779
            return
        end local 6 // com.mongodb.async.SingleResultCallback callback
        end local 5 // boolean multi
        end local 4 // com.mongodb.client.model.UpdateOptions options
        end local 3 // java.util.List update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    7     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    7     2         filter  Lorg/bson/conversions/Bson;
            0    7     3         update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    7     4        options  Lcom/mongodb/client/model/UpdateOptions;
            0    7     5          multi  Z
            0    7     6       callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/client/model/UpdateOptions;ZLcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
      4:
      5:
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final
      options        final
      multi          final
      callback       final

  public void findOneAndDelete(org.bson.conversions.Bson, com.mongodb.async.SingleResultCallback<TDocument>);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 783
            aload 0 /* this */
            aload 1 /* filter */
            new com.mongodb.client.model.FindOneAndDeleteOptions
            dup
            invokespecial com.mongodb.client.model.FindOneAndDeleteOptions.<init>:()V
            aload 2 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.findOneAndDelete:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndDeleteOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 784
            return
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1    filter  Lorg/bson/conversions/Bson;
            0    2     2  callback  Lcom/mongodb/async/SingleResultCallback<TTDocument;>;
    Signature: (Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback<TTDocument;>;)V
    MethodParameters:
          Name  Flags
      filter    final
      callback  final

  public void findOneAndDelete(org.bson.conversions.Bson, com.mongodb.client.model.FindOneAndDeleteOptions, com.mongodb.async.SingleResultCallback<TDocument>);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndDeleteOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // com.mongodb.client.model.FindOneAndDeleteOptions options
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 788
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* options */
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeFindOneAndDelete:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndDeleteOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 789
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // com.mongodb.client.model.FindOneAndDeleteOptions options
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1    filter  Lorg/bson/conversions/Bson;
            0    2     2   options  Lcom/mongodb/client/model/FindOneAndDeleteOptions;
            0    2     3  callback  Lcom/mongodb/async/SingleResultCallback<TTDocument;>;
    Signature: (Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndDeleteOptions;Lcom/mongodb/async/SingleResultCallback<TTDocument;>;)V
    MethodParameters:
          Name  Flags
      filter    final
      options   final
      callback  final

  public void findOneAndDelete(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, com.mongodb.async.SingleResultCallback<TDocument>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 793
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            new com.mongodb.client.model.FindOneAndDeleteOptions
            dup
            invokespecial com.mongodb.client.model.FindOneAndDeleteOptions.<init>:()V
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.findOneAndDelete:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndDeleteOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 794
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3       callback  Lcom/mongodb/async/SingleResultCallback<TTDocument;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback<TTDocument;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      callback       final

  public void findOneAndDelete(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, com.mongodb.client.model.FindOneAndDeleteOptions, com.mongodb.async.SingleResultCallback<TDocument>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndDeleteOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // com.mongodb.client.model.FindOneAndDeleteOptions options
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 799
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 800
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* options */
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeFindOneAndDelete:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndDeleteOptions;Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 801
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.FindOneAndDeleteOptions options
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2         filter  Lorg/bson/conversions/Bson;
            0    3     3        options  Lcom/mongodb/client/model/FindOneAndDeleteOptions;
            0    3     4       callback  Lcom/mongodb/async/SingleResultCallback<TTDocument;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndDeleteOptions;Lcom/mongodb/async/SingleResultCallback<TTDocument;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      options        final
      callback       final

  private void executeFindOneAndDelete(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, com.mongodb.client.model.FindOneAndDeleteOptions, com.mongodb.async.SingleResultCallback<TDocument>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndDeleteOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // com.mongodb.client.model.FindOneAndDeleteOptions options
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 805
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/AsyncOperations;
            aload 2 /* filter */
            aload 3 /* options */
            invokevirtual com.mongodb.internal.operation.AsyncOperations.findOneAndDelete:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndDeleteOptions;)Lcom/mongodb/operation/AsyncWriteOperation;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            aload 4 /* callback */
            invokeinterface com.mongodb.async.client.OperationExecutor.execute:(Lcom/mongodb/operation/AsyncWriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 806
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.FindOneAndDeleteOptions options
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3        options  Lcom/mongodb/client/model/FindOneAndDeleteOptions;
            0    2     4       callback  Lcom/mongodb/async/SingleResultCallback<TTDocument;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndDeleteOptions;Lcom/mongodb/async/SingleResultCallback<TTDocument;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      options        final
      callback       final

  public void findOneAndReplace(org.bson.conversions.Bson, TDocument, com.mongodb.async.SingleResultCallback<TDocument>);
    descriptor: (Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // java.lang.Object replacement
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 810
            aload 0 /* this */
            aload 1 /* filter */
            aload 2 /* replacement */
            new com.mongodb.client.model.FindOneAndReplaceOptions
            dup
            invokespecial com.mongodb.client.model.FindOneAndReplaceOptions.<init>:()V
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.findOneAndReplace:(Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/FindOneAndReplaceOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 811
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // java.lang.Object replacement
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1       filter  Lorg/bson/conversions/Bson;
            0    2     2  replacement  TTDocument;
            0    2     3     callback  Lcom/mongodb/async/SingleResultCallback<TTDocument;>;
    Signature: (Lorg/bson/conversions/Bson;TTDocument;Lcom/mongodb/async/SingleResultCallback<TTDocument;>;)V
    MethodParameters:
             Name  Flags
      filter       final
      replacement  final
      callback     final

  public void findOneAndReplace(org.bson.conversions.Bson, TDocument, com.mongodb.client.model.FindOneAndReplaceOptions, com.mongodb.async.SingleResultCallback<TDocument>);
    descriptor: (Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/FindOneAndReplaceOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // java.lang.Object replacement
        start local 3 // com.mongodb.client.model.FindOneAndReplaceOptions options
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 816
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* replacement */
            aload 3 /* options */
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeFindOneAndReplace:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/FindOneAndReplaceOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 817
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.FindOneAndReplaceOptions options
        end local 2 // java.lang.Object replacement
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1       filter  Lorg/bson/conversions/Bson;
            0    2     2  replacement  TTDocument;
            0    2     3      options  Lcom/mongodb/client/model/FindOneAndReplaceOptions;
            0    2     4     callback  Lcom/mongodb/async/SingleResultCallback<TTDocument;>;
    Signature: (Lorg/bson/conversions/Bson;TTDocument;Lcom/mongodb/client/model/FindOneAndReplaceOptions;Lcom/mongodb/async/SingleResultCallback<TTDocument;>;)V
    MethodParameters:
             Name  Flags
      filter       final
      replacement  final
      options      final
      callback     final

  public void findOneAndReplace(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, TDocument, com.mongodb.async.SingleResultCallback<TDocument>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.lang.Object replacement
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 822
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* replacement */
            new com.mongodb.client.model.FindOneAndReplaceOptions
            dup
            invokespecial com.mongodb.client.model.FindOneAndReplaceOptions.<init>:()V
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.findOneAndReplace:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/FindOneAndReplaceOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 823
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // java.lang.Object replacement
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3    replacement  TTDocument;
            0    2     4       callback  Lcom/mongodb/async/SingleResultCallback<TTDocument;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;TTDocument;Lcom/mongodb/async/SingleResultCallback<TTDocument;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      replacement    final
      callback       final

  public void findOneAndReplace(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, TDocument, com.mongodb.client.model.FindOneAndReplaceOptions, com.mongodb.async.SingleResultCallback<TDocument>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/FindOneAndReplaceOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.lang.Object replacement
        start local 4 // com.mongodb.client.model.FindOneAndReplaceOptions options
        start local 5 // com.mongodb.async.SingleResultCallback callback
         0: .line 828
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 829
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* replacement */
            aload 4 /* options */
            aload 5 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeFindOneAndReplace:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/FindOneAndReplaceOptions;Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 830
            return
        end local 5 // com.mongodb.async.SingleResultCallback callback
        end local 4 // com.mongodb.client.model.FindOneAndReplaceOptions options
        end local 3 // java.lang.Object replacement
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2         filter  Lorg/bson/conversions/Bson;
            0    3     3    replacement  TTDocument;
            0    3     4        options  Lcom/mongodb/client/model/FindOneAndReplaceOptions;
            0    3     5       callback  Lcom/mongodb/async/SingleResultCallback<TTDocument;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;TTDocument;Lcom/mongodb/client/model/FindOneAndReplaceOptions;Lcom/mongodb/async/SingleResultCallback<TTDocument;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      replacement    final
      options        final
      callback       final

  private void executeFindOneAndReplace(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, TDocument, com.mongodb.client.model.FindOneAndReplaceOptions, com.mongodb.async.SingleResultCallback<TDocument>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/FindOneAndReplaceOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=6
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.lang.Object replacement
        start local 4 // com.mongodb.client.model.FindOneAndReplaceOptions options
        start local 5 // com.mongodb.async.SingleResultCallback callback
         0: .line 834
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/AsyncOperations;
            aload 2 /* filter */
            aload 3 /* replacement */
            aload 4 /* options */
            invokevirtual com.mongodb.internal.operation.AsyncOperations.findOneAndReplace:(Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/FindOneAndReplaceOptions;)Lcom/mongodb/operation/AsyncWriteOperation;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            aload 5 /* callback */
            invokeinterface com.mongodb.async.client.OperationExecutor.execute:(Lcom/mongodb/operation/AsyncWriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 835
            return
        end local 5 // com.mongodb.async.SingleResultCallback callback
        end local 4 // com.mongodb.client.model.FindOneAndReplaceOptions options
        end local 3 // java.lang.Object replacement
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3    replacement  TTDocument;
            0    2     4        options  Lcom/mongodb/client/model/FindOneAndReplaceOptions;
            0    2     5       callback  Lcom/mongodb/async/SingleResultCallback<TTDocument;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;TTDocument;Lcom/mongodb/client/model/FindOneAndReplaceOptions;Lcom/mongodb/async/SingleResultCallback<TTDocument;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
      4:
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      replacement    final
      options        final
      callback       final

  public void findOneAndUpdate(org.bson.conversions.Bson, org.bson.conversions.Bson, com.mongodb.async.SingleResultCallback<TDocument>);
    descriptor: (Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // org.bson.conversions.Bson update
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 839
            aload 0 /* this */
            aload 1 /* filter */
            aload 2 /* update */
            new com.mongodb.client.model.FindOneAndUpdateOptions
            dup
            invokespecial com.mongodb.client.model.FindOneAndUpdateOptions.<init>:()V
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.findOneAndUpdate:(Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndUpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 840
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // org.bson.conversions.Bson update
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1    filter  Lorg/bson/conversions/Bson;
            0    2     2    update  Lorg/bson/conversions/Bson;
            0    2     3  callback  Lcom/mongodb/async/SingleResultCallback<TTDocument;>;
    Signature: (Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback<TTDocument;>;)V
    MethodParameters:
          Name  Flags
      filter    final
      update    final
      callback  final

  public void findOneAndUpdate(org.bson.conversions.Bson, org.bson.conversions.Bson, com.mongodb.client.model.FindOneAndUpdateOptions, com.mongodb.async.SingleResultCallback<TDocument>);
    descriptor: (Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndUpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // org.bson.conversions.Bson update
        start local 3 // com.mongodb.client.model.FindOneAndUpdateOptions options
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 845
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* update */
            aload 3 /* options */
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeFindOneAndUpdate:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndUpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 846
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.FindOneAndUpdateOptions options
        end local 2 // org.bson.conversions.Bson update
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1    filter  Lorg/bson/conversions/Bson;
            0    2     2    update  Lorg/bson/conversions/Bson;
            0    2     3   options  Lcom/mongodb/client/model/FindOneAndUpdateOptions;
            0    2     4  callback  Lcom/mongodb/async/SingleResultCallback<TTDocument;>;
    Signature: (Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndUpdateOptions;Lcom/mongodb/async/SingleResultCallback<TTDocument;>;)V
    MethodParameters:
          Name  Flags
      filter    final
      update    final
      options   final
      callback  final

  public void findOneAndUpdate(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, org.bson.conversions.Bson, com.mongodb.async.SingleResultCallback<TDocument>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // org.bson.conversions.Bson update
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 851
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* update */
            new com.mongodb.client.model.FindOneAndUpdateOptions
            dup
            invokespecial com.mongodb.client.model.FindOneAndUpdateOptions.<init>:()V
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.findOneAndUpdate:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndUpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 852
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // org.bson.conversions.Bson update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3         update  Lorg/bson/conversions/Bson;
            0    2     4       callback  Lcom/mongodb/async/SingleResultCallback<TTDocument;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback<TTDocument;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final
      callback       final

  public void findOneAndUpdate(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, org.bson.conversions.Bson, com.mongodb.client.model.FindOneAndUpdateOptions, com.mongodb.async.SingleResultCallback<TDocument>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndUpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // org.bson.conversions.Bson update
        start local 4 // com.mongodb.client.model.FindOneAndUpdateOptions options
        start local 5 // com.mongodb.async.SingleResultCallback callback
         0: .line 857
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 858
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* update */
            aload 4 /* options */
            aload 5 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeFindOneAndUpdate:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndUpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 859
            return
        end local 5 // com.mongodb.async.SingleResultCallback callback
        end local 4 // com.mongodb.client.model.FindOneAndUpdateOptions options
        end local 3 // org.bson.conversions.Bson update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2         filter  Lorg/bson/conversions/Bson;
            0    3     3         update  Lorg/bson/conversions/Bson;
            0    3     4        options  Lcom/mongodb/client/model/FindOneAndUpdateOptions;
            0    3     5       callback  Lcom/mongodb/async/SingleResultCallback<TTDocument;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndUpdateOptions;Lcom/mongodb/async/SingleResultCallback<TTDocument;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final
      options        final
      callback       final

  public void findOneAndUpdate(org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.async.SingleResultCallback<TDocument>);
    descriptor: (Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // java.util.List update
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 863
            aload 0 /* this */
            aload 1 /* filter */
            aload 2 /* update */
            new com.mongodb.client.model.FindOneAndUpdateOptions
            dup
            invokespecial com.mongodb.client.model.FindOneAndUpdateOptions.<init>:()V
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.findOneAndUpdate:(Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/FindOneAndUpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 864
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // java.util.List update
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1    filter  Lorg/bson/conversions/Bson;
            0    2     2    update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    2     3  callback  Lcom/mongodb/async/SingleResultCallback<TTDocument;>;
    Signature: (Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/async/SingleResultCallback<TTDocument;>;)V
    MethodParameters:
          Name  Flags
      filter    final
      update    final
      callback  final

  public void findOneAndUpdate(org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.client.model.FindOneAndUpdateOptions, com.mongodb.async.SingleResultCallback<TDocument>);
    descriptor: (Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/FindOneAndUpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson filter
        start local 2 // java.util.List update
        start local 3 // com.mongodb.client.model.FindOneAndUpdateOptions options
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 869
            aload 0 /* this */
            aconst_null
            aload 1 /* filter */
            aload 2 /* update */
            aload 3 /* options */
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeFindOneAndUpdate:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/FindOneAndUpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 870
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.FindOneAndUpdateOptions options
        end local 2 // java.util.List update
        end local 1 // org.bson.conversions.Bson filter
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1    filter  Lorg/bson/conversions/Bson;
            0    2     2    update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    2     3   options  Lcom/mongodb/client/model/FindOneAndUpdateOptions;
            0    2     4  callback  Lcom/mongodb/async/SingleResultCallback<TTDocument;>;
    Signature: (Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/client/model/FindOneAndUpdateOptions;Lcom/mongodb/async/SingleResultCallback<TTDocument;>;)V
    MethodParameters:
          Name  Flags
      filter    final
      update    final
      options   final
      callback  final

  public void findOneAndUpdate(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.async.SingleResultCallback<TDocument>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.util.List update
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 875
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* update */
            new com.mongodb.client.model.FindOneAndUpdateOptions
            dup
            invokespecial com.mongodb.client.model.FindOneAndUpdateOptions.<init>:()V
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.findOneAndUpdate:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/FindOneAndUpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 876
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // java.util.List update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3         update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    2     4       callback  Lcom/mongodb/async/SingleResultCallback<TTDocument;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/async/SingleResultCallback<TTDocument;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final
      callback       final

  public void findOneAndUpdate(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.client.model.FindOneAndUpdateOptions, com.mongodb.async.SingleResultCallback<TDocument>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/FindOneAndUpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.util.List update
        start local 4 // com.mongodb.client.model.FindOneAndUpdateOptions options
        start local 5 // com.mongodb.async.SingleResultCallback callback
         0: .line 881
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 882
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* filter */
            aload 3 /* update */
            aload 4 /* options */
            aload 5 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeFindOneAndUpdate:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/FindOneAndUpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 883
            return
        end local 5 // com.mongodb.async.SingleResultCallback callback
        end local 4 // com.mongodb.client.model.FindOneAndUpdateOptions options
        end local 3 // java.util.List update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2         filter  Lorg/bson/conversions/Bson;
            0    3     3         update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    3     4        options  Lcom/mongodb/client/model/FindOneAndUpdateOptions;
            0    3     5       callback  Lcom/mongodb/async/SingleResultCallback<TTDocument;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/client/model/FindOneAndUpdateOptions;Lcom/mongodb/async/SingleResultCallback<TTDocument;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final
      options        final
      callback       final

  private void executeFindOneAndUpdate(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, org.bson.conversions.Bson, com.mongodb.client.model.FindOneAndUpdateOptions, com.mongodb.async.SingleResultCallback<TDocument>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndUpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=6
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // org.bson.conversions.Bson update
        start local 4 // com.mongodb.client.model.FindOneAndUpdateOptions options
        start local 5 // com.mongodb.async.SingleResultCallback callback
         0: .line 887
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/AsyncOperations;
            aload 2 /* filter */
            aload 3 /* update */
            aload 4 /* options */
            invokevirtual com.mongodb.internal.operation.AsyncOperations.findOneAndUpdate:(Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndUpdateOptions;)Lcom/mongodb/operation/AsyncWriteOperation;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            aload 5 /* callback */
            invokeinterface com.mongodb.async.client.OperationExecutor.execute:(Lcom/mongodb/operation/AsyncWriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 888
            return
        end local 5 // com.mongodb.async.SingleResultCallback callback
        end local 4 // com.mongodb.client.model.FindOneAndUpdateOptions options
        end local 3 // org.bson.conversions.Bson update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3         update  Lorg/bson/conversions/Bson;
            0    2     4        options  Lcom/mongodb/client/model/FindOneAndUpdateOptions;
            0    2     5       callback  Lcom/mongodb/async/SingleResultCallback<TTDocument;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndUpdateOptions;Lcom/mongodb/async/SingleResultCallback<TTDocument;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
      4:
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final
      options        final
      callback       final

  private void executeFindOneAndUpdate(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.client.model.FindOneAndUpdateOptions, com.mongodb.async.SingleResultCallback<TDocument>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/FindOneAndUpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=6
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson filter
        start local 3 // java.util.List update
        start local 4 // com.mongodb.client.model.FindOneAndUpdateOptions options
        start local 5 // com.mongodb.async.SingleResultCallback callback
         0: .line 892
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/AsyncOperations;
            aload 2 /* filter */
            aload 3 /* update */
            aload 4 /* options */
            invokevirtual com.mongodb.internal.operation.AsyncOperations.findOneAndUpdate:(Lorg/bson/conversions/Bson;Ljava/util/List;Lcom/mongodb/client/model/FindOneAndUpdateOptions;)Lcom/mongodb/operation/AsyncWriteOperation;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            aload 5 /* callback */
            invokeinterface com.mongodb.async.client.OperationExecutor.execute:(Lcom/mongodb/operation/AsyncWriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 893
            return
        end local 5 // com.mongodb.async.SingleResultCallback callback
        end local 4 // com.mongodb.client.model.FindOneAndUpdateOptions options
        end local 3 // java.util.List update
        end local 2 // org.bson.conversions.Bson filter
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2         filter  Lorg/bson/conversions/Bson;
            0    2     3         update  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    2     4        options  Lcom/mongodb/client/model/FindOneAndUpdateOptions;
            0    2     5       callback  Lcom/mongodb/async/SingleResultCallback<TTDocument;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/client/model/FindOneAndUpdateOptions;Lcom/mongodb/async/SingleResultCallback<TTDocument;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
      4:
    MethodParameters:
               Name  Flags
      clientSession  final
      filter         final
      update         final
      options        final
      callback       final

  public void drop(com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.SingleResultCallback callback
         0: .line 897
            aload 0 /* this */
            aconst_null
            aload 1 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeDrop:(Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 898
            return
        end local 1 // com.mongodb.async.SingleResultCallback callback
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
          Name  Flags
      callback  final

  public void drop(com.mongodb.async.client.ClientSession, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 902
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 903
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeDrop:(Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 904
            return
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2       callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      callback       final

  private void executeDrop(com.mongodb.async.client.ClientSession, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 907
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/AsyncOperations;
            invokevirtual com.mongodb.internal.operation.AsyncOperations.dropCollection:()Lcom/mongodb/operation/AsyncWriteOperation;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            aload 2 /* callback */
            invokeinterface com.mongodb.async.client.OperationExecutor.execute:(Lcom/mongodb/operation/AsyncWriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 908
            return
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2       callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
    MethodParameters:
               Name  Flags
      clientSession  final
      callback       final

  public void createIndex(org.bson.conversions.Bson, com.mongodb.async.SingleResultCallback<java.lang.String>);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson key
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 912
            aload 0 /* this */
            aload 1 /* key */
            new com.mongodb.client.model.IndexOptions
            dup
            invokespecial com.mongodb.client.model.IndexOptions.<init>:()V
            aload 2 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.createIndex:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/IndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 913
            return
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // org.bson.conversions.Bson key
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1       key  Lorg/bson/conversions/Bson;
            0    2     2  callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/String;>;
    Signature: (Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/String;>;)V
    MethodParameters:
          Name  Flags
      key       final
      callback  final

  public void createIndex(org.bson.conversions.Bson, com.mongodb.client.model.IndexOptions, com.mongodb.async.SingleResultCallback<java.lang.String>);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/IndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson key
        start local 2 // com.mongodb.client.model.IndexOptions indexOptions
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 917
            aload 0 /* this */
            new com.mongodb.client.model.IndexModel
            dup
            aload 1 /* key */
            aload 2 /* indexOptions */
            invokespecial com.mongodb.client.model.IndexModel.<init>:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/IndexOptions;)V
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            new com.mongodb.async.client.MongoCollectionImpl$7
            dup
            aload 0 /* this */
            aload 3 /* callback */
            invokespecial com.mongodb.async.client.MongoCollectionImpl$7.<init>:(Lcom/mongodb/async/client/MongoCollectionImpl;Lcom/mongodb/async/SingleResultCallback;)V
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.createIndexes:(Ljava/util/List;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 927
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // com.mongodb.client.model.IndexOptions indexOptions
        end local 1 // org.bson.conversions.Bson key
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1           key  Lorg/bson/conversions/Bson;
            0    2     2  indexOptions  Lcom/mongodb/client/model/IndexOptions;
            0    2     3      callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/String;>;
    Signature: (Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/IndexOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/String;>;)V
    MethodParameters:
              Name  Flags
      key           final
      indexOptions  final
      callback      final

  public void createIndex(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, com.mongodb.async.SingleResultCallback<java.lang.String>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson key
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 931
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* key */
            new com.mongodb.client.model.IndexOptions
            dup
            invokespecial com.mongodb.client.model.IndexOptions.<init>:()V
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.createIndex:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/IndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 932
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // org.bson.conversions.Bson key
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2            key  Lorg/bson/conversions/Bson;
            0    2     3       callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/String;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/String;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      key            final
      callback       final

  public void createIndex(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, com.mongodb.client.model.IndexOptions, com.mongodb.async.SingleResultCallback<java.lang.String>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/IndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson key
        start local 3 // com.mongodb.client.model.IndexOptions indexOptions
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 937
            aload 0 /* this */
            aload 1 /* clientSession */
            new com.mongodb.client.model.IndexModel
            dup
            aload 2 /* key */
            aload 3 /* indexOptions */
            invokespecial com.mongodb.client.model.IndexModel.<init>:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/IndexOptions;)V
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            new com.mongodb.async.client.MongoCollectionImpl$8
            dup
            aload 0 /* this */
            aload 4 /* callback */
            invokespecial com.mongodb.async.client.MongoCollectionImpl$8.<init>:(Lcom/mongodb/async/client/MongoCollectionImpl;Lcom/mongodb/async/SingleResultCallback;)V
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.createIndexes:(Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 947
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.IndexOptions indexOptions
        end local 2 // org.bson.conversions.Bson key
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2            key  Lorg/bson/conversions/Bson;
            0    2     3   indexOptions  Lcom/mongodb/client/model/IndexOptions;
            0    2     4       callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/String;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/IndexOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/String;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      key            final
      indexOptions   final
      callback       final

  public void createIndexes(java.util.List<com.mongodb.client.model.IndexModel>, com.mongodb.async.SingleResultCallback<java.util.List<java.lang.String>>);
    descriptor: (Ljava/util/List;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // java.util.List indexes
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 951
            aload 0 /* this */
            aload 1 /* indexes */
            new com.mongodb.client.model.CreateIndexOptions
            dup
            invokespecial com.mongodb.client.model.CreateIndexOptions.<init>:()V
            aload 2 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.createIndexes:(Ljava/util/List;Lcom/mongodb/client/model/CreateIndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 952
            return
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // java.util.List indexes
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1   indexes  Ljava/util/List<Lcom/mongodb/client/model/IndexModel;>;
            0    2     2  callback  Lcom/mongodb/async/SingleResultCallback<Ljava/util/List<Ljava/lang/String;>;>;
    Signature: (Ljava/util/List<Lcom/mongodb/client/model/IndexModel;>;Lcom/mongodb/async/SingleResultCallback<Ljava/util/List<Ljava/lang/String;>;>;)V
    MethodParameters:
          Name  Flags
      indexes   final
      callback  final

  public void createIndexes(java.util.List<com.mongodb.client.model.IndexModel>, com.mongodb.client.model.CreateIndexOptions, com.mongodb.async.SingleResultCallback<java.util.List<java.lang.String>>);
    descriptor: (Ljava/util/List;Lcom/mongodb/client/model/CreateIndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // java.util.List indexes
        start local 2 // com.mongodb.client.model.CreateIndexOptions createIndexOptions
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 957
            aload 0 /* this */
            aconst_null
            aload 1 /* indexes */
            aload 2 /* createIndexOptions */
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeCreateIndexes:(Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/CreateIndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 958
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // com.mongodb.client.model.CreateIndexOptions createIndexOptions
        end local 1 // java.util.List indexes
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1             indexes  Ljava/util/List<Lcom/mongodb/client/model/IndexModel;>;
            0    2     2  createIndexOptions  Lcom/mongodb/client/model/CreateIndexOptions;
            0    2     3            callback  Lcom/mongodb/async/SingleResultCallback<Ljava/util/List<Ljava/lang/String;>;>;
    Signature: (Ljava/util/List<Lcom/mongodb/client/model/IndexModel;>;Lcom/mongodb/client/model/CreateIndexOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/util/List<Ljava/lang/String;>;>;)V
    MethodParameters:
                    Name  Flags
      indexes             final
      createIndexOptions  final
      callback            final

  public void createIndexes(com.mongodb.async.client.ClientSession, java.util.List<com.mongodb.client.model.IndexModel>, com.mongodb.async.SingleResultCallback<java.util.List<java.lang.String>>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.util.List indexes
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 963
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* indexes */
            new com.mongodb.client.model.CreateIndexOptions
            dup
            invokespecial com.mongodb.client.model.CreateIndexOptions.<init>:()V
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.createIndexes:(Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/CreateIndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 964
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // java.util.List indexes
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2        indexes  Ljava/util/List<Lcom/mongodb/client/model/IndexModel;>;
            0    2     3       callback  Lcom/mongodb/async/SingleResultCallback<Ljava/util/List<Ljava/lang/String;>;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List<Lcom/mongodb/client/model/IndexModel;>;Lcom/mongodb/async/SingleResultCallback<Ljava/util/List<Ljava/lang/String;>;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      indexes        final
      callback       final

  public void createIndexes(com.mongodb.async.client.ClientSession, java.util.List<com.mongodb.client.model.IndexModel>, com.mongodb.client.model.CreateIndexOptions, com.mongodb.async.SingleResultCallback<java.util.List<java.lang.String>>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/CreateIndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.util.List indexes
        start local 3 // com.mongodb.client.model.CreateIndexOptions createIndexOptions
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 969
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 970
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* indexes */
            aload 3 /* createIndexOptions */
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeCreateIndexes:(Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/CreateIndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 971
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.CreateIndexOptions createIndexOptions
        end local 2 // java.util.List indexes
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    3     0                this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1       clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2             indexes  Ljava/util/List<Lcom/mongodb/client/model/IndexModel;>;
            0    3     3  createIndexOptions  Lcom/mongodb/client/model/CreateIndexOptions;
            0    3     4            callback  Lcom/mongodb/async/SingleResultCallback<Ljava/util/List<Ljava/lang/String;>;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List<Lcom/mongodb/client/model/IndexModel;>;Lcom/mongodb/client/model/CreateIndexOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/util/List<Ljava/lang/String;>;>;)V
    MethodParameters:
                    Name  Flags
      clientSession       final
      indexes             final
      createIndexOptions  final
      callback            final

  private void executeCreateIndexes(com.mongodb.async.client.ClientSession, java.util.List<com.mongodb.client.model.IndexModel>, com.mongodb.client.model.CreateIndexOptions, com.mongodb.async.SingleResultCallback<java.util.List<java.lang.String>>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Lcom/mongodb/client/model/CreateIndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.util.List indexes
        start local 3 // com.mongodb.client.model.CreateIndexOptions createIndexOptions
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 975
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/AsyncOperations;
            aload 2 /* indexes */
            aload 3 /* createIndexOptions */
            invokevirtual com.mongodb.internal.operation.AsyncOperations.createIndexes:(Ljava/util/List;Lcom/mongodb/client/model/CreateIndexOptions;)Lcom/mongodb/operation/AsyncWriteOperation;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
         1: .line 976
            new com.mongodb.async.client.MongoCollectionImpl$9
            dup
            aload 0 /* this */
            aload 4 /* callback */
            aload 2 /* indexes */
            invokespecial com.mongodb.async.client.MongoCollectionImpl$9.<init>:(Lcom/mongodb/async/client/MongoCollectionImpl;Lcom/mongodb/async/SingleResultCallback;Ljava/util/List;)V
         2: .line 975
            invokeinterface com.mongodb.async.client.OperationExecutor.execute:(Lcom/mongodb/operation/AsyncWriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
         3: .line 986
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.CreateIndexOptions createIndexOptions
        end local 2 // java.util.List indexes
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    4     0                this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    4     1       clientSession  Lcom/mongodb/async/client/ClientSession;
            0    4     2             indexes  Ljava/util/List<Lcom/mongodb/client/model/IndexModel;>;
            0    4     3  createIndexOptions  Lcom/mongodb/client/model/CreateIndexOptions;
            0    4     4            callback  Lcom/mongodb/async/SingleResultCallback<Ljava/util/List<Ljava/lang/String;>;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List<Lcom/mongodb/client/model/IndexModel;>;Lcom/mongodb/client/model/CreateIndexOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/util/List<Ljava/lang/String;>;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
    MethodParameters:
                    Name  Flags
      clientSession       final
      indexes             final
      createIndexOptions  final
      callback            final

  public com.mongodb.async.client.ListIndexesIterable<org.bson.Document> listIndexes();
    descriptor: ()Lcom/mongodb/async/client/ListIndexesIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
         0: .line 990
            aload 0 /* this */
            ldc Lorg/bson/Document;
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.listIndexes:(Ljava/lang/Class;)Lcom/mongodb/async/client/ListIndexesIterable;
            areturn
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
    Signature: ()Lcom/mongodb/async/client/ListIndexesIterable<Lorg/bson/Document;>;

  public <TResult> com.mongodb.async.client.ListIndexesIterable<TResult> listIndexes(java.lang.Class<TResult>);
    descriptor: (Ljava/lang/Class;)Lcom/mongodb/async/client/ListIndexesIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // java.lang.Class resultClass
         0: .line 995
            aload 0 /* this */
            aconst_null
            aload 1 /* resultClass */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.createListIndexesIterable:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/Class;)Lcom/mongodb/async/client/ListIndexesIterable;
            areturn
        end local 1 // java.lang.Class resultClass
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    1     1  resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/ListIndexesIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      resultClass  final

  public com.mongodb.async.client.ListIndexesIterable<org.bson.Document> listIndexes(com.mongodb.async.client.ClientSession);
    descriptor: (Lcom/mongodb/async/client/ClientSession;)Lcom/mongodb/async/client/ListIndexesIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
         0: .line 1000
            aload 0 /* this */
            aload 1 /* clientSession */
            ldc Lorg/bson/Document;
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.listIndexes:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/Class;)Lcom/mongodb/async/client/ListIndexesIterable;
            areturn
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    1     1  clientSession  Lcom/mongodb/async/client/ClientSession;
    Signature: (Lcom/mongodb/async/client/ClientSession;)Lcom/mongodb/async/client/ListIndexesIterable<Lorg/bson/Document;>;
    MethodParameters:
               Name  Flags
      clientSession  final

  public <TResult> com.mongodb.async.client.ListIndexesIterable<TResult> listIndexes(com.mongodb.async.client.ClientSession, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/Class;)Lcom/mongodb/async/client/ListIndexesIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.lang.Class resultClass
         0: .line 1005
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 1006
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* resultClass */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.createListIndexesIterable:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/Class;)Lcom/mongodb/async/client/ListIndexesIterable;
            areturn
        end local 2 // java.lang.Class resultClass
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/async/client/ClientSession;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/ListIndexesIterable<TTResult;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      resultClass    final

  private <TResult> com.mongodb.async.client.ListIndexesIterable<TResult> createListIndexesIterable(com.mongodb.async.client.ClientSession, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/Class;)Lcom/mongodb/async/client/ListIndexesIterable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.lang.Class resultClass
         0: .line 1011
            new com.mongodb.async.client.ListIndexesIterableImpl
            dup
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.namespace:Lcom/mongodb/MongoNamespace;
            aload 2 /* resultClass */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
         1: .line 1012
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.retryReads:Z
         2: .line 1011
            invokespecial com.mongodb.async.client.ListIndexesIterableImpl.<init>:(Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/MongoNamespace;Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/async/client/OperationExecutor;Z)V
            areturn
        end local 2 // java.lang.Class resultClass
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/async/client/ClientSession;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/ListIndexesIterable<TTResult;>;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
    MethodParameters:
               Name  Flags
      clientSession  final
      resultClass    final

  public void dropIndex(java.lang.String, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Ljava/lang/String;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // java.lang.String indexName
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 1017
            aload 0 /* this */
            aload 1 /* indexName */
            new com.mongodb.client.model.DropIndexOptions
            dup
            invokespecial com.mongodb.client.model.DropIndexOptions.<init>:()V
            aload 2 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.dropIndex:(Ljava/lang/String;Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 1018
            return
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // java.lang.String indexName
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  indexName  Ljava/lang/String;
            0    2     2   callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
           Name  Flags
      indexName  final
      callback   final

  public void dropIndex(java.lang.String, com.mongodb.client.model.DropIndexOptions, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Ljava/lang/String;Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // java.lang.String indexName
        start local 2 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 1022
            aload 0 /* this */
            aconst_null
            aload 1 /* indexName */
            aload 2 /* dropIndexOptions */
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeDropIndex:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 1023
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
        end local 1 // java.lang.String indexName
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1         indexName  Ljava/lang/String;
            0    2     2  dropIndexOptions  Lcom/mongodb/client/model/DropIndexOptions;
            0    2     3          callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
                  Name  Flags
      indexName         final
      dropIndexOptions  final
      callback          final

  public void dropIndex(org.bson.conversions.Bson, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson keys
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 1027
            aload 0 /* this */
            aload 1 /* keys */
            new com.mongodb.client.model.DropIndexOptions
            dup
            invokespecial com.mongodb.client.model.DropIndexOptions.<init>:()V
            aload 2 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.dropIndex:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 1028
            return
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // org.bson.conversions.Bson keys
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1      keys  Lorg/bson/conversions/Bson;
            0    2     2  callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
          Name  Flags
      keys      final
      callback  final

  public void dropIndex(org.bson.conversions.Bson, com.mongodb.client.model.DropIndexOptions, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // org.bson.conversions.Bson keys
        start local 2 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 1032
            aload 0 /* this */
            aconst_null
            aload 1 /* keys */
            aload 2 /* dropIndexOptions */
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeDropIndex:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 1033
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
        end local 1 // org.bson.conversions.Bson keys
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1              keys  Lorg/bson/conversions/Bson;
            0    2     2  dropIndexOptions  Lcom/mongodb/client/model/DropIndexOptions;
            0    2     3          callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
                  Name  Flags
      keys              final
      dropIndexOptions  final
      callback          final

  public void dropIndex(com.mongodb.async.client.ClientSession, java.lang.String, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.lang.String indexName
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 1037
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* indexName */
            new com.mongodb.client.model.DropIndexOptions
            dup
            invokespecial com.mongodb.client.model.DropIndexOptions.<init>:()V
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.dropIndex:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 1038
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // java.lang.String indexName
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2      indexName  Ljava/lang/String;
            0    2     3       callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      indexName      final
      callback       final

  public void dropIndex(com.mongodb.async.client.ClientSession, java.lang.String, com.mongodb.client.model.DropIndexOptions, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.lang.String indexName
        start local 3 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 1043
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 1044
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* indexName */
            aload 3 /* dropIndexOptions */
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeDropIndex:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 1045
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
        end local 2 // java.lang.String indexName
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1     clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2         indexName  Ljava/lang/String;
            0    3     3  dropIndexOptions  Lcom/mongodb/client/model/DropIndexOptions;
            0    3     4          callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
                  Name  Flags
      clientSession     final
      indexName         final
      dropIndexOptions  final
      callback          final

  public void dropIndex(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson keys
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 1049
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* keys */
            new com.mongodb.client.model.DropIndexOptions
            dup
            invokespecial com.mongodb.client.model.DropIndexOptions.<init>:()V
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.dropIndex:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 1050
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // org.bson.conversions.Bson keys
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2           keys  Lorg/bson/conversions/Bson;
            0    2     3       callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      keys           final
      callback       final

  public void dropIndex(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, com.mongodb.client.model.DropIndexOptions, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson keys
        start local 3 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 1055
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 1056
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* keys */
            aload 3 /* dropIndexOptions */
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeDropIndex:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 1057
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
        end local 2 // org.bson.conversions.Bson keys
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1     clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2              keys  Lorg/bson/conversions/Bson;
            0    3     3  dropIndexOptions  Lcom/mongodb/client/model/DropIndexOptions;
            0    3     4          callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
                  Name  Flags
      clientSession     final
      keys              final
      dropIndexOptions  final
      callback          final

  public void dropIndexes(com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.SingleResultCallback callback
         0: .line 1061
            aload 0 /* this */
            new com.mongodb.client.model.DropIndexOptions
            dup
            invokespecial com.mongodb.client.model.DropIndexOptions.<init>:()V
            aload 1 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.dropIndexes:(Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 1062
            return
        end local 1 // com.mongodb.async.SingleResultCallback callback
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
          Name  Flags
      callback  final

  public void dropIndexes(com.mongodb.client.model.DropIndexOptions, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 1066
            aload 0 /* this */
            ldc "*"
            aload 1 /* dropIndexOptions */
            aload 2 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.dropIndex:(Ljava/lang/String;Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 1067
            return
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  dropIndexOptions  Lcom/mongodb/client/model/DropIndexOptions;
            0    2     2          callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
                  Name  Flags
      dropIndexOptions  final
      callback          final

  public void dropIndexes(com.mongodb.async.client.ClientSession, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 1071
            aload 0 /* this */
            aload 1 /* clientSession */
            new com.mongodb.client.model.DropIndexOptions
            dup
            invokespecial com.mongodb.client.model.DropIndexOptions.<init>:()V
            aload 2 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.dropIndexes:(Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 1072
            return
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2       callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      callback       final

  public void dropIndexes(com.mongodb.async.client.ClientSession, com.mongodb.client.model.DropIndexOptions, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 1077
            aload 0 /* this */
            aload 1 /* clientSession */
            ldc "*"
            aload 2 /* dropIndexOptions */
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.dropIndex:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 1078
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1     clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2  dropIndexOptions  Lcom/mongodb/client/model/DropIndexOptions;
            0    2     3          callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
                  Name  Flags
      clientSession     final
      dropIndexOptions  final
      callback          final

  private void executeDropIndex(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, com.mongodb.client.model.DropIndexOptions, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson keys
        start local 3 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 1082
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/AsyncOperations;
            aload 2 /* keys */
            aload 3 /* dropIndexOptions */
            invokevirtual com.mongodb.internal.operation.AsyncOperations.dropIndex:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DropIndexOptions;)Lcom/mongodb/operation/AsyncWriteOperation;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            aload 4 /* callback */
            invokeinterface com.mongodb.async.client.OperationExecutor.execute:(Lcom/mongodb/operation/AsyncWriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 1083
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
        end local 2 // org.bson.conversions.Bson keys
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1     clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2              keys  Lorg/bson/conversions/Bson;
            0    2     3  dropIndexOptions  Lcom/mongodb/client/model/DropIndexOptions;
            0    2     4          callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
    MethodParameters:
                  Name  Flags
      clientSession     final
      keys              final
      dropIndexOptions  final
      callback          final

  private void executeDropIndex(com.mongodb.async.client.ClientSession, java.lang.String, com.mongodb.client.model.DropIndexOptions, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.lang.String indexName
        start local 3 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 1087
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/AsyncOperations;
            aload 2 /* indexName */
            aload 3 /* dropIndexOptions */
            invokevirtual com.mongodb.internal.operation.AsyncOperations.dropIndex:(Ljava/lang/String;Lcom/mongodb/client/model/DropIndexOptions;)Lcom/mongodb/operation/AsyncWriteOperation;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            aload 4 /* callback */
            invokeinterface com.mongodb.async.client.OperationExecutor.execute:(Lcom/mongodb/operation/AsyncWriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 1088
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.DropIndexOptions dropIndexOptions
        end local 2 // java.lang.String indexName
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1     clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2         indexName  Ljava/lang/String;
            0    2     3  dropIndexOptions  Lcom/mongodb/client/model/DropIndexOptions;
            0    2     4          callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/DropIndexOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
    MethodParameters:
                  Name  Flags
      clientSession     final
      indexName         final
      dropIndexOptions  final
      callback          final

  public void renameCollection(com.mongodb.MongoNamespace, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/MongoNamespace;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.MongoNamespace newCollectionNamespace
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 1092
            aload 0 /* this */
            aload 1 /* newCollectionNamespace */
            new com.mongodb.client.model.RenameCollectionOptions
            dup
            invokespecial com.mongodb.client.model.RenameCollectionOptions.<init>:()V
            aload 2 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.renameCollection:(Lcom/mongodb/MongoNamespace;Lcom/mongodb/client/model/RenameCollectionOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 1093
            return
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // com.mongodb.MongoNamespace newCollectionNamespace
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    2     0                    this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  newCollectionNamespace  Lcom/mongodb/MongoNamespace;
            0    2     2                callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/MongoNamespace;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
                        Name  Flags
      newCollectionNamespace  final
      callback                final

  public void renameCollection(com.mongodb.MongoNamespace, com.mongodb.client.model.RenameCollectionOptions, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/MongoNamespace;Lcom/mongodb/client/model/RenameCollectionOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.MongoNamespace newCollectionNamespace
        start local 2 // com.mongodb.client.model.RenameCollectionOptions options
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 1098
            aload 0 /* this */
            aconst_null
            aload 1 /* newCollectionNamespace */
            aload 2 /* options */
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeRenameCollection:(Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/MongoNamespace;Lcom/mongodb/client/model/RenameCollectionOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 1099
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // com.mongodb.client.model.RenameCollectionOptions options
        end local 1 // com.mongodb.MongoNamespace newCollectionNamespace
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    2     0                    this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1  newCollectionNamespace  Lcom/mongodb/MongoNamespace;
            0    2     2                 options  Lcom/mongodb/client/model/RenameCollectionOptions;
            0    2     3                callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/MongoNamespace;Lcom/mongodb/client/model/RenameCollectionOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
                        Name  Flags
      newCollectionNamespace  final
      options                 final
      callback                final

  public void renameCollection(com.mongodb.async.client.ClientSession, com.mongodb.MongoNamespace, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/MongoNamespace;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // com.mongodb.MongoNamespace newCollectionNamespace
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 1104
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* newCollectionNamespace */
            new com.mongodb.client.model.RenameCollectionOptions
            dup
            invokespecial com.mongodb.client.model.RenameCollectionOptions.<init>:()V
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.renameCollection:(Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/MongoNamespace;Lcom/mongodb/client/model/RenameCollectionOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 1105
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // com.mongodb.MongoNamespace newCollectionNamespace
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    2     0                    this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1           clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2  newCollectionNamespace  Lcom/mongodb/MongoNamespace;
            0    2     3                callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/MongoNamespace;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
                        Name  Flags
      clientSession           final
      newCollectionNamespace  final
      callback                final

  public void renameCollection(com.mongodb.async.client.ClientSession, com.mongodb.MongoNamespace, com.mongodb.client.model.RenameCollectionOptions, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/MongoNamespace;Lcom/mongodb/client/model/RenameCollectionOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // com.mongodb.MongoNamespace newCollectionNamespace
        start local 3 // com.mongodb.client.model.RenameCollectionOptions options
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 1110
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 1111
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* newCollectionNamespace */
            aload 3 /* options */
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoCollectionImpl.executeRenameCollection:(Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/MongoNamespace;Lcom/mongodb/client/model/RenameCollectionOptions;Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 1112
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.RenameCollectionOptions options
        end local 2 // com.mongodb.MongoNamespace newCollectionNamespace
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    3     0                    this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    3     1           clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2  newCollectionNamespace  Lcom/mongodb/MongoNamespace;
            0    3     3                 options  Lcom/mongodb/client/model/RenameCollectionOptions;
            0    3     4                callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/MongoNamespace;Lcom/mongodb/client/model/RenameCollectionOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
                        Name  Flags
      clientSession           final
      newCollectionNamespace  final
      options                 final
      callback                final

  private void executeRenameCollection(com.mongodb.async.client.ClientSession, com.mongodb.MongoNamespace, com.mongodb.client.model.RenameCollectionOptions, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/MongoNamespace;Lcom/mongodb/client/model/RenameCollectionOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // com.mongodb.MongoNamespace newCollectionNamespace
        start local 3 // com.mongodb.client.model.RenameCollectionOptions options
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 1116
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.operations:Lcom/mongodb/internal/operation/AsyncOperations;
            aload 2 /* newCollectionNamespace */
            aload 3 /* options */
            invokevirtual com.mongodb.internal.operation.AsyncOperations.renameCollection:(Lcom/mongodb/MongoNamespace;Lcom/mongodb/client/model/RenameCollectionOptions;)Lcom/mongodb/operation/AsyncWriteOperation;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            aload 4 /* callback */
            invokeinterface com.mongodb.async.client.OperationExecutor.execute:(Lcom/mongodb/operation/AsyncWriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 1117
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.RenameCollectionOptions options
        end local 2 // com.mongodb.MongoNamespace newCollectionNamespace
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    2     0                    this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1           clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2  newCollectionNamespace  Lcom/mongodb/MongoNamespace;
            0    2     3                 options  Lcom/mongodb/client/model/RenameCollectionOptions;
            0    2     4                callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/MongoNamespace;Lcom/mongodb/client/model/RenameCollectionOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
    MethodParameters:
                        Name  Flags
      clientSession           final
      newCollectionNamespace  final
      options                 final
      callback                final

  private void executeSingleWriteRequest(com.mongodb.async.client.ClientSession, com.mongodb.operation.AsyncWriteOperation<com.mongodb.bulk.BulkWriteResult>, com.mongodb.bulk.WriteRequest$Type, com.mongodb.async.SingleResultCallback<com.mongodb.bulk.BulkWriteResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/operation/AsyncWriteOperation;Lcom/mongodb/bulk/WriteRequest$Type;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // com.mongodb.operation.AsyncWriteOperation writeOperation
        start local 3 // com.mongodb.bulk.WriteRequest$Type type
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 1122
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            aload 2 /* writeOperation */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoCollectionImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            new com.mongodb.async.client.MongoCollectionImpl$10
            dup
            aload 0 /* this */
            aload 4 /* callback */
            aload 3 /* type */
            invokespecial com.mongodb.async.client.MongoCollectionImpl$10.<init>:(Lcom/mongodb/async/client/MongoCollectionImpl;Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/bulk/WriteRequest$Type;)V
            invokeinterface com.mongodb.async.client.OperationExecutor.execute:(Lcom/mongodb/operation/AsyncWriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 1142
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.bulk.WriteRequest$Type type
        end local 2 // com.mongodb.operation.AsyncWriteOperation writeOperation
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    2     1   clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2  writeOperation  Lcom/mongodb/operation/AsyncWriteOperation<Lcom/mongodb/bulk/BulkWriteResult;>;
            0    2     3            type  Lcom/mongodb/bulk/WriteRequest$Type;
            0    2     4        callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/bulk/BulkWriteResult;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/operation/AsyncWriteOperation<Lcom/mongodb/bulk/BulkWriteResult;>;Lcom/mongodb/bulk/WriteRequest$Type;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/bulk/BulkWriteResult;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
    MethodParameters:
                Name  Flags
      clientSession   final
      writeOperation  final
      type            final
      callback        final

  private com.mongodb.WriteConcernResult translateBulkWriteResult(com.mongodb.bulk.WriteRequest$Type, com.mongodb.bulk.BulkWriteResult);
    descriptor: (Lcom/mongodb/bulk/WriteRequest$Type;Lcom/mongodb/bulk/BulkWriteResult;)Lcom/mongodb/WriteConcernResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.bulk.WriteRequest$Type type
        start local 2 // com.mongodb.bulk.BulkWriteResult writeResult
         0: .line 1145
            invokestatic com.mongodb.async.client.MongoCollectionImpl.$SWITCH_TABLE$com$mongodb$bulk$WriteRequest$Type:()[I
            aload 1 /* type */
            invokevirtual com.mongodb.bulk.WriteRequest$Type.ordinal:()I
            iaload
            tableswitch { // 1 - 4
                    1: 1
                    2: 3
                    3: 3
                    4: 2
              default: 10
          }
         1: .line 1147
      StackMap locals:
      StackMap stack:
            aload 2 /* writeResult */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getInsertedCount:()I
            iconst_0
            aconst_null
            invokestatic com.mongodb.WriteConcernResult.acknowledged:(IZLorg/bson/BsonValue;)Lcom/mongodb/WriteConcernResult;
            areturn
         2: .line 1149
      StackMap locals:
      StackMap stack:
            aload 2 /* writeResult */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getDeletedCount:()I
            iconst_0
            aconst_null
            invokestatic com.mongodb.WriteConcernResult.acknowledged:(IZLorg/bson/BsonValue;)Lcom/mongodb/WriteConcernResult;
            areturn
         3: .line 1152
      StackMap locals:
      StackMap stack:
            aload 2 /* writeResult */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getMatchedCount:()I
            aload 2 /* writeResult */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getUpserts:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iadd
         4: .line 1153
            aload 2 /* writeResult */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getMatchedCount:()I
            ifle 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack: int
         5: iconst_0
         6: .line 1154
      StackMap locals: com.mongodb.async.client.MongoCollectionImpl com.mongodb.bulk.WriteRequest$Type com.mongodb.bulk.BulkWriteResult
      StackMap stack: int int
            aload 2 /* writeResult */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getUpserts:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 8
         7: .line 1155
            aconst_null
            goto 9
      StackMap locals: com.mongodb.async.client.MongoCollectionImpl com.mongodb.bulk.WriteRequest$Type com.mongodb.bulk.BulkWriteResult
      StackMap stack: int int
         8: aload 2 /* writeResult */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getUpserts:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.mongodb.bulk.BulkWriteUpsert
            invokevirtual com.mongodb.bulk.BulkWriteUpsert.getId:()Lorg/bson/BsonValue;
         9: .line 1152
      StackMap locals: com.mongodb.async.client.MongoCollectionImpl com.mongodb.bulk.WriteRequest$Type com.mongodb.bulk.BulkWriteResult
      StackMap stack: int int org.bson.BsonValue
            invokestatic com.mongodb.WriteConcernResult.acknowledged:(IZLorg/bson/BsonValue;)Lcom/mongodb/WriteConcernResult;
            areturn
        10: .line 1157
      StackMap locals:
      StackMap stack:
            new com.mongodb.MongoInternalException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unhandled write request type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.mongodb.MongoInternalException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // com.mongodb.bulk.BulkWriteResult writeResult
        end local 1 // com.mongodb.bulk.WriteRequest$Type type
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0   11     1         type  Lcom/mongodb/bulk/WriteRequest$Type;
            0   11     2  writeResult  Lcom/mongodb/bulk/BulkWriteResult;
    MethodParameters:
             Name  Flags
      type         final
      writeResult  final

  private com.mongodb.client.result.UpdateResult toUpdateResult(com.mongodb.bulk.BulkWriteResult);
    descriptor: (Lcom/mongodb/bulk/BulkWriteResult;)Lcom/mongodb/client/result/UpdateResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.mongodb.async.client.MongoCollectionImpl this
        start local 1 // com.mongodb.bulk.BulkWriteResult result
         0: .line 1162
            aload 1 /* result */
            invokevirtual com.mongodb.bulk.BulkWriteResult.wasAcknowledged:()Z
            ifeq 5
         1: .line 1163
            aload 1 /* result */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getUpserts:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 2
            aconst_null
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 1 /* result */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getUpserts:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.mongodb.bulk.BulkWriteUpsert
            invokevirtual com.mongodb.bulk.BulkWriteUpsert.getId:()Lorg/bson/BsonValue;
      StackMap locals:
      StackMap stack: org.bson.BsonValue
         3: astore 2 /* upsertedId */
        start local 2 // org.bson.BsonValue upsertedId
         4: .line 1164
            aload 1 /* result */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getMatchedCount:()I
            i2l
            aload 1 /* result */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getModifiedCount:()I
            i2l
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 2 /* upsertedId */
            invokestatic com.mongodb.client.result.UpdateResult.acknowledged:(JLjava/lang/Long;Lorg/bson/BsonValue;)Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 2 // org.bson.BsonValue upsertedId
         5: .line 1166
      StackMap locals:
      StackMap stack:
            invokestatic com.mongodb.client.result.UpdateResult.unacknowledged:()Lcom/mongodb/client/result/UpdateResult;
            areturn
        end local 1 // com.mongodb.bulk.BulkWriteResult result
        end local 0 // com.mongodb.async.client.MongoCollectionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/mongodb/async/client/MongoCollectionImpl<TTDocument;>;
            0    6     1      result  Lcom/mongodb/bulk/BulkWriteResult;
            4    5     2  upsertedId  Lorg/bson/BsonValue;
    MethodParameters:
        Name  Flags
      result  final

  static int[] $SWITCH_TABLE$com$mongodb$bulk$WriteRequest$Type();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 76
            getstatic com.mongodb.async.client.MongoCollectionImpl.$SWITCH_TABLE$com$mongodb$bulk$WriteRequest$Type:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.mongodb.bulk.WriteRequest$Type.values:()[Lcom/mongodb/bulk/WriteRequest$Type;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.mongodb.bulk.WriteRequest$Type.DELETE:Lcom/mongodb/bulk/WriteRequest$Type;
            invokevirtual com.mongodb.bulk.WriteRequest$Type.ordinal:()I
            iconst_4
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.mongodb.bulk.WriteRequest$Type.INSERT:Lcom/mongodb/bulk/WriteRequest$Type;
            invokevirtual com.mongodb.bulk.WriteRequest$Type.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.mongodb.bulk.WriteRequest$Type.REPLACE:Lcom/mongodb/bulk/WriteRequest$Type;
            invokevirtual com.mongodb.bulk.WriteRequest$Type.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic com.mongodb.bulk.WriteRequest$Type.UPDATE:Lcom/mongodb/bulk/WriteRequest$Type;
            invokevirtual com.mongodb.bulk.WriteRequest$Type.ordinal:()I
            iconst_2
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            dup
            putstatic com.mongodb.async.client.MongoCollectionImpl.$SWITCH_TABLE$com$mongodb$bulk$WriteRequest$Type:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
}
Signature: <TDocument:Ljava/lang/Object;>Ljava/lang/Object;Lcom/mongodb/async/client/MongoCollection<TTDocument;>;
SourceFile: "MongoCollectionImpl.java"
NestMembers:
  com.mongodb.async.client.MongoCollectionImpl$1  com.mongodb.async.client.MongoCollectionImpl$10  com.mongodb.async.client.MongoCollectionImpl$2  com.mongodb.async.client.MongoCollectionImpl$3  com.mongodb.async.client.MongoCollectionImpl$4  com.mongodb.async.client.MongoCollectionImpl$5  com.mongodb.async.client.MongoCollectionImpl$6  com.mongodb.async.client.MongoCollectionImpl$7  com.mongodb.async.client.MongoCollectionImpl$8  com.mongodb.async.client.MongoCollectionImpl$9
InnerClasses:
  com.mongodb.async.client.MongoCollectionImpl$1
  com.mongodb.async.client.MongoCollectionImpl$10
  com.mongodb.async.client.MongoCollectionImpl$2
  com.mongodb.async.client.MongoCollectionImpl$3
  com.mongodb.async.client.MongoCollectionImpl$4
  com.mongodb.async.client.MongoCollectionImpl$5
  com.mongodb.async.client.MongoCollectionImpl$6
  com.mongodb.async.client.MongoCollectionImpl$7
  com.mongodb.async.client.MongoCollectionImpl$8
  com.mongodb.async.client.MongoCollectionImpl$9
  public final Type = com.mongodb.bulk.WriteRequest$Type of com.mongodb.bulk.WriteRequest