public class com.mongodb.MongoClient extends com.mongodb.Mongo implements java.io.Closeable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.mongodb.MongoClient
  super_class: com.mongodb.Mongo
{
  public static org.bson.codecs.configuration.CodecRegistry getDefaultCodecRegistry();
    descriptor: ()Lorg/bson/codecs/configuration/CodecRegistry;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 111
            invokestatic com.mongodb.MongoClientSettings.getDefaultCodecRegistry:()Lorg/bson/codecs/configuration/CodecRegistry;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.mongodb.MongoClient this
         0: .line 118
            aload 0 /* this */
            new com.mongodb.ServerAddress
            dup
            invokespecial com.mongodb.ServerAddress.<init>:()V
            invokespecial com.mongodb.MongoClient.<init>:(Lcom/mongodb/ServerAddress;)V
         1: .line 119
            return
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/MongoClient;

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.MongoClient this
        start local 1 // java.lang.String host
         0: .line 127
            aload 0 /* this */
            aload 1 /* host */
            invokestatic com.mongodb.internal.connection.ServerAddressHelper.createServerAddress:(Ljava/lang/String;)Lcom/mongodb/ServerAddress;
            invokespecial com.mongodb.MongoClient.<init>:(Lcom/mongodb/ServerAddress;)V
         1: .line 128
            return
        end local 1 // java.lang.String host
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/MongoClient;
            0    2     1  host  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      host  final

  public void <init>(java.lang.String, com.mongodb.MongoClientOptions);
    descriptor: (Ljava/lang/String;Lcom/mongodb/MongoClientOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.mongodb.MongoClient this
        start local 1 // java.lang.String host
        start local 2 // com.mongodb.MongoClientOptions options
         0: .line 137
            aload 0 /* this */
            aload 1 /* host */
            invokestatic com.mongodb.internal.connection.ServerAddressHelper.createServerAddress:(Ljava/lang/String;)Lcom/mongodb/ServerAddress;
            aload 2 /* options */
            invokespecial com.mongodb.MongoClient.<init>:(Lcom/mongodb/ServerAddress;Lcom/mongodb/MongoClientOptions;)V
         1: .line 138
            return
        end local 2 // com.mongodb.MongoClientOptions options
        end local 1 // java.lang.String host
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/mongodb/MongoClient;
            0    2     1     host  Ljava/lang/String;
            0    2     2  options  Lcom/mongodb/MongoClientOptions;
    MethodParameters:
         Name  Flags
      host     final
      options  final

  public void <init>(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.mongodb.MongoClient this
        start local 1 // java.lang.String host
        start local 2 // int port
         0: .line 147
            aload 0 /* this */
            aload 1 /* host */
            iload 2 /* port */
            invokestatic com.mongodb.internal.connection.ServerAddressHelper.createServerAddress:(Ljava/lang/String;I)Lcom/mongodb/ServerAddress;
            invokespecial com.mongodb.MongoClient.<init>:(Lcom/mongodb/ServerAddress;)V
         1: .line 148
            return
        end local 2 // int port
        end local 1 // java.lang.String host
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/MongoClient;
            0    2     1  host  Ljava/lang/String;
            0    2     2  port  I
    MethodParameters:
      Name  Flags
      host  final
      port  final

  public void <init>(com.mongodb.ServerAddress);
    descriptor: (Lcom/mongodb/ServerAddress;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.MongoClient this
        start local 1 // com.mongodb.ServerAddress addr
         0: .line 157
            aload 0 /* this */
            aload 1 /* addr */
            new com.mongodb.MongoClientOptions$Builder
            dup
            invokespecial com.mongodb.MongoClientOptions$Builder.<init>:()V
            invokevirtual com.mongodb.MongoClientOptions$Builder.build:()Lcom/mongodb/MongoClientOptions;
            invokespecial com.mongodb.MongoClient.<init>:(Lcom/mongodb/ServerAddress;Lcom/mongodb/MongoClientOptions;)V
         1: .line 158
            return
        end local 1 // com.mongodb.ServerAddress addr
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/MongoClient;
            0    2     1  addr  Lcom/mongodb/ServerAddress;
    MethodParameters:
      Name  Flags
      addr  final

  public void <init>(com.mongodb.ServerAddress, java.util.List<com.mongodb.MongoCredential>);
    descriptor: (Lcom/mongodb/ServerAddress;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.MongoClient this
        start local 1 // com.mongodb.ServerAddress addr
        start local 2 // java.util.List credentialsList
         0: .line 171
            aload 0 /* this */
            aload 1 /* addr */
            aload 2 /* credentialsList */
            invokestatic com.mongodb.MongoClientOptions.builder:()Lcom/mongodb/MongoClientOptions$Builder;
            invokevirtual com.mongodb.MongoClientOptions$Builder.build:()Lcom/mongodb/MongoClientOptions;
            invokespecial com.mongodb.MongoClient.<init>:(Lcom/mongodb/ServerAddress;Ljava/util/List;Lcom/mongodb/MongoClientOptions;)V
         1: .line 172
            return
        end local 2 // java.util.List credentialsList
        end local 1 // com.mongodb.ServerAddress addr
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/mongodb/MongoClient;
            0    2     1             addr  Lcom/mongodb/ServerAddress;
            0    2     2  credentialsList  Ljava/util/List<Lcom/mongodb/MongoCredential;>;
    Signature: (Lcom/mongodb/ServerAddress;Ljava/util/List<Lcom/mongodb/MongoCredential;>;)V
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                 Name  Flags
      addr             final
      credentialsList  final

  public void <init>(com.mongodb.ServerAddress, com.mongodb.MongoClientOptions);
    descriptor: (Lcom/mongodb/ServerAddress;Lcom/mongodb/MongoClientOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.mongodb.MongoClient this
        start local 1 // com.mongodb.ServerAddress addr
        start local 2 // com.mongodb.MongoClientOptions options
         0: .line 182
            aload 0 /* this */
            aload 1 /* addr */
            aload 2 /* options */
            invokespecial com.mongodb.Mongo.<init>:(Lcom/mongodb/ServerAddress;Lcom/mongodb/MongoClientOptions;)V
         1: .line 183
            return
        end local 2 // com.mongodb.MongoClientOptions options
        end local 1 // com.mongodb.ServerAddress addr
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/mongodb/MongoClient;
            0    2     1     addr  Lcom/mongodb/ServerAddress;
            0    2     2  options  Lcom/mongodb/MongoClientOptions;
    MethodParameters:
         Name  Flags
      addr     final
      options  final

  public void <init>(com.mongodb.ServerAddress, java.util.List<com.mongodb.MongoCredential>, com.mongodb.MongoClientOptions);
    descriptor: (Lcom/mongodb/ServerAddress;Ljava/util/List;Lcom/mongodb/MongoClientOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.MongoClient this
        start local 1 // com.mongodb.ServerAddress addr
        start local 2 // java.util.List credentialsList
        start local 3 // com.mongodb.MongoClientOptions options
         0: .line 197
            aload 0 /* this */
            aload 1 /* addr */
            aload 2 /* credentialsList */
            aload 3 /* options */
            invokespecial com.mongodb.Mongo.<init>:(Lcom/mongodb/ServerAddress;Ljava/util/List;Lcom/mongodb/MongoClientOptions;)V
         1: .line 198
            return
        end local 3 // com.mongodb.MongoClientOptions options
        end local 2 // java.util.List credentialsList
        end local 1 // com.mongodb.ServerAddress addr
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/mongodb/MongoClient;
            0    2     1             addr  Lcom/mongodb/ServerAddress;
            0    2     2  credentialsList  Ljava/util/List<Lcom/mongodb/MongoCredential;>;
            0    2     3          options  Lcom/mongodb/MongoClientOptions;
    Signature: (Lcom/mongodb/ServerAddress;Ljava/util/List<Lcom/mongodb/MongoCredential;>;Lcom/mongodb/MongoClientOptions;)V
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                 Name  Flags
      addr             final
      credentialsList  final
      options          final

  public void <init>(com.mongodb.ServerAddress, com.mongodb.MongoCredential, com.mongodb.MongoClientOptions);
    descriptor: (Lcom/mongodb/ServerAddress;Lcom/mongodb/MongoCredential;Lcom/mongodb/MongoClientOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.MongoClient this
        start local 1 // com.mongodb.ServerAddress addr
        start local 2 // com.mongodb.MongoCredential credential
        start local 3 // com.mongodb.MongoClientOptions options
         0: .line 210
            aload 0 /* this */
            aload 1 /* addr */
            aload 2 /* credential */
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            aload 3 /* options */
            invokespecial com.mongodb.Mongo.<init>:(Lcom/mongodb/ServerAddress;Ljava/util/List;Lcom/mongodb/MongoClientOptions;)V
         1: .line 211
            return
        end local 3 // com.mongodb.MongoClientOptions options
        end local 2 // com.mongodb.MongoCredential credential
        end local 1 // com.mongodb.ServerAddress addr
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/mongodb/MongoClient;
            0    2     1        addr  Lcom/mongodb/ServerAddress;
            0    2     2  credential  Lcom/mongodb/MongoCredential;
            0    2     3     options  Lcom/mongodb/MongoClientOptions;
    MethodParameters:
            Name  Flags
      addr        final
      credential  final
      options     final

  public void <init>(java.util.List<com.mongodb.ServerAddress>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.MongoClient this
        start local 1 // java.util.List seeds
         0: .line 228
            aload 0 /* this */
            aload 1 /* seeds */
            new com.mongodb.MongoClientOptions$Builder
            dup
            invokespecial com.mongodb.MongoClientOptions$Builder.<init>:()V
            invokevirtual com.mongodb.MongoClientOptions$Builder.build:()Lcom/mongodb/MongoClientOptions;
            invokespecial com.mongodb.MongoClient.<init>:(Ljava/util/List;Lcom/mongodb/MongoClientOptions;)V
         1: .line 229
            return
        end local 1 // java.util.List seeds
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/mongodb/MongoClient;
            0    2     1  seeds  Ljava/util/List<Lcom/mongodb/ServerAddress;>;
    Signature: (Ljava/util/List<Lcom/mongodb/ServerAddress;>;)V
    MethodParameters:
       Name  Flags
      seeds  final

  public void <init>(java.util.List<com.mongodb.ServerAddress>, java.util.List<com.mongodb.MongoCredential>);
    descriptor: (Ljava/util/List;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.MongoClient this
        start local 1 // java.util.List seeds
        start local 2 // java.util.List credentialsList
         0: .line 251
            aload 0 /* this */
            aload 1 /* seeds */
            aload 2 /* credentialsList */
            new com.mongodb.MongoClientOptions$Builder
            dup
            invokespecial com.mongodb.MongoClientOptions$Builder.<init>:()V
            invokevirtual com.mongodb.MongoClientOptions$Builder.build:()Lcom/mongodb/MongoClientOptions;
            invokespecial com.mongodb.MongoClient.<init>:(Ljava/util/List;Ljava/util/List;Lcom/mongodb/MongoClientOptions;)V
         1: .line 252
            return
        end local 2 // java.util.List credentialsList
        end local 1 // java.util.List seeds
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/mongodb/MongoClient;
            0    2     1            seeds  Ljava/util/List<Lcom/mongodb/ServerAddress;>;
            0    2     2  credentialsList  Ljava/util/List<Lcom/mongodb/MongoCredential;>;
    Signature: (Ljava/util/List<Lcom/mongodb/ServerAddress;>;Ljava/util/List<Lcom/mongodb/MongoCredential;>;)V
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                 Name  Flags
      seeds            final
      credentialsList  final

  public void <init>(java.util.List<com.mongodb.ServerAddress>, com.mongodb.MongoClientOptions);
    descriptor: (Ljava/util/List;Lcom/mongodb/MongoClientOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.mongodb.MongoClient this
        start local 1 // java.util.List seeds
        start local 2 // com.mongodb.MongoClientOptions options
         0: .line 271
            aload 0 /* this */
            aload 1 /* seeds */
            aload 2 /* options */
            invokespecial com.mongodb.Mongo.<init>:(Ljava/util/List;Lcom/mongodb/MongoClientOptions;)V
         1: .line 272
            return
        end local 2 // com.mongodb.MongoClientOptions options
        end local 1 // java.util.List seeds
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/mongodb/MongoClient;
            0    2     1    seeds  Ljava/util/List<Lcom/mongodb/ServerAddress;>;
            0    2     2  options  Lcom/mongodb/MongoClientOptions;
    Signature: (Ljava/util/List<Lcom/mongodb/ServerAddress;>;Lcom/mongodb/MongoClientOptions;)V
    MethodParameters:
         Name  Flags
      seeds    final
      options  final

  public void <init>(java.util.List<com.mongodb.ServerAddress>, java.util.List<com.mongodb.MongoCredential>, com.mongodb.MongoClientOptions);
    descriptor: (Ljava/util/List;Ljava/util/List;Lcom/mongodb/MongoClientOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.MongoClient this
        start local 1 // java.util.List seeds
        start local 2 // java.util.List credentialsList
        start local 3 // com.mongodb.MongoClientOptions options
         0: .line 295
            aload 0 /* this */
            aload 1 /* seeds */
            aload 2 /* credentialsList */
            aload 3 /* options */
            invokespecial com.mongodb.Mongo.<init>:(Ljava/util/List;Ljava/util/List;Lcom/mongodb/MongoClientOptions;)V
         1: .line 296
            return
        end local 3 // com.mongodb.MongoClientOptions options
        end local 2 // java.util.List credentialsList
        end local 1 // java.util.List seeds
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/mongodb/MongoClient;
            0    2     1            seeds  Ljava/util/List<Lcom/mongodb/ServerAddress;>;
            0    2     2  credentialsList  Ljava/util/List<Lcom/mongodb/MongoCredential;>;
            0    2     3          options  Lcom/mongodb/MongoClientOptions;
    Signature: (Ljava/util/List<Lcom/mongodb/ServerAddress;>;Ljava/util/List<Lcom/mongodb/MongoCredential;>;Lcom/mongodb/MongoClientOptions;)V
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                 Name  Flags
      seeds            final
      credentialsList  final
      options          final

  public void <init>(java.util.List<com.mongodb.ServerAddress>, com.mongodb.MongoCredential, com.mongodb.MongoClientOptions);
    descriptor: (Ljava/util/List;Lcom/mongodb/MongoCredential;Lcom/mongodb/MongoClientOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.MongoClient this
        start local 1 // java.util.List seeds
        start local 2 // com.mongodb.MongoCredential credential
        start local 3 // com.mongodb.MongoClientOptions options
         0: .line 317
            aload 0 /* this */
            aload 1 /* seeds */
            aload 2 /* credential */
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            aload 3 /* options */
            invokespecial com.mongodb.Mongo.<init>:(Ljava/util/List;Ljava/util/List;Lcom/mongodb/MongoClientOptions;)V
         1: .line 318
            return
        end local 3 // com.mongodb.MongoClientOptions options
        end local 2 // com.mongodb.MongoCredential credential
        end local 1 // java.util.List seeds
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/mongodb/MongoClient;
            0    2     1       seeds  Ljava/util/List<Lcom/mongodb/ServerAddress;>;
            0    2     2  credential  Lcom/mongodb/MongoCredential;
            0    2     3     options  Lcom/mongodb/MongoClientOptions;
    Signature: (Ljava/util/List<Lcom/mongodb/ServerAddress;>;Lcom/mongodb/MongoCredential;Lcom/mongodb/MongoClientOptions;)V
    MethodParameters:
            Name  Flags
      seeds       final
      credential  final
      options     final

  public void <init>(com.mongodb.MongoClientURI);
    descriptor: (Lcom/mongodb/MongoClientURI;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.MongoClient this
        start local 1 // com.mongodb.MongoClientURI uri
         0: .line 328
            aload 0 /* this */
            aload 1 /* uri */
            invokespecial com.mongodb.Mongo.<init>:(Lcom/mongodb/MongoClientURI;)V
         1: .line 329
            return
        end local 1 // com.mongodb.MongoClientURI uri
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/MongoClient;
            0    2     1   uri  Lcom/mongodb/MongoClientURI;
    MethodParameters:
      Name  Flags
      uri   final

  public void <init>(com.mongodb.MongoClientURI, com.mongodb.MongoDriverInformation);
    descriptor: (Lcom/mongodb/MongoClientURI;Lcom/mongodb/MongoDriverInformation;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.mongodb.MongoClient this
        start local 1 // com.mongodb.MongoClientURI uri
        start local 2 // com.mongodb.MongoDriverInformation mongoDriverInformation
         0: .line 342
            aload 0 /* this */
            aload 1 /* uri */
            aload 2 /* mongoDriverInformation */
            invokespecial com.mongodb.Mongo.<init>:(Lcom/mongodb/MongoClientURI;Lcom/mongodb/MongoDriverInformation;)V
         1: .line 343
            return
        end local 2 // com.mongodb.MongoDriverInformation mongoDriverInformation
        end local 1 // com.mongodb.MongoClientURI uri
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    2     0                    this  Lcom/mongodb/MongoClient;
            0    2     1                     uri  Lcom/mongodb/MongoClientURI;
            0    2     2  mongoDriverInformation  Lcom/mongodb/MongoDriverInformation;
    MethodParameters:
                        Name  Flags
      uri                     final
      mongoDriverInformation  final

  public void <init>(com.mongodb.ServerAddress, java.util.List<com.mongodb.MongoCredential>, com.mongodb.MongoClientOptions, com.mongodb.MongoDriverInformation);
    descriptor: (Lcom/mongodb/ServerAddress;Ljava/util/List;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.MongoClient this
        start local 1 // com.mongodb.ServerAddress addr
        start local 2 // java.util.List credentialsList
        start local 3 // com.mongodb.MongoClientOptions options
        start local 4 // com.mongodb.MongoDriverInformation mongoDriverInformation
         0: .line 361
            aload 0 /* this */
            aload 1 /* addr */
            aload 2 /* credentialsList */
            aload 3 /* options */
            aload 4 /* mongoDriverInformation */
            invokespecial com.mongodb.Mongo.<init>:(Lcom/mongodb/ServerAddress;Ljava/util/List;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)V
         1: .line 362
            return
        end local 4 // com.mongodb.MongoDriverInformation mongoDriverInformation
        end local 3 // com.mongodb.MongoClientOptions options
        end local 2 // java.util.List credentialsList
        end local 1 // com.mongodb.ServerAddress addr
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    2     0                    this  Lcom/mongodb/MongoClient;
            0    2     1                    addr  Lcom/mongodb/ServerAddress;
            0    2     2         credentialsList  Ljava/util/List<Lcom/mongodb/MongoCredential;>;
            0    2     3                 options  Lcom/mongodb/MongoClientOptions;
            0    2     4  mongoDriverInformation  Lcom/mongodb/MongoDriverInformation;
    Signature: (Lcom/mongodb/ServerAddress;Ljava/util/List<Lcom/mongodb/MongoCredential;>;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)V
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                        Name  Flags
      addr                    final
      credentialsList         final
      options                 final
      mongoDriverInformation  final

  public void <init>(com.mongodb.ServerAddress, com.mongodb.MongoCredential, com.mongodb.MongoClientOptions, com.mongodb.MongoDriverInformation);
    descriptor: (Lcom/mongodb/ServerAddress;Lcom/mongodb/MongoCredential;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.MongoClient this
        start local 1 // com.mongodb.ServerAddress addr
        start local 2 // com.mongodb.MongoCredential credential
        start local 3 // com.mongodb.MongoClientOptions options
        start local 4 // com.mongodb.MongoDriverInformation mongoDriverInformation
         0: .line 378
            aload 0 /* this */
            aload 1 /* addr */
            aload 2 /* credential */
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            aload 3 /* options */
            aload 4 /* mongoDriverInformation */
            invokespecial com.mongodb.Mongo.<init>:(Lcom/mongodb/ServerAddress;Ljava/util/List;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)V
         1: .line 379
            return
        end local 4 // com.mongodb.MongoDriverInformation mongoDriverInformation
        end local 3 // com.mongodb.MongoClientOptions options
        end local 2 // com.mongodb.MongoCredential credential
        end local 1 // com.mongodb.ServerAddress addr
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    2     0                    this  Lcom/mongodb/MongoClient;
            0    2     1                    addr  Lcom/mongodb/ServerAddress;
            0    2     2              credential  Lcom/mongodb/MongoCredential;
            0    2     3                 options  Lcom/mongodb/MongoClientOptions;
            0    2     4  mongoDriverInformation  Lcom/mongodb/MongoDriverInformation;
    MethodParameters:
                        Name  Flags
      addr                    final
      credential              final
      options                 final
      mongoDriverInformation  final

  public void <init>(java.util.List<com.mongodb.ServerAddress>, java.util.List<com.mongodb.MongoCredential>, com.mongodb.MongoClientOptions, com.mongodb.MongoDriverInformation);
    descriptor: (Ljava/util/List;Ljava/util/List;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.MongoClient this
        start local 1 // java.util.List seeds
        start local 2 // java.util.List credentialsList
        start local 3 // com.mongodb.MongoClientOptions options
        start local 4 // com.mongodb.MongoDriverInformation mongoDriverInformation
         0: .line 397
            aload 0 /* this */
            aload 1 /* seeds */
            aload 2 /* credentialsList */
            aload 3 /* options */
            aload 4 /* mongoDriverInformation */
            invokespecial com.mongodb.Mongo.<init>:(Ljava/util/List;Ljava/util/List;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)V
         1: .line 398
            return
        end local 4 // com.mongodb.MongoDriverInformation mongoDriverInformation
        end local 3 // com.mongodb.MongoClientOptions options
        end local 2 // java.util.List credentialsList
        end local 1 // java.util.List seeds
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    2     0                    this  Lcom/mongodb/MongoClient;
            0    2     1                   seeds  Ljava/util/List<Lcom/mongodb/ServerAddress;>;
            0    2     2         credentialsList  Ljava/util/List<Lcom/mongodb/MongoCredential;>;
            0    2     3                 options  Lcom/mongodb/MongoClientOptions;
            0    2     4  mongoDriverInformation  Lcom/mongodb/MongoDriverInformation;
    Signature: (Ljava/util/List<Lcom/mongodb/ServerAddress;>;Ljava/util/List<Lcom/mongodb/MongoCredential;>;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)V
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                        Name  Flags
      seeds                   final
      credentialsList         final
      options                 final
      mongoDriverInformation  final

  public void <init>(java.util.List<com.mongodb.ServerAddress>, com.mongodb.MongoCredential, com.mongodb.MongoClientOptions, com.mongodb.MongoDriverInformation);
    descriptor: (Ljava/util/List;Lcom/mongodb/MongoCredential;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.MongoClient this
        start local 1 // java.util.List seeds
        start local 2 // com.mongodb.MongoCredential credential
        start local 3 // com.mongodb.MongoClientOptions options
        start local 4 // com.mongodb.MongoDriverInformation mongoDriverInformation
         0: .line 414
            aload 0 /* this */
            aload 1 /* seeds */
            aload 2 /* credential */
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            aload 3 /* options */
            aload 4 /* mongoDriverInformation */
            invokespecial com.mongodb.Mongo.<init>:(Ljava/util/List;Ljava/util/List;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)V
         1: .line 415
            return
        end local 4 // com.mongodb.MongoDriverInformation mongoDriverInformation
        end local 3 // com.mongodb.MongoClientOptions options
        end local 2 // com.mongodb.MongoCredential credential
        end local 1 // java.util.List seeds
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    2     0                    this  Lcom/mongodb/MongoClient;
            0    2     1                   seeds  Ljava/util/List<Lcom/mongodb/ServerAddress;>;
            0    2     2              credential  Lcom/mongodb/MongoCredential;
            0    2     3                 options  Lcom/mongodb/MongoClientOptions;
            0    2     4  mongoDriverInformation  Lcom/mongodb/MongoDriverInformation;
    Signature: (Ljava/util/List<Lcom/mongodb/ServerAddress;>;Lcom/mongodb/MongoCredential;Lcom/mongodb/MongoClientOptions;Lcom/mongodb/MongoDriverInformation;)V
    MethodParameters:
                        Name  Flags
      seeds                   final
      credential              final
      options                 final
      mongoDriverInformation  final

  public com.mongodb.MongoClientOptions getMongoClientOptions();
    descriptor: ()Lcom/mongodb/MongoClientOptions;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.MongoClient this
         0: .line 425
            aload 0 /* this */
            invokespecial com.mongodb.Mongo.getMongoClientOptions:()Lcom/mongodb/MongoClientOptions;
            areturn
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/MongoClient;

  public com.mongodb.MongoCredential getCredential();
    descriptor: ()Lcom/mongodb/MongoCredential;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.mongodb.MongoClient this
         0: .line 436
            aload 0 /* this */
            invokevirtual com.mongodb.MongoClient.getCredentialsList:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmple 2
         1: .line 437
            new java.lang.IllegalStateException
            dup
            ldc "Instance constructed with more than one MongoCredential"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 438
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.mongodb.MongoClient.getCredentialsList:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 4
         3: .line 439
            aconst_null
            areturn
         4: .line 441
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.mongodb.MongoClient.getCredentialsList:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.mongodb.MongoCredential
            areturn
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/mongodb/MongoClient;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()

  public java.util.List<com.mongodb.MongoCredential> getCredentialsList();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.MongoClient this
         0: .line 454
            aload 0 /* this */
            invokespecial com.mongodb.Mongo.getCredentialsList:()Ljava/util/List;
            areturn
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/MongoClient;
    Signature: ()Ljava/util/List<Lcom/mongodb/MongoCredential;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

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

  public com.mongodb.client.MongoIterable<java.lang.String> listDatabaseNames(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.MongoClient this
        start local 1 // com.mongodb.client.ClientSession clientSession
         0: .line 478
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 479
            aload 0 /* this */
            aload 1 /* clientSession */
            invokevirtual com.mongodb.MongoClient.createListDatabaseNamesIterable:(Lcom/mongodb/client/ClientSession;)Lcom/mongodb/client/MongoIterable;
            areturn
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/MongoClient;
            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> createListDatabaseNamesIterable(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.MongoClient this
        start local 1 // com.mongodb.client.ClientSession clientSession
         0: .line 483
            aload 0 /* this */
            aload 1 /* clientSession */
            ldc Lorg/bson/BsonDocument;
            invokevirtual com.mongodb.MongoClient.createListDatabasesIterable:(Lcom/mongodb/client/ClientSession;Ljava/lang/Class;)Lcom/mongodb/client/ListDatabasesIterable;
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface com.mongodb.client.ListDatabasesIterable.nameOnly:(Ljava/lang/Boolean;)Lcom/mongodb/client/ListDatabasesIterable;
            new com.mongodb.MongoClient$1
            dup
            aload 0 /* this */
            invokespecial com.mongodb.MongoClient$1.<init>:(Lcom/mongodb/MongoClient;)V
            invokeinterface com.mongodb.client.ListDatabasesIterable.map:(Lcom/mongodb/Function;)Lcom/mongodb/client/MongoIterable;
            areturn
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/MongoClient;
            0    1     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.ListDatabasesIterable<org.bson.Document> listDatabases();
    descriptor: ()Lcom/mongodb/client/ListDatabasesIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.MongoClient this
         0: .line 498
            aload 0 /* this */
            ldc Lorg/bson/Document;
            invokevirtual com.mongodb.MongoClient.listDatabases:(Ljava/lang/Class;)Lcom/mongodb/client/ListDatabasesIterable;
            areturn
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/MongoClient;
    Signature: ()Lcom/mongodb/client/ListDatabasesIterable<Lorg/bson/Document;>;

  public <T> com.mongodb.client.ListDatabasesIterable<T> listDatabases(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Lcom/mongodb/client/ListDatabasesIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.MongoClient this
        start local 1 // java.lang.Class clazz
         0: .line 510
            aload 0 /* this */
            aconst_null
            aload 1 /* clazz */
            invokevirtual com.mongodb.MongoClient.createListDatabasesIterable:(Lcom/mongodb/client/ClientSession;Ljava/lang/Class;)Lcom/mongodb/client/ListDatabasesIterable;
            areturn
        end local 1 // java.lang.Class clazz
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/mongodb/MongoClient;
            0    1     1  clazz  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)Lcom/mongodb/client/ListDatabasesIterable<TT;>;
    MethodParameters:
       Name  Flags
      clazz  final

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

  public <T> com.mongodb.client.ListDatabasesIterable<T> listDatabases(com.mongodb.client.ClientSession, java.lang.Class<T>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/Class;)Lcom/mongodb/client/ListDatabasesIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.mongodb.MongoClient this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.Class clazz
         0: .line 536
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 537
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* clazz */
            invokevirtual com.mongodb.MongoClient.createListDatabasesIterable:(Lcom/mongodb/client/ClientSession;Ljava/lang/Class;)Lcom/mongodb/client/ListDatabasesIterable;
            areturn
        end local 2 // java.lang.Class clazz
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/MongoClient;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2          clazz  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Ljava/lang/Class<TT;>;)Lcom/mongodb/client/ListDatabasesIterable<TT;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      clazz          final

  private <T> com.mongodb.client.ListDatabasesIterable<T> createListDatabasesIterable(com.mongodb.client.ClientSession, java.lang.Class<T>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/Class;)Lcom/mongodb/client/ListDatabasesIterable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // com.mongodb.MongoClient this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.Class clazz
         0: .line 541
            aload 1 /* clientSession */
            aload 2 /* clazz */
            aload 0 /* this */
            invokevirtual com.mongodb.MongoClient.getMongoClientOptions:()Lcom/mongodb/MongoClientOptions;
            invokevirtual com.mongodb.MongoClientOptions.getCodecRegistry:()Lorg/bson/codecs/configuration/CodecRegistry;
         1: .line 542
            invokestatic com.mongodb.ReadPreference.primary:()Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            invokevirtual com.mongodb.MongoClient.createOperationExecutor:()Lcom/mongodb/client/internal/OperationExecutor;
            aload 0 /* this */
            invokevirtual com.mongodb.MongoClient.getMongoClientOptions:()Lcom/mongodb/MongoClientOptions;
            invokevirtual com.mongodb.MongoClientOptions.getRetryReads:()Z
         2: .line 541
            invokestatic com.mongodb.client.internal.MongoIterables.listDatabasesOf:(Lcom/mongodb/client/ClientSession;Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/client/internal/OperationExecutor;Z)Lcom/mongodb/client/ListDatabasesIterable;
            areturn
        end local 2 // java.lang.Class clazz
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/MongoClient;
            0    3     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    3     2          clazz  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Ljava/lang/Class<TT;>;)Lcom/mongodb/client/ListDatabasesIterable<TT;>;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
    MethodParameters:
               Name  Flags
      clientSession  final
      clazz          final

  public com.mongodb.client.MongoDatabase getDatabase(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/mongodb/client/MongoDatabase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=3, args_size=2
        start local 0 // com.mongodb.MongoClient this
        start local 1 // java.lang.String databaseName
         0: .line 552
            aload 0 /* this */
            invokevirtual com.mongodb.MongoClient.getMongoClientOptions:()Lcom/mongodb/MongoClientOptions;
            astore 2 /* clientOptions */
        start local 2 // com.mongodb.MongoClientOptions clientOptions
         1: .line 553
            new com.mongodb.client.internal.MongoDatabaseImpl
            dup
            aload 1 /* databaseName */
            aload 2 /* clientOptions */
            invokevirtual com.mongodb.MongoClientOptions.getCodecRegistry:()Lorg/bson/codecs/configuration/CodecRegistry;
            aload 2 /* clientOptions */
            invokevirtual com.mongodb.MongoClientOptions.getReadPreference:()Lcom/mongodb/ReadPreference;
         2: .line 554
            aload 2 /* clientOptions */
            invokevirtual com.mongodb.MongoClientOptions.getWriteConcern:()Lcom/mongodb/WriteConcern;
            aload 2 /* clientOptions */
            invokevirtual com.mongodb.MongoClientOptions.getRetryWrites:()Z
            aload 2 /* clientOptions */
            invokevirtual com.mongodb.MongoClientOptions.getRetryReads:()Z
         3: .line 555
            aload 2 /* clientOptions */
            invokevirtual com.mongodb.MongoClientOptions.getReadConcern:()Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            invokevirtual com.mongodb.MongoClient.createOperationExecutor:()Lcom/mongodb/client/internal/OperationExecutor;
         4: .line 553
            invokespecial com.mongodb.client.internal.MongoDatabaseImpl.<init>:(Ljava/lang/String;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/WriteConcern;ZZLcom/mongodb/ReadConcern;Lcom/mongodb/client/internal/OperationExecutor;)V
            areturn
        end local 2 // com.mongodb.MongoClientOptions clientOptions
        end local 1 // java.lang.String databaseName
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lcom/mongodb/MongoClient;
            0    5     1   databaseName  Ljava/lang/String;
            1    5     2  clientOptions  Lcom/mongodb/MongoClientOptions;
    MethodParameters:
              Name  Flags
      databaseName  final

  public com.mongodb.client.ClientSession startSession();
    descriptor: ()Lcom/mongodb/client/ClientSession;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.MongoClient this
         0: .line 567
            aload 0 /* this */
            invokestatic com.mongodb.ClientSessionOptions.builder:()Lcom/mongodb/ClientSessionOptions$Builder;
            invokevirtual com.mongodb.ClientSessionOptions$Builder.build:()Lcom/mongodb/ClientSessionOptions;
            invokevirtual com.mongodb.MongoClient.startSession:(Lcom/mongodb/ClientSessionOptions;)Lcom/mongodb/client/ClientSession;
            areturn
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/MongoClient;

  public com.mongodb.client.ClientSession startSession(com.mongodb.ClientSessionOptions);
    descriptor: (Lcom/mongodb/ClientSessionOptions;)Lcom/mongodb/client/ClientSession;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.mongodb.MongoClient this
        start local 1 // com.mongodb.ClientSessionOptions options
         0: .line 580
            aload 0 /* this */
            ldc "options"
            aload 1 /* options */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.ClientSessionOptions
            invokevirtual com.mongodb.MongoClient.createClientSession:(Lcom/mongodb/ClientSessionOptions;)Lcom/mongodb/client/ClientSession;
            astore 2 /* clientSession */
        start local 2 // com.mongodb.client.ClientSession clientSession
         1: .line 581
            aload 2 /* clientSession */
            ifnonnull 3
         2: .line 582
            new com.mongodb.MongoClientException
            dup
            ldc "Sessions are not supported by the MongoDB cluster to which this client is connected"
            invokespecial com.mongodb.MongoClientException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 584
      StackMap locals: com.mongodb.client.ClientSession
      StackMap stack:
            aload 2 /* clientSession */
            areturn
        end local 2 // com.mongodb.client.ClientSession clientSession
        end local 1 // com.mongodb.ClientSessionOptions options
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lcom/mongodb/MongoClient;
            0    4     1        options  Lcom/mongodb/ClientSessionOptions;
            1    4     2  clientSession  Lcom/mongodb/client/ClientSession;
    MethodParameters:
         Name  Flags
      options  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.MongoClient this
         0: .line 596
            aload 0 /* this */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokevirtual com.mongodb.MongoClient.watch:(Ljava/util/List;)Lcom/mongodb/client/ChangeStreamIterable;
            areturn
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/MongoClient;
    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.MongoClient this
        start local 1 // java.lang.Class resultClass
         0: .line 610
            aload 0 /* this */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            aload 1 /* resultClass */
            invokevirtual com.mongodb.MongoClient.watch:(Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/ChangeStreamIterable;
            areturn
        end local 1 // java.lang.Class resultClass
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/MongoClient;
            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.MongoClient this
        start local 1 // java.util.List pipeline
         0: .line 623
            aload 0 /* this */
            aload 1 /* pipeline */
            ldc Lorg/bson/Document;
            invokevirtual com.mongodb.MongoClient.watch:(Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/ChangeStreamIterable;
            areturn
        end local 1 // java.util.List pipeline
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/mongodb/MongoClient;
            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.MongoClient this
        start local 1 // java.util.List pipeline
        start local 2 // java.lang.Class resultClass
         0: .line 638
            aload 0 /* this */
            aconst_null
            aload 1 /* pipeline */
            aload 2 /* resultClass */
            invokevirtual com.mongodb.MongoClient.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.MongoClient this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/MongoClient;
            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.MongoClient this
        start local 1 // com.mongodb.client.ClientSession clientSession
         0: .line 651
            aload 0 /* this */
            aload 1 /* clientSession */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            ldc Lorg/bson/Document;
            invokevirtual com.mongodb.MongoClient.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.MongoClient this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/MongoClient;
            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.MongoClient this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.lang.Class resultClass
         0: .line 666
            aload 0 /* this */
            aload 1 /* clientSession */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            aload 2 /* resultClass */
            invokevirtual com.mongodb.MongoClient.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.MongoClient this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/MongoClient;
            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.MongoClient this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.util.List pipeline
         0: .line 680
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* pipeline */
            ldc Lorg/bson/Document;
            invokevirtual com.mongodb.MongoClient.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.MongoClient this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/MongoClient;
            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.MongoClient 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 697
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 698
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* pipeline */
            aload 3 /* resultClass */
            invokevirtual com.mongodb.MongoClient.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.MongoClient this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/MongoClient;
            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 void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.MongoClient this
         0: .line 706
            aload 0 /* this */
            invokespecial com.mongodb.Mongo.close:()V
         1: .line 707
            return
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/MongoClient;

  com.mongodb.client.internal.SimpleMongoClient asSimpleMongoClient();
    descriptor: ()Lcom/mongodb/client/internal/SimpleMongoClient;
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.mongodb.MongoClient this
         0: .line 711
            new com.mongodb.MongoClient$2
            dup
            aload 0 /* this */
            invokespecial com.mongodb.MongoClient$2.<init>:(Lcom/mongodb/MongoClient;)V
            areturn
        end local 0 // com.mongodb.MongoClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/MongoClient;

  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=5, args_size=4
        start local 0 // com.mongodb.MongoClient 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 727
            aload 0 /* this */
            invokevirtual com.mongodb.MongoClient.getMongoClientOptions:()Lcom/mongodb/MongoClientOptions;
            astore 4 /* clientOptions */
        start local 4 // com.mongodb.MongoClientOptions clientOptions
         1: .line 728
            aload 1 /* clientSession */
            ldc "admin"
         2: .line 729
            aload 4 /* clientOptions */
            invokevirtual com.mongodb.MongoClientOptions.getCodecRegistry:()Lorg/bson/codecs/configuration/CodecRegistry;
            aload 4 /* clientOptions */
            invokevirtual com.mongodb.MongoClientOptions.getReadPreference:()Lcom/mongodb/ReadPreference;
            aload 4 /* clientOptions */
            invokevirtual com.mongodb.MongoClientOptions.getReadConcern:()Lcom/mongodb/ReadConcern;
         3: .line 730
            aload 0 /* this */
            invokevirtual com.mongodb.MongoClient.createOperationExecutor:()Lcom/mongodb/client/internal/OperationExecutor;
            aload 2 /* pipeline */
            aload 3 /* resultClass */
            getstatic com.mongodb.client.model.changestream.ChangeStreamLevel.CLIENT:Lcom/mongodb/client/model/changestream/ChangeStreamLevel;
            aload 4 /* clientOptions */
            invokevirtual com.mongodb.MongoClientOptions.getRetryReads:()Z
         4: .line 728
            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 4 // com.mongodb.MongoClientOptions clientOptions
        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.MongoClient this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lcom/mongodb/MongoClient;
            0    5     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    5     2       pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    5     3    resultClass  Ljava/lang/Class<TTResult;>;
            1    5     4  clientOptions  Lcom/mongodb/MongoClientOptions;
    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

  static com.mongodb.DBObjectCodec getCommandCodec();
    descriptor: ()Lcom/mongodb/DBObjectCodec;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 735
            new com.mongodb.DBObjectCodec
            dup
            invokestatic com.mongodb.MongoClient.getDefaultCodecRegistry:()Lorg/bson/codecs/configuration/CodecRegistry;
            invokespecial com.mongodb.DBObjectCodec.<init>:(Lorg/bson/codecs/configuration/CodecRegistry;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "MongoClient.java"
NestMembers:
  com.mongodb.MongoClient$1  com.mongodb.MongoClient$2
InnerClasses:
  public final Builder = com.mongodb.ClientSessionOptions$Builder of com.mongodb.ClientSessionOptions
  com.mongodb.MongoClient$1
  com.mongodb.MongoClient$2
  public Builder = com.mongodb.MongoClientOptions$Builder of com.mongodb.MongoClientOptions