public class com.mongodb.client.internal.MongoDatabaseImpl implements com.mongodb.client.MongoDatabase
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.mongodb.client.internal.MongoDatabaseImpl
  super_class: java.lang.Object
{
  private final java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  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.client.internal.OperationExecutor executor;
    descriptor: Lcom/mongodb/client/internal/OperationExecutor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.bson.UuidRepresentation uuidRepresentation;
    descriptor: Lorg/bson/UuidRepresentation;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(java.lang.String, org.bson.codecs.configuration.CodecRegistry, com.mongodb.ReadPreference, com.mongodb.WriteConcern, boolean, boolean, com.mongodb.ReadConcern, org.bson.UuidRepresentation, com.mongodb.client.internal.OperationExecutor);
    descriptor: (Ljava/lang/String;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/WriteConcern;ZZLcom/mongodb/ReadConcern;Lorg/bson/UuidRepresentation;Lcom/mongodb/client/internal/OperationExecutor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=10, args_size=10
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // java.lang.String name
        start local 2 // org.bson.codecs.configuration.CodecRegistry codecRegistry
        start local 3 // com.mongodb.ReadPreference readPreference
        start local 4 // com.mongodb.WriteConcern writeConcern
        start local 5 // boolean retryWrites
        start local 6 // boolean retryReads
        start local 7 // com.mongodb.ReadConcern readConcern
        start local 8 // org.bson.UuidRepresentation uuidRepresentation
        start local 9 // com.mongodb.client.internal.OperationExecutor executor
         0: .line 71
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 74
            aload 1 /* name */
            invokestatic com.mongodb.MongoNamespace.checkDatabaseNameValidity:(Ljava/lang/String;)V
         2: .line 75
            aload 0 /* this */
            ldc "name"
            aload 1 /* name */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            putfield com.mongodb.client.internal.MongoDatabaseImpl.name:Ljava/lang/String;
         3: .line 76
            aload 0 /* this */
            ldc "codecRegistry"
            aload 2 /* 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.client.internal.MongoDatabaseImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
         4: .line 77
            aload 0 /* this */
            ldc "readPreference"
            aload 3 /* readPreference */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.ReadPreference
            putfield com.mongodb.client.internal.MongoDatabaseImpl.readPreference:Lcom/mongodb/ReadPreference;
         5: .line 78
            aload 0 /* this */
            ldc "writeConcern"
            aload 4 /* writeConcern */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.WriteConcern
            putfield com.mongodb.client.internal.MongoDatabaseImpl.writeConcern:Lcom/mongodb/WriteConcern;
         6: .line 79
            aload 0 /* this */
            iload 5 /* retryWrites */
            putfield com.mongodb.client.internal.MongoDatabaseImpl.retryWrites:Z
         7: .line 80
            aload 0 /* this */
            iload 6 /* retryReads */
            putfield com.mongodb.client.internal.MongoDatabaseImpl.retryReads:Z
         8: .line 81
            aload 0 /* this */
            ldc "readConcern"
            aload 7 /* readConcern */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.ReadConcern
            putfield com.mongodb.client.internal.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
         9: .line 82
            aload 0 /* this */
            ldc "uuidRepresentation"
            aload 8 /* uuidRepresentation */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.bson.UuidRepresentation
            putfield com.mongodb.client.internal.MongoDatabaseImpl.uuidRepresentation:Lorg/bson/UuidRepresentation;
        10: .line 83
            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.client.internal.OperationExecutor
            putfield com.mongodb.client.internal.MongoDatabaseImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
        11: .line 84
            return
        end local 9 // com.mongodb.client.internal.OperationExecutor executor
        end local 8 // org.bson.UuidRepresentation uuidRepresentation
        end local 7 // com.mongodb.ReadConcern readConcern
        end local 6 // boolean retryReads
        end local 5 // boolean retryWrites
        end local 4 // com.mongodb.WriteConcern writeConcern
        end local 3 // com.mongodb.ReadPreference readPreference
        end local 2 // org.bson.codecs.configuration.CodecRegistry codecRegistry
        end local 1 // java.lang.String name
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   12     0                this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0   12     1                name  Ljava/lang/String;
            0   12     2       codecRegistry  Lorg/bson/codecs/configuration/CodecRegistry;
            0   12     3      readPreference  Lcom/mongodb/ReadPreference;
            0   12     4        writeConcern  Lcom/mongodb/WriteConcern;
            0   12     5         retryWrites  Z
            0   12     6          retryReads  Z
            0   12     7         readConcern  Lcom/mongodb/ReadConcern;
            0   12     8  uuidRepresentation  Lorg/bson/UuidRepresentation;
            0   12     9            executor  Lcom/mongodb/client/internal/OperationExecutor;
    MethodParameters:
                    Name  Flags
      name                final
      codecRegistry       final
      readPreference      final
      writeConcern        final
      retryWrites         final
      retryReads          final
      readConcern         final
      uuidRepresentation  final
      executor            final

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

  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.client.internal.MongoDatabaseImpl this
         0: .line 93
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            areturn
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/internal/MongoDatabaseImpl;

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

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

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

  public com.mongodb.client.MongoDatabase withCodecRegistry(org.bson.codecs.configuration.CodecRegistry);
    descriptor: (Lorg/bson/codecs/configuration/CodecRegistry;)Lcom/mongodb/client/MongoDatabase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // org.bson.codecs.configuration.CodecRegistry codecRegistry
         0: .line 113
            new com.mongodb.client.internal.MongoDatabaseImpl
            dup
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.name:Ljava/lang/String;
            aload 1 /* codecRegistry */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.uuidRepresentation:Lorg/bson/UuidRepresentation;
            invokestatic org.bson.internal.CodecRegistryHelper.createRegistry:(Lorg/bson/codecs/configuration/CodecRegistry;Lorg/bson/UuidRepresentation;)Lorg/bson/codecs/configuration/CodecRegistry;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.writeConcern:Lcom/mongodb/WriteConcern;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.retryWrites:Z
         1: .line 114
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.retryReads:Z
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.uuidRepresentation:Lorg/bson/UuidRepresentation;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
         2: .line 113
            invokespecial com.mongodb.client.internal.MongoDatabaseImpl.<init>:(Ljava/lang/String;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/WriteConcern;ZZLcom/mongodb/ReadConcern;Lorg/bson/UuidRepresentation;Lcom/mongodb/client/internal/OperationExecutor;)V
            areturn
        end local 1 // org.bson.codecs.configuration.CodecRegistry codecRegistry
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    3     1  codecRegistry  Lorg/bson/codecs/configuration/CodecRegistry;
    MethodParameters:
               Name  Flags
      codecRegistry  final

  public com.mongodb.client.MongoDatabase withReadPreference(com.mongodb.ReadPreference);
    descriptor: (Lcom/mongodb/ReadPreference;)Lcom/mongodb/client/MongoDatabase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.ReadPreference readPreference
         0: .line 119
            new com.mongodb.client.internal.MongoDatabaseImpl
            dup
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.name:Ljava/lang/String;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 1 /* readPreference */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.writeConcern:Lcom/mongodb/WriteConcern;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.retryWrites:Z
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.retryReads:Z
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
         1: .line 120
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.uuidRepresentation:Lorg/bson/UuidRepresentation;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
         2: .line 119
            invokespecial com.mongodb.client.internal.MongoDatabaseImpl.<init>:(Ljava/lang/String;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/WriteConcern;ZZLcom/mongodb/ReadConcern;Lorg/bson/UuidRepresentation;Lcom/mongodb/client/internal/OperationExecutor;)V
            areturn
        end local 1 // com.mongodb.ReadPreference readPreference
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    3     1  readPreference  Lcom/mongodb/ReadPreference;
    MethodParameters:
                Name  Flags
      readPreference  final

  public com.mongodb.client.MongoDatabase withWriteConcern(com.mongodb.WriteConcern);
    descriptor: (Lcom/mongodb/WriteConcern;)Lcom/mongodb/client/MongoDatabase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.WriteConcern writeConcern
         0: .line 125
            new com.mongodb.client.internal.MongoDatabaseImpl
            dup
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.name:Ljava/lang/String;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 1 /* writeConcern */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.retryWrites:Z
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.retryReads:Z
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
         1: .line 126
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.uuidRepresentation:Lorg/bson/UuidRepresentation;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
         2: .line 125
            invokespecial com.mongodb.client.internal.MongoDatabaseImpl.<init>:(Ljava/lang/String;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/WriteConcern;ZZLcom/mongodb/ReadConcern;Lorg/bson/UuidRepresentation;Lcom/mongodb/client/internal/OperationExecutor;)V
            areturn
        end local 1 // com.mongodb.WriteConcern writeConcern
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    3     1  writeConcern  Lcom/mongodb/WriteConcern;
    MethodParameters:
              Name  Flags
      writeConcern  final

  public com.mongodb.client.MongoDatabase withReadConcern(com.mongodb.ReadConcern);
    descriptor: (Lcom/mongodb/ReadConcern;)Lcom/mongodb/client/MongoDatabase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.ReadConcern readConcern
         0: .line 131
            new com.mongodb.client.internal.MongoDatabaseImpl
            dup
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.name:Ljava/lang/String;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.writeConcern:Lcom/mongodb/WriteConcern;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.retryWrites:Z
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.retryReads:Z
            aload 1 /* readConcern */
         1: .line 132
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.uuidRepresentation:Lorg/bson/UuidRepresentation;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
         2: .line 131
            invokespecial com.mongodb.client.internal.MongoDatabaseImpl.<init>:(Ljava/lang/String;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/WriteConcern;ZZLcom/mongodb/ReadConcern;Lorg/bson/UuidRepresentation;Lcom/mongodb/client/internal/OperationExecutor;)V
            areturn
        end local 1 // com.mongodb.ReadConcern readConcern
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    3     1  readConcern  Lcom/mongodb/ReadConcern;
    MethodParameters:
             Name  Flags
      readConcern  final

  public com.mongodb.client.MongoCollection<org.bson.Document> getCollection(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/mongodb/client/MongoCollection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // java.lang.String collectionName
         0: .line 137
            aload 0 /* this */
            aload 1 /* collectionName */
            ldc Lorg/bson/Document;
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.getCollection:(Ljava/lang/String;Ljava/lang/Class;)Lcom/mongodb/client/MongoCollection;
            areturn
        end local 1 // java.lang.String collectionName
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    1     1  collectionName  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Lcom/mongodb/client/MongoCollection<Lorg/bson/Document;>;
    MethodParameters:
                Name  Flags
      collectionName  final

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

  public org.bson.Document runCommand(org.bson.conversions.Bson);
    descriptor: (Lorg/bson/conversions/Bson;)Lorg/bson/Document;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // org.bson.conversions.Bson command
         0: .line 148
            aload 0 /* this */
            aload 1 /* command */
            ldc Lorg/bson/Document;
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.runCommand:(Lorg/bson/conversions/Bson;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.bson.Document
            areturn
        end local 1 // org.bson.conversions.Bson command
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    1     1  command  Lorg/bson/conversions/Bson;
    MethodParameters:
         Name  Flags
      command  final

  public org.bson.Document runCommand(org.bson.conversions.Bson, com.mongodb.ReadPreference);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;)Lorg/bson/Document;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // org.bson.conversions.Bson command
        start local 2 // com.mongodb.ReadPreference readPreference
         0: .line 153
            aload 0 /* this */
            aload 1 /* command */
            aload 2 /* readPreference */
            ldc Lorg/bson/Document;
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.runCommand:(Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.bson.Document
            areturn
        end local 2 // com.mongodb.ReadPreference readPreference
        end local 1 // org.bson.conversions.Bson command
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    1     1         command  Lorg/bson/conversions/Bson;
            0    1     2  readPreference  Lcom/mongodb/ReadPreference;
    MethodParameters:
                Name  Flags
      command         final
      readPreference  final

  public <TResult> TResult runCommand(org.bson.conversions.Bson, java.lang.Class<TResult>);
    descriptor: (Lorg/bson/conversions/Bson;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // org.bson.conversions.Bson command
        start local 2 // java.lang.Class resultClass
         0: .line 158
            aload 0 /* this */
            aload 1 /* command */
            invokestatic com.mongodb.ReadPreference.primary:()Lcom/mongodb/ReadPreference;
            aload 2 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.runCommand:(Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Class resultClass
        end local 1 // org.bson.conversions.Bson command
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    1     1      command  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;>;)TTResult;
    MethodParameters:
             Name  Flags
      command      final
      resultClass  final

  public <TResult> TResult runCommand(org.bson.conversions.Bson, com.mongodb.ReadPreference, java.lang.Class<TResult>);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // org.bson.conversions.Bson command
        start local 2 // com.mongodb.ReadPreference readPreference
        start local 3 // java.lang.Class resultClass
         0: .line 163
            aload 0 /* this */
            aconst_null
            aload 1 /* command */
            aload 2 /* readPreference */
            aload 3 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.executeCommand:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 3 // java.lang.Class resultClass
        end local 2 // com.mongodb.ReadPreference readPreference
        end local 1 // org.bson.conversions.Bson command
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    1     1         command  Lorg/bson/conversions/Bson;
            0    1     2  readPreference  Lcom/mongodb/ReadPreference;
            0    1     3     resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class<TTResult;>;)TTResult;
    MethodParameters:
                Name  Flags
      command         final
      readPreference  final
      resultClass     final

  public org.bson.Document runCommand(com.mongodb.client.ClientSession, org.bson.conversions.Bson);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;)Lorg/bson/Document;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson command
         0: .line 168
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* command */
            invokestatic com.mongodb.ReadPreference.primary:()Lcom/mongodb/ReadPreference;
            ldc Lorg/bson/Document;
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.runCommand:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.bson.Document
            areturn
        end local 2 // org.bson.conversions.Bson command
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2        command  Lorg/bson/conversions/Bson;
    MethodParameters:
               Name  Flags
      clientSession  final
      command        final

  public org.bson.Document runCommand(com.mongodb.client.ClientSession, org.bson.conversions.Bson, com.mongodb.ReadPreference);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;)Lorg/bson/Document;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson command
        start local 3 // com.mongodb.ReadPreference readPreference
         0: .line 173
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* command */
            aload 3 /* readPreference */
            ldc Lorg/bson/Document;
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.runCommand:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.bson.Document
            areturn
        end local 3 // com.mongodb.ReadPreference readPreference
        end local 2 // org.bson.conversions.Bson command
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    1     1   clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2         command  Lorg/bson/conversions/Bson;
            0    1     3  readPreference  Lcom/mongodb/ReadPreference;
    MethodParameters:
                Name  Flags
      clientSession   final
      command         final
      readPreference  final

  public <TResult> TResult runCommand(com.mongodb.client.ClientSession, org.bson.conversions.Bson, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson command
        start local 3 // java.lang.Class resultClass
         0: .line 178
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* command */
            invokestatic com.mongodb.ReadPreference.primary:()Lcom/mongodb/ReadPreference;
            aload 3 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.runCommand:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 3 // java.lang.Class resultClass
        end local 2 // org.bson.conversions.Bson command
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2        command  Lorg/bson/conversions/Bson;
            0    1     3    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Class<TTResult;>;)TTResult;
    MethodParameters:
               Name  Flags
      clientSession  final
      command        final
      resultClass    final

  public <TResult> TResult runCommand(com.mongodb.client.ClientSession, org.bson.conversions.Bson, com.mongodb.ReadPreference, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson command
        start local 3 // com.mongodb.ReadPreference readPreference
        start local 4 // java.lang.Class resultClass
         0: .line 184
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 185
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* command */
            aload 3 /* readPreference */
            aload 4 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.executeCommand:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 4 // java.lang.Class resultClass
        end local 3 // com.mongodb.ReadPreference readPreference
        end local 2 // org.bson.conversions.Bson command
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    2     1   clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2         command  Lorg/bson/conversions/Bson;
            0    2     3  readPreference  Lcom/mongodb/ReadPreference;
            0    2     4     resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class<TTResult;>;)TTResult;
    MethodParameters:
                Name  Flags
      clientSession   final
      command         final
      readPreference  final
      resultClass     final

  private <TResult> TResult executeCommand(com.mongodb.client.ClientSession, org.bson.conversions.Bson, com.mongodb.ReadPreference, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson command
        start local 3 // com.mongodb.ReadPreference readPreference
        start local 4 // java.lang.Class resultClass
         0: .line 190
            ldc "readPreference"
            aload 3 /* readPreference */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 191
            aload 1 /* clientSession */
            ifnull 3
            aload 1 /* clientSession */
            invokeinterface com.mongodb.client.ClientSession.hasActiveTransaction:()Z
            ifeq 3
            aload 3 /* readPreference */
            invokestatic com.mongodb.ReadPreference.primary:()Lcom/mongodb/ReadPreference;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 192
            new com.mongodb.MongoClientException
            dup
            ldc "Read preference in a transaction must be primary"
            invokespecial com.mongodb.MongoClientException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 194
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            new com.mongodb.operation.CommandReadOperation
            dup
            aload 0 /* this */
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.getName:()Ljava/lang/String;
            aload 0 /* this */
            aload 2 /* command */
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.toBsonDocument:(Lorg/bson/conversions/Bson;)Lorg/bson/BsonDocument;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 4 /* resultClass */
            invokeinterface org.bson.codecs.configuration.CodecRegistry.get:(Ljava/lang/Class;)Lorg/bson/codecs/Codec;
            invokespecial com.mongodb.operation.CommandReadOperation.<init>:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;)V
         4: .line 195
            aload 3 /* readPreference */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
         5: .line 194
            invokeinterface com.mongodb.client.internal.OperationExecutor.execute:(Lcom/mongodb/operation/ReadOperation;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/ClientSession;)Ljava/lang/Object;
            areturn
        end local 4 // java.lang.Class resultClass
        end local 3 // com.mongodb.ReadPreference readPreference
        end local 2 // org.bson.conversions.Bson command
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    6     1   clientSession  Lcom/mongodb/client/ClientSession;
            0    6     2         command  Lorg/bson/conversions/Bson;
            0    6     3  readPreference  Lcom/mongodb/ReadPreference;
            0    6     4     resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class<TTResult;>;)TTResult;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
    MethodParameters:
                Name  Flags
      clientSession   final
      command         final
      readPreference  final
      resultClass     final

  public void drop();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
         0: .line 200
            aload 0 /* this */
            aconst_null
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.executeDrop:(Lcom/mongodb/client/ClientSession;)V
         1: .line 201
            return
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/client/internal/MongoDatabaseImpl;

  public void drop(com.mongodb.client.ClientSession);
    descriptor: (Lcom/mongodb/client/ClientSession;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
         0: .line 205
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 206
            aload 0 /* this */
            aload 1 /* clientSession */
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.executeDrop:(Lcom/mongodb/client/ClientSession;)V
         2: .line 207
            return
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    3     1  clientSession  Lcom/mongodb/client/ClientSession;
    MethodParameters:
               Name  Flags
      clientSession  final

  private void executeDrop(com.mongodb.client.ClientSession);
    descriptor: (Lcom/mongodb/client/ClientSession;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
         0: .line 210
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            new com.mongodb.operation.DropDatabaseOperation
            dup
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.name:Ljava/lang/String;
            aload 0 /* this */
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.getWriteConcern:()Lcom/mongodb/WriteConcern;
            invokespecial com.mongodb.operation.DropDatabaseOperation.<init>:(Ljava/lang/String;Lcom/mongodb/WriteConcern;)V
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            invokeinterface com.mongodb.client.internal.OperationExecutor.execute:(Lcom/mongodb/operation/WriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/ClientSession;)Ljava/lang/Object;
            pop
         1: .line 211
            return
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
    MethodParameters:
               Name  Flags
      clientSession  final

  public com.mongodb.client.MongoIterable<java.lang.String> listCollectionNames();
    descriptor: ()Lcom/mongodb/client/MongoIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
         0: .line 215
            aload 0 /* this */
            aconst_null
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.createListCollectionNamesIterable:(Lcom/mongodb/client/ClientSession;)Lcom/mongodb/client/MongoIterable;
            areturn
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
    Signature: ()Lcom/mongodb/client/MongoIterable<Ljava/lang/String;>;

  public com.mongodb.client.MongoIterable<java.lang.String> listCollectionNames(com.mongodb.client.ClientSession);
    descriptor: (Lcom/mongodb/client/ClientSession;)Lcom/mongodb/client/MongoIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
         0: .line 220
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 221
            aload 0 /* this */
            aload 1 /* clientSession */
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.createListCollectionNamesIterable:(Lcom/mongodb/client/ClientSession;)Lcom/mongodb/client/MongoIterable;
            areturn
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
    Signature: (Lcom/mongodb/client/ClientSession;)Lcom/mongodb/client/MongoIterable<Ljava/lang/String;>;
    MethodParameters:
               Name  Flags
      clientSession  final

  private com.mongodb.client.MongoIterable<java.lang.String> createListCollectionNamesIterable(com.mongodb.client.ClientSession);
    descriptor: (Lcom/mongodb/client/ClientSession;)Lcom/mongodb/client/MongoIterable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
         0: .line 225
            aload 0 /* this */
            aload 1 /* clientSession */
            ldc Lorg/bson/BsonDocument;
            iconst_1
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.createListCollectionsIterable:(Lcom/mongodb/client/ClientSession;Ljava/lang/Class;Z)Lcom/mongodb/client/ListCollectionsIterable;
         1: .line 226
            new com.mongodb.client.internal.MongoDatabaseImpl$1
            dup
            aload 0 /* this */
            invokespecial com.mongodb.client.internal.MongoDatabaseImpl$1.<init>:(Lcom/mongodb/client/internal/MongoDatabaseImpl;)V
            invokeinterface com.mongodb.client.ListCollectionsIterable.map:(Lcom/mongodb/Function;)Lcom/mongodb/client/MongoIterable;
         2: .line 225
            areturn
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    3     1  clientSession  Lcom/mongodb/client/ClientSession;
    Signature: (Lcom/mongodb/client/ClientSession;)Lcom/mongodb/client/MongoIterable<Ljava/lang/String;>;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
    MethodParameters:
               Name  Flags
      clientSession  final

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

  public <TResult> com.mongodb.client.ListCollectionsIterable<TResult> listCollections(java.lang.Class<TResult>);
    descriptor: (Ljava/lang/Class;)Lcom/mongodb/client/ListCollectionsIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // java.lang.Class resultClass
         0: .line 241
            aload 0 /* this */
            aconst_null
            aload 1 /* resultClass */
            iconst_0
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.createListCollectionsIterable:(Lcom/mongodb/client/ClientSession;Ljava/lang/Class;Z)Lcom/mongodb/client/ListCollectionsIterable;
            areturn
        end local 1 // java.lang.Class resultClass
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    1     1  resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/ListCollectionsIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      resultClass  final

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

  public <TResult> com.mongodb.client.ListCollectionsIterable<TResult> listCollections(com.mongodb.client.ClientSession, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/Class;)Lcom/mongodb/client/ListCollectionsIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.Class resultClass
         0: .line 251
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 252
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* resultClass */
            iconst_0
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.createListCollectionsIterable:(Lcom/mongodb/client/ClientSession;Ljava/lang/Class;Z)Lcom/mongodb/client/ListCollectionsIterable;
            areturn
        end local 2 // java.lang.Class resultClass
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/ListCollectionsIterable<TTResult;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      resultClass    final

  private <TResult> com.mongodb.client.ListCollectionsIterable<TResult> createListCollectionsIterable(com.mongodb.client.ClientSession, java.lang.Class<TResult>, boolean);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/Class;Z)Lcom/mongodb/client/ListCollectionsIterable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.Class resultClass
        start local 3 // boolean collectionNamesOnly
         0: .line 258
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.name:Ljava/lang/String;
            iload 3 /* collectionNamesOnly */
            aload 2 /* resultClass */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
         1: .line 259
            invokestatic com.mongodb.ReadPreference.primary:()Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.retryReads:Z
         2: .line 258
            invokestatic com.mongodb.client.internal.MongoIterables.listCollectionsOf:(Lcom/mongodb/client/ClientSession;Ljava/lang/String;ZLjava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/client/internal/OperationExecutor;Z)Lcom/mongodb/client/ListCollectionsIterable;
            areturn
        end local 3 // boolean collectionNamesOnly
        end local 2 // java.lang.Class resultClass
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    3     0                 this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    3     1        clientSession  Lcom/mongodb/client/ClientSession;
            0    3     2          resultClass  Ljava/lang/Class<TTResult;>;
            0    3     3  collectionNamesOnly  Z
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Ljava/lang/Class<TTResult;>;Z)Lcom/mongodb/client/ListCollectionsIterable<TTResult;>;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
    MethodParameters:
                     Name  Flags
      clientSession        final
      resultClass          final
      collectionNamesOnly  final

  public void createCollection(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // java.lang.String collectionName
         0: .line 264
            aload 0 /* this */
            aload 1 /* collectionName */
            new com.mongodb.client.model.CreateCollectionOptions
            dup
            invokespecial com.mongodb.client.model.CreateCollectionOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.createCollection:(Ljava/lang/String;Lcom/mongodb/client/model/CreateCollectionOptions;)V
         1: .line 265
            return
        end local 1 // java.lang.String collectionName
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    2     1  collectionName  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      collectionName  final

  public void createCollection(java.lang.String, com.mongodb.client.model.CreateCollectionOptions);
    descriptor: (Ljava/lang/String;Lcom/mongodb/client/model/CreateCollectionOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // java.lang.String collectionName
        start local 2 // com.mongodb.client.model.CreateCollectionOptions createCollectionOptions
         0: .line 269
            aload 0 /* this */
            aconst_null
            aload 1 /* collectionName */
            aload 2 /* createCollectionOptions */
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.executeCreateCollection:(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/CreateCollectionOptions;)V
         1: .line 270
            return
        end local 2 // com.mongodb.client.model.CreateCollectionOptions createCollectionOptions
        end local 1 // java.lang.String collectionName
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    2     0                     this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    2     1           collectionName  Ljava/lang/String;
            0    2     2  createCollectionOptions  Lcom/mongodb/client/model/CreateCollectionOptions;
    MethodParameters:
                         Name  Flags
      collectionName           final
      createCollectionOptions  final

  public void createCollection(com.mongodb.client.ClientSession, java.lang.String);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.String collectionName
         0: .line 274
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* collectionName */
            new com.mongodb.client.model.CreateCollectionOptions
            dup
            invokespecial com.mongodb.client.model.CreateCollectionOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.createCollection:(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/CreateCollectionOptions;)V
         1: .line 275
            return
        end local 2 // java.lang.String collectionName
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    2     1   clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2  collectionName  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      clientSession   final
      collectionName  final

  public void createCollection(com.mongodb.client.ClientSession, java.lang.String, com.mongodb.client.model.CreateCollectionOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/CreateCollectionOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.String collectionName
        start local 3 // com.mongodb.client.model.CreateCollectionOptions createCollectionOptions
         0: .line 280
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 281
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* collectionName */
            aload 3 /* createCollectionOptions */
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.executeCreateCollection:(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/CreateCollectionOptions;)V
         2: .line 282
            return
        end local 3 // com.mongodb.client.model.CreateCollectionOptions createCollectionOptions
        end local 2 // java.lang.String collectionName
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    3     0                     this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    3     1            clientSession  Lcom/mongodb/client/ClientSession;
            0    3     2           collectionName  Ljava/lang/String;
            0    3     3  createCollectionOptions  Lcom/mongodb/client/model/CreateCollectionOptions;
    MethodParameters:
                         Name  Flags
      clientSession            final
      collectionName           final
      createCollectionOptions  final

  private void executeCreateCollection(com.mongodb.client.ClientSession, java.lang.String, com.mongodb.client.model.CreateCollectionOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/CreateCollectionOptions;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=4
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.String collectionName
        start local 3 // com.mongodb.client.model.CreateCollectionOptions createCollectionOptions
         0: .line 287
            new com.mongodb.operation.CreateCollectionOperation
            dup
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.name:Ljava/lang/String;
            aload 2 /* collectionName */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.writeConcern:Lcom/mongodb/WriteConcern;
            invokespecial com.mongodb.operation.CreateCollectionOperation.<init>:(Ljava/lang/String;Ljava/lang/String;Lcom/mongodb/WriteConcern;)V
         1: .line 288
            aload 3 /* createCollectionOptions */
            invokevirtual com.mongodb.client.model.CreateCollectionOptions.getCollation:()Lcom/mongodb/client/model/Collation;
            invokevirtual com.mongodb.operation.CreateCollectionOperation.collation:(Lcom/mongodb/client/model/Collation;)Lcom/mongodb/operation/CreateCollectionOperation;
         2: .line 289
            aload 3 /* createCollectionOptions */
            invokevirtual com.mongodb.client.model.CreateCollectionOptions.isCapped:()Z
            invokevirtual com.mongodb.operation.CreateCollectionOperation.capped:(Z)Lcom/mongodb/operation/CreateCollectionOperation;
         3: .line 290
            aload 3 /* createCollectionOptions */
            invokevirtual com.mongodb.client.model.CreateCollectionOptions.getSizeInBytes:()J
            invokevirtual com.mongodb.operation.CreateCollectionOperation.sizeInBytes:(J)Lcom/mongodb/operation/CreateCollectionOperation;
         4: .line 291
            aload 3 /* createCollectionOptions */
            invokevirtual com.mongodb.client.model.CreateCollectionOptions.isAutoIndex:()Z
            invokevirtual com.mongodb.operation.CreateCollectionOperation.autoIndex:(Z)Lcom/mongodb/operation/CreateCollectionOperation;
         5: .line 292
            aload 3 /* createCollectionOptions */
            invokevirtual com.mongodb.client.model.CreateCollectionOptions.getMaxDocuments:()J
            invokevirtual com.mongodb.operation.CreateCollectionOperation.maxDocuments:(J)Lcom/mongodb/operation/CreateCollectionOperation;
         6: .line 293
            aload 3 /* createCollectionOptions */
            invokevirtual com.mongodb.client.model.CreateCollectionOptions.isUsePowerOf2Sizes:()Ljava/lang/Boolean;
            invokevirtual com.mongodb.operation.CreateCollectionOperation.usePowerOf2Sizes:(Ljava/lang/Boolean;)Lcom/mongodb/operation/CreateCollectionOperation;
         7: .line 294
            aload 0 /* this */
            aload 3 /* createCollectionOptions */
            invokevirtual com.mongodb.client.model.CreateCollectionOptions.getStorageEngineOptions:()Lorg/bson/conversions/Bson;
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.toBsonDocument:(Lorg/bson/conversions/Bson;)Lorg/bson/BsonDocument;
            invokevirtual com.mongodb.operation.CreateCollectionOperation.storageEngineOptions:(Lorg/bson/BsonDocument;)Lcom/mongodb/operation/CreateCollectionOperation;
         8: .line 287
            astore 4 /* operation */
        start local 4 // com.mongodb.operation.CreateCollectionOperation operation
         9: .line 296
            aload 3 /* createCollectionOptions */
            invokevirtual com.mongodb.client.model.CreateCollectionOptions.getIndexOptionDefaults:()Lcom/mongodb/client/model/IndexOptionDefaults;
            astore 5 /* indexOptionDefaults */
        start local 5 // com.mongodb.client.model.IndexOptionDefaults indexOptionDefaults
        10: .line 297
            aload 5 /* indexOptionDefaults */
            invokevirtual com.mongodb.client.model.IndexOptionDefaults.getStorageEngine:()Lorg/bson/conversions/Bson;
            astore 6 /* storageEngine */
        start local 6 // org.bson.conversions.Bson storageEngine
        11: .line 298
            aload 6 /* storageEngine */
            ifnull 13
        12: .line 299
            aload 4 /* operation */
            new org.bson.BsonDocument
            dup
            ldc "storageEngine"
            aload 0 /* this */
            aload 6 /* storageEngine */
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.toBsonDocument:(Lorg/bson/conversions/Bson;)Lorg/bson/BsonDocument;
            invokespecial org.bson.BsonDocument.<init>:(Ljava/lang/String;Lorg/bson/BsonValue;)V
            invokevirtual com.mongodb.operation.CreateCollectionOperation.indexOptionDefaults:(Lorg/bson/BsonDocument;)Lcom/mongodb/operation/CreateCollectionOperation;
            pop
        13: .line 301
      StackMap locals: com.mongodb.operation.CreateCollectionOperation com.mongodb.client.model.IndexOptionDefaults org.bson.conversions.Bson
      StackMap stack:
            aload 3 /* createCollectionOptions */
            invokevirtual com.mongodb.client.model.CreateCollectionOptions.getValidationOptions:()Lcom/mongodb/client/model/ValidationOptions;
            astore 7 /* validationOptions */
        start local 7 // com.mongodb.client.model.ValidationOptions validationOptions
        14: .line 302
            aload 7 /* validationOptions */
            invokevirtual com.mongodb.client.model.ValidationOptions.getValidator:()Lorg/bson/conversions/Bson;
            astore 8 /* validator */
        start local 8 // org.bson.conversions.Bson validator
        15: .line 303
            aload 8 /* validator */
            ifnull 17
        16: .line 304
            aload 4 /* operation */
            aload 0 /* this */
            aload 8 /* validator */
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.toBsonDocument:(Lorg/bson/conversions/Bson;)Lorg/bson/BsonDocument;
            invokevirtual com.mongodb.operation.CreateCollectionOperation.validator:(Lorg/bson/BsonDocument;)Lcom/mongodb/operation/CreateCollectionOperation;
            pop
        17: .line 306
      StackMap locals: com.mongodb.client.model.ValidationOptions org.bson.conversions.Bson
      StackMap stack:
            aload 7 /* validationOptions */
            invokevirtual com.mongodb.client.model.ValidationOptions.getValidationLevel:()Lcom/mongodb/client/model/ValidationLevel;
            ifnull 19
        18: .line 307
            aload 4 /* operation */
            aload 7 /* validationOptions */
            invokevirtual com.mongodb.client.model.ValidationOptions.getValidationLevel:()Lcom/mongodb/client/model/ValidationLevel;
            invokevirtual com.mongodb.operation.CreateCollectionOperation.validationLevel:(Lcom/mongodb/client/model/ValidationLevel;)Lcom/mongodb/operation/CreateCollectionOperation;
            pop
        19: .line 309
      StackMap locals:
      StackMap stack:
            aload 7 /* validationOptions */
            invokevirtual com.mongodb.client.model.ValidationOptions.getValidationAction:()Lcom/mongodb/client/model/ValidationAction;
            ifnull 21
        20: .line 310
            aload 4 /* operation */
            aload 7 /* validationOptions */
            invokevirtual com.mongodb.client.model.ValidationOptions.getValidationAction:()Lcom/mongodb/client/model/ValidationAction;
            invokevirtual com.mongodb.operation.CreateCollectionOperation.validationAction:(Lcom/mongodb/client/model/ValidationAction;)Lcom/mongodb/operation/CreateCollectionOperation;
            pop
        21: .line 312
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            aload 4 /* operation */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            invokeinterface com.mongodb.client.internal.OperationExecutor.execute:(Lcom/mongodb/operation/WriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/ClientSession;)Ljava/lang/Object;
            pop
        22: .line 313
            return
        end local 8 // org.bson.conversions.Bson validator
        end local 7 // com.mongodb.client.model.ValidationOptions validationOptions
        end local 6 // org.bson.conversions.Bson storageEngine
        end local 5 // com.mongodb.client.model.IndexOptionDefaults indexOptionDefaults
        end local 4 // com.mongodb.operation.CreateCollectionOperation operation
        end local 3 // com.mongodb.client.model.CreateCollectionOptions createCollectionOptions
        end local 2 // java.lang.String collectionName
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   23     0                     this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0   23     1            clientSession  Lcom/mongodb/client/ClientSession;
            0   23     2           collectionName  Ljava/lang/String;
            0   23     3  createCollectionOptions  Lcom/mongodb/client/model/CreateCollectionOptions;
            9   23     4                operation  Lcom/mongodb/operation/CreateCollectionOperation;
           10   23     5      indexOptionDefaults  Lcom/mongodb/client/model/IndexOptionDefaults;
           11   23     6            storageEngine  Lorg/bson/conversions/Bson;
           14   23     7        validationOptions  Lcom/mongodb/client/model/ValidationOptions;
           15   23     8                validator  Lorg/bson/conversions/Bson;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
    MethodParameters:
                         Name  Flags
      clientSession            final
      collectionName           final
      createCollectionOptions  final

  public void createView(java.lang.String, java.lang.String, java.util.List<? extends org.bson.conversions.Bson>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // java.lang.String viewName
        start local 2 // java.lang.String viewOn
        start local 3 // java.util.List pipeline
         0: .line 317
            aload 0 /* this */
            aload 1 /* viewName */
            aload 2 /* viewOn */
            aload 3 /* pipeline */
            new com.mongodb.client.model.CreateViewOptions
            dup
            invokespecial com.mongodb.client.model.CreateViewOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.createView:(Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mongodb/client/model/CreateViewOptions;)V
         1: .line 318
            return
        end local 3 // java.util.List pipeline
        end local 2 // java.lang.String viewOn
        end local 1 // java.lang.String viewName
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    2     1  viewName  Ljava/lang/String;
            0    2     2    viewOn  Ljava/lang/String;
            0    2     3  pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List<+Lorg/bson/conversions/Bson;>;)V
    MethodParameters:
          Name  Flags
      viewName  final
      viewOn    final
      pipeline  final

  public void createView(java.lang.String, java.lang.String, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.client.model.CreateViewOptions);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mongodb/client/model/CreateViewOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // java.lang.String viewName
        start local 2 // java.lang.String viewOn
        start local 3 // java.util.List pipeline
        start local 4 // com.mongodb.client.model.CreateViewOptions createViewOptions
         0: .line 323
            aload 0 /* this */
            aconst_null
            aload 1 /* viewName */
            aload 2 /* viewOn */
            aload 3 /* pipeline */
            aload 4 /* createViewOptions */
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.executeCreateView:(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mongodb/client/model/CreateViewOptions;)V
         1: .line 324
            return
        end local 4 // com.mongodb.client.model.CreateViewOptions createViewOptions
        end local 3 // java.util.List pipeline
        end local 2 // java.lang.String viewOn
        end local 1 // java.lang.String viewName
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    2     1           viewName  Ljava/lang/String;
            0    2     2             viewOn  Ljava/lang/String;
            0    2     3           pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    2     4  createViewOptions  Lcom/mongodb/client/model/CreateViewOptions;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/client/model/CreateViewOptions;)V
    MethodParameters:
                   Name  Flags
      viewName           final
      viewOn             final
      pipeline           final
      createViewOptions  final

  public void createView(com.mongodb.client.ClientSession, java.lang.String, java.lang.String, java.util.List<? extends org.bson.conversions.Bson>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.String viewName
        start local 3 // java.lang.String viewOn
        start local 4 // java.util.List pipeline
         0: .line 329
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* viewName */
            aload 3 /* viewOn */
            aload 4 /* pipeline */
            new com.mongodb.client.model.CreateViewOptions
            dup
            invokespecial com.mongodb.client.model.CreateViewOptions.<init>:()V
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.createView:(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mongodb/client/model/CreateViewOptions;)V
         1: .line 330
            return
        end local 4 // java.util.List pipeline
        end local 3 // java.lang.String viewOn
        end local 2 // java.lang.String viewName
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2       viewName  Ljava/lang/String;
            0    2     3         viewOn  Ljava/lang/String;
            0    2     4       pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
    Signature: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/util/List<+Lorg/bson/conversions/Bson;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      viewName       final
      viewOn         final
      pipeline       final

  public void createView(com.mongodb.client.ClientSession, java.lang.String, java.lang.String, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.client.model.CreateViewOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mongodb/client/model/CreateViewOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.String viewName
        start local 3 // java.lang.String viewOn
        start local 4 // java.util.List pipeline
        start local 5 // com.mongodb.client.model.CreateViewOptions createViewOptions
         0: .line 335
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 336
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* viewName */
            aload 3 /* viewOn */
            aload 4 /* pipeline */
            aload 5 /* createViewOptions */
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.executeCreateView:(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mongodb/client/model/CreateViewOptions;)V
         2: .line 337
            return
        end local 5 // com.mongodb.client.model.CreateViewOptions createViewOptions
        end local 4 // java.util.List pipeline
        end local 3 // java.lang.String viewOn
        end local 2 // java.lang.String viewName
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0               this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    3     1      clientSession  Lcom/mongodb/client/ClientSession;
            0    3     2           viewName  Ljava/lang/String;
            0    3     3             viewOn  Ljava/lang/String;
            0    3     4           pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    3     5  createViewOptions  Lcom/mongodb/client/model/CreateViewOptions;
    Signature: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/client/model/CreateViewOptions;)V
    MethodParameters:
                   Name  Flags
      clientSession      final
      viewName           final
      viewOn             final
      pipeline           final
      createViewOptions  final

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

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

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

  public <TResult> com.mongodb.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/client/ChangeStreamIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // java.util.List pipeline
        start local 2 // java.lang.Class resultClass
         0: .line 356
            aload 0 /* this */
            aconst_null
            aload 1 /* pipeline */
            aload 2 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.createChangeStreamIterable:(Lcom/mongodb/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/ChangeStreamIterable;
            areturn
        end local 2 // java.lang.Class resultClass
        end local 1 // java.util.List pipeline
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            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/client/ChangeStreamIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      pipeline     final
      resultClass  final

  public com.mongodb.client.ChangeStreamIterable<org.bson.Document> watch(com.mongodb.client.ClientSession);
    descriptor: (Lcom/mongodb/client/ClientSession;)Lcom/mongodb/client/ChangeStreamIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
         0: .line 361
            aload 0 /* this */
            aload 1 /* clientSession */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            ldc Lorg/bson/Document;
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.watch:(Lcom/mongodb/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/ChangeStreamIterable;
            areturn
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
    Signature: (Lcom/mongodb/client/ClientSession;)Lcom/mongodb/client/ChangeStreamIterable<Lorg/bson/Document;>;
    MethodParameters:
               Name  Flags
      clientSession  final

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

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

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

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

  public <TResult> com.mongodb.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/client/AggregateIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // java.util.List pipeline
        start local 2 // java.lang.Class resultClass
         0: .line 388
            aload 0 /* this */
            aconst_null
            aload 1 /* pipeline */
            aload 2 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.createAggregateIterable:(Lcom/mongodb/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/AggregateIterable;
            areturn
        end local 2 // java.lang.Class resultClass
        end local 1 // java.util.List pipeline
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            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/client/AggregateIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      pipeline     final
      resultClass  final

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

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

  private <TResult> com.mongodb.client.AggregateIterable<TResult> createAggregateIterable(com.mongodb.client.ClientSession, java.util.List<? extends org.bson.conversions.Bson>, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/AggregateIterable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=12, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.util.List pipeline
        start local 3 // java.lang.Class resultClass
         0: .line 406
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.name:Ljava/lang/String;
            ldc Lorg/bson/Document;
            aload 3 /* resultClass */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
         1: .line 407
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.writeConcern:Lcom/mongodb/WriteConcern;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            aload 2 /* pipeline */
            getstatic com.mongodb.client.model.AggregationLevel.DATABASE:Lcom/mongodb/client/model/AggregationLevel;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.retryReads:Z
         2: .line 406
            invokestatic com.mongodb.client.internal.MongoIterables.aggregateOf:(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/WriteConcern;Lcom/mongodb/client/internal/OperationExecutor;Ljava/util/List;Lcom/mongodb/client/model/AggregationLevel;Z)Lcom/mongodb/client/AggregateIterable;
            areturn
        end local 3 // java.lang.Class resultClass
        end local 2 // java.util.List pipeline
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    3     1  clientSession  Lcom/mongodb/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/client/ClientSession;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/AggregateIterable<TTResult;>;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
    MethodParameters:
               Name  Flags
      clientSession  final
      pipeline       final
      resultClass    final

  private <TResult> com.mongodb.client.ChangeStreamIterable<TResult> createChangeStreamIterable(com.mongodb.client.ClientSession, java.util.List<? extends org.bson.conversions.Bson>, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/ChangeStreamIterable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.util.List pipeline
        start local 3 // java.lang.Class resultClass
         0: .line 413
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.name:Ljava/lang/String;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.readPreference:Lcom/mongodb/ReadPreference;
         1: .line 414
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            aload 2 /* pipeline */
            aload 3 /* resultClass */
            getstatic com.mongodb.client.model.changestream.ChangeStreamLevel.DATABASE:Lcom/mongodb/client/model/changestream/ChangeStreamLevel;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.retryReads:Z
         2: .line 413
            invokestatic com.mongodb.client.internal.MongoIterables.changeStreamOf:(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/internal/OperationExecutor;Ljava/util/List;Ljava/lang/Class;Lcom/mongodb/client/model/changestream/ChangeStreamLevel;Z)Lcom/mongodb/client/ChangeStreamIterable;
            areturn
        end local 3 // java.lang.Class resultClass
        end local 2 // java.util.List pipeline
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    3     1  clientSession  Lcom/mongodb/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/client/ClientSession;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/client/ChangeStreamIterable<TTResult;>;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
    MethodParameters:
               Name  Flags
      clientSession  final
      pipeline       final
      resultClass    final

  private void executeCreateView(com.mongodb.client.ClientSession, java.lang.String, java.lang.String, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.client.model.CreateViewOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mongodb/client/model/CreateViewOptions;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=6, args_size=6
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.String viewName
        start local 3 // java.lang.String viewOn
        start local 4 // java.util.List pipeline
        start local 5 // com.mongodb.client.model.CreateViewOptions createViewOptions
         0: .line 419
            ldc "createViewOptions"
            aload 5 /* createViewOptions */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 420
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            new com.mongodb.operation.CreateViewOperation
            dup
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.name:Ljava/lang/String;
            aload 2 /* viewName */
            aload 3 /* viewOn */
            aload 0 /* this */
            aload 4 /* pipeline */
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.createBsonDocumentList:(Ljava/util/List;)Ljava/util/List;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.writeConcern:Lcom/mongodb/WriteConcern;
            invokespecial com.mongodb.operation.CreateViewOperation.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mongodb/WriteConcern;)V
         2: .line 421
            aload 5 /* createViewOptions */
            invokevirtual com.mongodb.client.model.CreateViewOptions.getCollation:()Lcom/mongodb/client/model/Collation;
            invokevirtual com.mongodb.operation.CreateViewOperation.collation:(Lcom/mongodb/client/model/Collation;)Lcom/mongodb/operation/CreateViewOperation;
         3: .line 422
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
         4: .line 420
            invokeinterface com.mongodb.client.internal.OperationExecutor.execute:(Lcom/mongodb/operation/WriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/ClientSession;)Ljava/lang/Object;
            pop
         5: .line 423
            return
        end local 5 // com.mongodb.client.model.CreateViewOptions createViewOptions
        end local 4 // java.util.List pipeline
        end local 3 // java.lang.String viewOn
        end local 2 // java.lang.String viewName
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0               this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    6     1      clientSession  Lcom/mongodb/client/ClientSession;
            0    6     2           viewName  Ljava/lang/String;
            0    6     3             viewOn  Ljava/lang/String;
            0    6     4           pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    6     5  createViewOptions  Lcom/mongodb/client/model/CreateViewOptions;
    Signature: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/client/model/CreateViewOptions;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
      4:
    MethodParameters:
                   Name  Flags
      clientSession      final
      viewName           final
      viewOn             final
      pipeline           final
      createViewOptions  final

  private java.util.List<org.bson.BsonDocument> createBsonDocumentList(java.util.List<? extends org.bson.conversions.Bson>);
    descriptor: (Ljava/util/List;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // java.util.List pipeline
         0: .line 426
            ldc "pipeline"
            aload 1 /* pipeline */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 427
            new java.util.ArrayList
            dup
            aload 1 /* pipeline */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* bsonDocumentPipeline */
        start local 2 // java.util.List bsonDocumentPipeline
         2: .line 428
            aload 1 /* pipeline */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 7
      StackMap locals: com.mongodb.client.internal.MongoDatabaseImpl java.util.List java.util.List top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.bson.conversions.Bson
            astore 3 /* obj */
        start local 3 // org.bson.conversions.Bson obj
         4: .line 429
            aload 3 /* obj */
            ifnonnull 6
         5: .line 430
            new java.lang.IllegalArgumentException
            dup
            ldc "pipeline can not contain a null value"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 432
      StackMap locals: com.mongodb.client.internal.MongoDatabaseImpl java.util.List java.util.List org.bson.conversions.Bson java.util.Iterator
      StackMap stack:
            aload 2 /* bsonDocumentPipeline */
            aload 3 /* obj */
            ldc Lorg/bson/BsonDocument;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            invokeinterface org.bson.conversions.Bson.toBsonDocument:(Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;)Lorg/bson/BsonDocument;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // org.bson.conversions.Bson obj
         7: .line 428
      StackMap locals: com.mongodb.client.internal.MongoDatabaseImpl java.util.List java.util.List top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         8: .line 434
            aload 2 /* bsonDocumentPipeline */
            areturn
        end local 2 // java.util.List bsonDocumentPipeline
        end local 1 // java.util.List pipeline
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    9     0                  this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    9     1              pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            2    9     2  bsonDocumentPipeline  Ljava/util/List<Lorg/bson/BsonDocument;>;
            4    7     3                   obj  Lorg/bson/conversions/Bson;
    Signature: (Ljava/util/List<+Lorg/bson/conversions/Bson;>;)Ljava/util/List<Lorg/bson/BsonDocument;>;
    MethodParameters:
          Name  Flags
      pipeline  final

  private org.bson.BsonDocument toBsonDocument(org.bson.conversions.Bson);
    descriptor: (Lorg/bson/conversions/Bson;)Lorg/bson/BsonDocument;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // org.bson.conversions.Bson document
         0: .line 439
            aload 1 /* document */
            ifnonnull 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* document */
            ldc Lorg/bson/BsonDocument;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            invokeinterface org.bson.conversions.Bson.toBsonDocument:(Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;)Lorg/bson/BsonDocument;
      StackMap locals:
      StackMap stack: org.bson.BsonDocument
         2: areturn
        end local 1 // org.bson.conversions.Bson document
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    3     1  document  Lorg/bson/conversions/Bson;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
    MethodParameters:
          Name  Flags
      document  final
}
SourceFile: "MongoDatabaseImpl.java"
NestMembers:
  com.mongodb.client.internal.MongoDatabaseImpl$1
InnerClasses:
  com.mongodb.client.internal.MongoDatabaseImpl$1