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

  private static final java.lang.String MONGODB_SRV_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "mongodb+srv://"

  private static final java.util.Set<java.lang.String> ALLOWED_OPTIONS_IN_TXT_RECORD;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private static final java.lang.String UTF_8;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "UTF-8"

  private static final com.mongodb.diagnostics.logging.Logger LOGGER;
    descriptor: Lcom/mongodb/diagnostics/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

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

  private final java.util.List<java.lang.String> hosts;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/lang/String;>;

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

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

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

  private com.mongodb.ReadPreference readPreference;
    descriptor: Lcom/mongodb/ReadPreference;
    flags: (0x0002) ACC_PRIVATE

  private com.mongodb.WriteConcern writeConcern;
    descriptor: Lcom/mongodb/WriteConcern;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Boolean retryWrites;
    descriptor: Ljava/lang/Boolean;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Boolean retryReads;
    descriptor: Ljava/lang/Boolean;
    flags: (0x0002) ACC_PRIVATE

  private com.mongodb.ReadConcern readConcern;
    descriptor: Lcom/mongodb/ReadConcern;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Integer minConnectionPoolSize;
    descriptor: Ljava/lang/Integer;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Integer maxConnectionPoolSize;
    descriptor: Ljava/lang/Integer;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Integer threadsAllowedToBlockForConnectionMultiplier;
    descriptor: Ljava/lang/Integer;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Integer maxWaitTime;
    descriptor: Ljava/lang/Integer;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Integer maxConnectionIdleTime;
    descriptor: Ljava/lang/Integer;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Integer maxConnectionLifeTime;
    descriptor: Ljava/lang/Integer;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Integer connectTimeout;
    descriptor: Ljava/lang/Integer;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Integer socketTimeout;
    descriptor: Ljava/lang/Integer;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Boolean sslEnabled;
    descriptor: Ljava/lang/Boolean;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Boolean sslInvalidHostnameAllowed;
    descriptor: Ljava/lang/Boolean;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String streamType;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String requiredReplicaSetName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Integer serverSelectionTimeout;
    descriptor: Ljava/lang/Integer;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Integer localThreshold;
    descriptor: Ljava/lang/Integer;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Integer heartbeatFrequency;
    descriptor: Ljava/lang/Integer;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String applicationName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.util.List<com.mongodb.MongoCompressor> compressorList;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lcom/mongodb/MongoCompressor;>;

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

  private static final java.util.Set<java.lang.String> GENERAL_OPTIONS_KEYS;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private static final java.util.Set<java.lang.String> AUTH_KEYS;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private static final java.util.Set<java.lang.String> READ_PREFERENCE_KEYS;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private static final java.util.Set<java.lang.String> WRITE_CONCERN_KEYS;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private static final java.util.Set<java.lang.String> COMPRESSOR_KEYS;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private static final java.util.Set<java.lang.String> ALL_KEYS;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private static final java.util.Set<java.lang.String> TRUE_VALUES;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private static final java.util.Set<java.lang.String> FALSE_VALUES;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=0, args_size=0
         0: .line 245
            new java.util.HashSet
            dup
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "authsource"
            aastore
            dup
            iconst_1
            ldc "replicaset"
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            putstatic com.mongodb.ConnectionString.ALLOWED_OPTIONS_IN_TXT_RECORD:Ljava/util/Set;
         1: .line 248
            ldc "uri"
            invokestatic com.mongodb.diagnostics.logging.Loggers.getLogger:(Ljava/lang/String;)Lcom/mongodb/diagnostics/logging/Logger;
            putstatic com.mongodb.ConnectionString.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
         2: .line 400
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            putstatic com.mongodb.ConnectionString.GENERAL_OPTIONS_KEYS:Ljava/util/Set;
         3: .line 401
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putstatic com.mongodb.ConnectionString.AUTH_KEYS:Ljava/util/Set;
         4: .line 402
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putstatic com.mongodb.ConnectionString.READ_PREFERENCE_KEYS:Ljava/util/Set;
         5: .line 403
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putstatic com.mongodb.ConnectionString.WRITE_CONCERN_KEYS:Ljava/util/Set;
         6: .line 404
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putstatic com.mongodb.ConnectionString.COMPRESSOR_KEYS:Ljava/util/Set;
         7: .line 405
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putstatic com.mongodb.ConnectionString.ALL_KEYS:Ljava/util/Set;
         8: .line 408
            getstatic com.mongodb.ConnectionString.GENERAL_OPTIONS_KEYS:Ljava/util/Set;
            ldc "minpoolsize"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         9: .line 409
            getstatic com.mongodb.ConnectionString.GENERAL_OPTIONS_KEYS:Ljava/util/Set;
            ldc "maxpoolsize"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        10: .line 410
            getstatic com.mongodb.ConnectionString.GENERAL_OPTIONS_KEYS:Ljava/util/Set;
            ldc "waitqueuemultiple"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        11: .line 411
            getstatic com.mongodb.ConnectionString.GENERAL_OPTIONS_KEYS:Ljava/util/Set;
            ldc "waitqueuetimeoutms"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        12: .line 412
            getstatic com.mongodb.ConnectionString.GENERAL_OPTIONS_KEYS:Ljava/util/Set;
            ldc "connecttimeoutms"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        13: .line 413
            getstatic com.mongodb.ConnectionString.GENERAL_OPTIONS_KEYS:Ljava/util/Set;
            ldc "maxidletimems"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        14: .line 414
            getstatic com.mongodb.ConnectionString.GENERAL_OPTIONS_KEYS:Ljava/util/Set;
            ldc "maxlifetimems"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        15: .line 415
            getstatic com.mongodb.ConnectionString.GENERAL_OPTIONS_KEYS:Ljava/util/Set;
            ldc "sockettimeoutms"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        16: .line 418
            getstatic com.mongodb.ConnectionString.GENERAL_OPTIONS_KEYS:Ljava/util/Set;
            ldc "ssl"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        17: .line 419
            getstatic com.mongodb.ConnectionString.GENERAL_OPTIONS_KEYS:Ljava/util/Set;
            ldc "tls"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        18: .line 423
            getstatic com.mongodb.ConnectionString.GENERAL_OPTIONS_KEYS:Ljava/util/Set;
            ldc "tlsinsecure"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        19: .line 427
            getstatic com.mongodb.ConnectionString.GENERAL_OPTIONS_KEYS:Ljava/util/Set;
            ldc "sslinvalidhostnameallowed"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        20: .line 428
            getstatic com.mongodb.ConnectionString.GENERAL_OPTIONS_KEYS:Ljava/util/Set;
            ldc "tlsallowinvalidhostnames"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        21: .line 430
            getstatic com.mongodb.ConnectionString.GENERAL_OPTIONS_KEYS:Ljava/util/Set;
            ldc "replicaset"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        22: .line 431
            getstatic com.mongodb.ConnectionString.GENERAL_OPTIONS_KEYS:Ljava/util/Set;
            ldc "readconcernlevel"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        23: .line 432
            getstatic com.mongodb.ConnectionString.GENERAL_OPTIONS_KEYS:Ljava/util/Set;
            ldc "streamtype"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        24: .line 434
            getstatic com.mongodb.ConnectionString.GENERAL_OPTIONS_KEYS:Ljava/util/Set;
            ldc "serverselectiontimeoutms"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        25: .line 435
            getstatic com.mongodb.ConnectionString.GENERAL_OPTIONS_KEYS:Ljava/util/Set;
            ldc "localthresholdms"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        26: .line 436
            getstatic com.mongodb.ConnectionString.GENERAL_OPTIONS_KEYS:Ljava/util/Set;
            ldc "heartbeatfrequencyms"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        27: .line 437
            getstatic com.mongodb.ConnectionString.GENERAL_OPTIONS_KEYS:Ljava/util/Set;
            ldc "retrywrites"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        28: .line 438
            getstatic com.mongodb.ConnectionString.GENERAL_OPTIONS_KEYS:Ljava/util/Set;
            ldc "retryreads"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        29: .line 440
            getstatic com.mongodb.ConnectionString.GENERAL_OPTIONS_KEYS:Ljava/util/Set;
            ldc "appname"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        30: .line 442
            getstatic com.mongodb.ConnectionString.GENERAL_OPTIONS_KEYS:Ljava/util/Set;
            ldc "uuidrepresentation"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        31: .line 444
            getstatic com.mongodb.ConnectionString.COMPRESSOR_KEYS:Ljava/util/Set;
            ldc "compressors"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        32: .line 445
            getstatic com.mongodb.ConnectionString.COMPRESSOR_KEYS:Ljava/util/Set;
            ldc "zlibcompressionlevel"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        33: .line 447
            getstatic com.mongodb.ConnectionString.READ_PREFERENCE_KEYS:Ljava/util/Set;
            ldc "readpreference"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        34: .line 448
            getstatic com.mongodb.ConnectionString.READ_PREFERENCE_KEYS:Ljava/util/Set;
            ldc "readpreferencetags"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        35: .line 449
            getstatic com.mongodb.ConnectionString.READ_PREFERENCE_KEYS:Ljava/util/Set;
            ldc "maxstalenessseconds"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        36: .line 451
            getstatic com.mongodb.ConnectionString.WRITE_CONCERN_KEYS:Ljava/util/Set;
            ldc "safe"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        37: .line 452
            getstatic com.mongodb.ConnectionString.WRITE_CONCERN_KEYS:Ljava/util/Set;
            ldc "w"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        38: .line 453
            getstatic com.mongodb.ConnectionString.WRITE_CONCERN_KEYS:Ljava/util/Set;
            ldc "wtimeoutms"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        39: .line 454
            getstatic com.mongodb.ConnectionString.WRITE_CONCERN_KEYS:Ljava/util/Set;
            ldc "fsync"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        40: .line 455
            getstatic com.mongodb.ConnectionString.WRITE_CONCERN_KEYS:Ljava/util/Set;
            ldc "journal"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        41: .line 457
            getstatic com.mongodb.ConnectionString.AUTH_KEYS:Ljava/util/Set;
            ldc "authmechanism"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        42: .line 458
            getstatic com.mongodb.ConnectionString.AUTH_KEYS:Ljava/util/Set;
            ldc "authsource"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        43: .line 459
            getstatic com.mongodb.ConnectionString.AUTH_KEYS:Ljava/util/Set;
            ldc "gssapiservicename"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        44: .line 460
            getstatic com.mongodb.ConnectionString.AUTH_KEYS:Ljava/util/Set;
            ldc "authmechanismproperties"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        45: .line 462
            getstatic com.mongodb.ConnectionString.ALL_KEYS:Ljava/util/Set;
            getstatic com.mongodb.ConnectionString.GENERAL_OPTIONS_KEYS:Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        46: .line 463
            getstatic com.mongodb.ConnectionString.ALL_KEYS:Ljava/util/Set;
            getstatic com.mongodb.ConnectionString.AUTH_KEYS:Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        47: .line 464
            getstatic com.mongodb.ConnectionString.ALL_KEYS:Ljava/util/Set;
            getstatic com.mongodb.ConnectionString.READ_PREFERENCE_KEYS:Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        48: .line 465
            getstatic com.mongodb.ConnectionString.ALL_KEYS:Ljava/util/Set;
            getstatic com.mongodb.ConnectionString.WRITE_CONCERN_KEYS:Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        49: .line 466
            getstatic com.mongodb.ConnectionString.ALL_KEYS:Ljava/util/Set;
            getstatic com.mongodb.ConnectionString.COMPRESSOR_KEYS:Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        50: .line 939
            new java.util.HashSet
            dup
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
            ldc "true"
            aastore
            dup
            iconst_1
            ldc "yes"
            aastore
            dup
            iconst_2
            ldc "1"
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            putstatic com.mongodb.ConnectionString.TRUE_VALUES:Ljava/util/Set;
        51: .line 940
            new java.util.HashSet
            dup
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
            ldc "false"
            aastore
            dup
            iconst_1
            ldc "no"
            aastore
            dup
            iconst_2
            ldc "0"
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            putstatic com.mongodb.ConnectionString.FALSE_VALUES:Ljava/util/Set;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=17, args_size=2
        start local 0 // com.mongodb.ConnectionString this
        start local 1 // java.lang.String connectionString
         0: .line 288
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 289
            aload 0 /* this */
            aload 1 /* connectionString */
            putfield com.mongodb.ConnectionString.connectionString:Ljava/lang/String;
         2: .line 290
            aload 1 /* connectionString */
            ldc "mongodb://"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            istore 2 /* isMongoDBProtocol */
        start local 2 // boolean isMongoDBProtocol
         3: .line 291
            aload 0 /* this */
            aload 1 /* connectionString */
            ldc "mongodb+srv://"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            putfield com.mongodb.ConnectionString.isSrvProtocol:Z
         4: .line 292
            iload 2 /* isMongoDBProtocol */
            ifne 8
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.isSrvProtocol:Z
            ifne 8
         5: .line 293
            new java.lang.IllegalArgumentException
            dup
            ldc "The connection string is invalid. Connection strings must start with either '%s' or '%s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         6: .line 294
            ldc "mongodb://"
            aastore
            dup
            iconst_1
            ldc "mongodb+srv://"
            aastore
         7: .line 293
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 298
      StackMap locals: com.mongodb.ConnectionString java.lang.String int
      StackMap stack:
            iload 2 /* isMongoDBProtocol */
            ifeq 11
         9: .line 299
            aload 1 /* connectionString */
            ldc "mongodb://"
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* unprocessedConnectionString */
        start local 3 // java.lang.String unprocessedConnectionString
        10: .line 300
            goto 12
        end local 3 // java.lang.String unprocessedConnectionString
        11: .line 301
      StackMap locals:
      StackMap stack:
            aload 1 /* connectionString */
            ldc "mongodb+srv://"
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* unprocessedConnectionString */
        start local 3 // java.lang.String unprocessedConnectionString
        12: .line 306
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* unprocessedConnectionString */
            ldc "/"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 5 /* idx */
        start local 5 // int idx
        13: .line 307
            iload 5 /* idx */
            iconst_m1
            if_icmpne 19
        14: .line 308
            aload 3 /* unprocessedConnectionString */
            ldc "?"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 16
        15: .line 309
            new java.lang.IllegalArgumentException
            dup
            ldc "The connection string contains options without trailing slash"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 311
      StackMap locals: com.mongodb.ConnectionString java.lang.String int java.lang.String top int
      StackMap stack:
            aload 3 /* unprocessedConnectionString */
            astore 4 /* userAndHostInformation */
        start local 4 // java.lang.String userAndHostInformation
        17: .line 312
            ldc ""
            astore 3 /* unprocessedConnectionString */
        18: .line 313
            goto 21
        end local 4 // java.lang.String userAndHostInformation
        19: .line 314
      StackMap locals:
      StackMap stack:
            aload 3 /* unprocessedConnectionString */
            iconst_0
            iload 5 /* idx */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 4 /* userAndHostInformation */
        start local 4 // java.lang.String userAndHostInformation
        20: .line 315
            aload 3 /* unprocessedConnectionString */
            iload 5 /* idx */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* unprocessedConnectionString */
        21: .line 321
      StackMap locals: com.mongodb.ConnectionString java.lang.String int java.lang.String java.lang.String int
      StackMap stack:
            aconst_null
            astore 8 /* userName */
        start local 8 // java.lang.String userName
        22: .line 322
            aconst_null
            astore 9 /* password */
        start local 9 // char[] password
        23: .line 323
            aload 4 /* userAndHostInformation */
            ldc "@"
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            istore 5 /* idx */
        24: .line 324
            iload 5 /* idx */
            ifle 37
        25: .line 325
            aload 4 /* userAndHostInformation */
            iconst_0
            iload 5 /* idx */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            ldc "+"
            ldc "%2B"
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            astore 6 /* userInfo */
        start local 6 // java.lang.String userInfo
        26: .line 326
            aload 4 /* userAndHostInformation */
            iload 5 /* idx */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 7 /* hostIdentifier */
        start local 7 // java.lang.String hostIdentifier
        27: .line 327
            aload 0 /* this */
            aload 6 /* userInfo */
            ldc ":"
            invokevirtual com.mongodb.ConnectionString.countOccurrences:(Ljava/lang/String;Ljava/lang/String;)I
            istore 10 /* colonCount */
        start local 10 // int colonCount
        28: .line 328
            aload 6 /* userInfo */
            ldc "@"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifne 29
            iload 10 /* colonCount */
            iconst_1
            if_icmple 30
        29: .line 329
      StackMap locals: com.mongodb.ConnectionString java.lang.String int java.lang.String java.lang.String int java.lang.String java.lang.String java.lang.String char[] int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "The connection string contains invalid user information. If the username or password contains a colon (:) or an at-sign (@) then it must be urlencoded"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        30: .line 332
      StackMap locals:
      StackMap stack:
            iload 10 /* colonCount */
            ifne 33
        31: .line 333
            aload 0 /* this */
            aload 6 /* userInfo */
            invokevirtual com.mongodb.ConnectionString.urldecode:(Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* userName */
        32: .line 334
            goto 38
        33: .line 335
      StackMap locals:
      StackMap stack:
            aload 6 /* userInfo */
            ldc ":"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 5 /* idx */
        34: .line 336
            aload 0 /* this */
            aload 6 /* userInfo */
            iconst_0
            iload 5 /* idx */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual com.mongodb.ConnectionString.urldecode:(Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* userName */
        35: .line 337
            aload 0 /* this */
            aload 6 /* userInfo */
            iload 5 /* idx */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            iconst_1
            invokevirtual com.mongodb.ConnectionString.urldecode:(Ljava/lang/String;Z)Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            astore 9 /* password */
        end local 10 // int colonCount
        36: .line 339
            goto 38
        end local 7 // java.lang.String hostIdentifier
        end local 6 // java.lang.String userInfo
        37: .line 340
      StackMap locals: com.mongodb.ConnectionString java.lang.String int java.lang.String java.lang.String int top top java.lang.String char[]
      StackMap stack:
            aload 4 /* userAndHostInformation */
            astore 7 /* hostIdentifier */
        start local 7 // java.lang.String hostIdentifier
        38: .line 344
      StackMap locals: com.mongodb.ConnectionString java.lang.String int java.lang.String java.lang.String int top java.lang.String java.lang.String char[]
      StackMap stack:
            aload 0 /* this */
            aload 7 /* hostIdentifier */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokevirtual com.mongodb.ConnectionString.parseHosts:(Ljava/util/List;)Ljava/util/List;
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            astore 10 /* unresolvedHosts */
        start local 10 // java.util.List unresolvedHosts
        39: .line 345
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.isSrvProtocol:Z
            ifeq 44
        40: .line 346
            aload 10 /* unresolvedHosts */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmple 42
        41: .line 347
            new java.lang.IllegalArgumentException
            dup
            ldc "Only one host allowed when using mongodb+srv protocol"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        42: .line 349
      StackMap locals: java.util.List
      StackMap stack:
            aload 10 /* unresolvedHosts */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            ldc ":"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 44
        43: .line 350
            new java.lang.IllegalArgumentException
            dup
            ldc "Host for when using mongodb+srv protocol can not contain a port"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        44: .line 353
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 10 /* unresolvedHosts */
            putfield com.mongodb.ConnectionString.hosts:Ljava/util/List;
        45: .line 357
            aload 3 /* unprocessedConnectionString */
            ldc "?"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 5 /* idx */
        46: .line 358
            iload 5 /* idx */
            iconst_m1
            if_icmpne 50
        47: .line 359
            aload 3 /* unprocessedConnectionString */
            astore 11 /* nsPart */
        start local 11 // java.lang.String nsPart
        48: .line 360
            ldc ""
            astore 3 /* unprocessedConnectionString */
        49: .line 361
            goto 52
        end local 11 // java.lang.String nsPart
        50: .line 362
      StackMap locals:
      StackMap stack:
            aload 3 /* unprocessedConnectionString */
            iconst_0
            iload 5 /* idx */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 11 /* nsPart */
        start local 11 // java.lang.String nsPart
        51: .line 363
            aload 3 /* unprocessedConnectionString */
            iload 5 /* idx */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* unprocessedConnectionString */
        52: .line 365
      StackMap locals: java.lang.String
      StackMap stack:
            aload 11 /* nsPart */
            invokevirtual java.lang.String.length:()I
            ifle 63
        53: .line 366
            aload 0 /* this */
            aload 11 /* nsPart */
            invokevirtual com.mongodb.ConnectionString.urldecode:(Ljava/lang/String;)Ljava/lang/String;
            astore 11 /* nsPart */
        54: .line 367
            aload 11 /* nsPart */
            ldc "."
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 5 /* idx */
        55: .line 368
            iload 5 /* idx */
            ifge 59
        56: .line 369
            aload 0 /* this */
            aload 11 /* nsPart */
            putfield com.mongodb.ConnectionString.database:Ljava/lang/String;
        57: .line 370
            aload 0 /* this */
            aconst_null
            putfield com.mongodb.ConnectionString.collection:Ljava/lang/String;
        58: .line 371
            goto 61
        59: .line 372
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 11 /* nsPart */
            iconst_0
            iload 5 /* idx */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            putfield com.mongodb.ConnectionString.database:Ljava/lang/String;
        60: .line 373
            aload 0 /* this */
            aload 11 /* nsPart */
            iload 5 /* idx */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            putfield com.mongodb.ConnectionString.collection:Ljava/lang/String;
        61: .line 375
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.database:Ljava/lang/String;
            invokestatic com.mongodb.MongoNamespace.checkDatabaseNameValidity:(Ljava/lang/String;)V
        62: .line 376
            goto 65
        63: .line 377
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.mongodb.ConnectionString.database:Ljava/lang/String;
        64: .line 378
            aload 0 /* this */
            aconst_null
            putfield com.mongodb.ConnectionString.collection:Ljava/lang/String;
        65: .line 381
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.isSrvProtocol:Z
            ifeq 67
        66: .line 382
            new com.mongodb.internal.dns.DefaultDnsResolver
            dup
            invokespecial com.mongodb.internal.dns.DefaultDnsResolver.<init>:()V
            aload 10 /* unresolvedHosts */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.mongodb.internal.dns.DefaultDnsResolver.resolveAdditionalQueryParametersFromTxtRecords:(Ljava/lang/String;)Ljava/lang/String;
            goto 68
      StackMap locals:
      StackMap stack:
        67: ldc ""
        68: .line 381
      StackMap locals:
      StackMap stack: java.lang.String
            astore 12 /* txtRecordsQueryParameters */
        start local 12 // java.lang.String txtRecordsQueryParameters
        69: .line 383
            aload 3 /* unprocessedConnectionString */
            astore 13 /* connectionStringQueryParamenters */
        start local 13 // java.lang.String connectionStringQueryParamenters
        70: .line 385
            aload 0 /* this */
            aload 13 /* connectionStringQueryParamenters */
            invokevirtual com.mongodb.ConnectionString.parseOptions:(Ljava/lang/String;)Ljava/util/Map;
            astore 14 /* connectionStringOptionsMap */
        start local 14 // java.util.Map connectionStringOptionsMap
        71: .line 386
            aload 0 /* this */
            aload 12 /* txtRecordsQueryParameters */
            invokevirtual com.mongodb.ConnectionString.parseOptions:(Ljava/lang/String;)Ljava/util/Map;
            astore 15 /* txtRecordsOptionsMap */
        start local 15 // java.util.Map txtRecordsOptionsMap
        72: .line 387
            getstatic com.mongodb.ConnectionString.ALLOWED_OPTIONS_IN_TXT_RECORD:Ljava/util/Set;
            aload 15 /* txtRecordsOptionsMap */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.containsAll:(Ljava/util/Collection;)Z
            ifne 76
        73: .line 388
            new com.mongodb.MongoConfigurationException
            dup
            ldc "A TXT record is only permitted to contain the keys %s, but the TXT record for '%s' contains the keys %s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        74: .line 389
            getstatic com.mongodb.ConnectionString.ALLOWED_OPTIONS_IN_TXT_RECORD:Ljava/util/Set;
            aastore
            dup
            iconst_1
            aload 10 /* unresolvedHosts */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            aastore
            dup
            iconst_2
            aload 15 /* txtRecordsOptionsMap */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            aastore
        75: .line 388
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial com.mongodb.MongoConfigurationException.<init>:(Ljava/lang/String;)V
            athrow
        76: .line 391
      StackMap locals: com.mongodb.ConnectionString java.lang.String int java.lang.String java.lang.String int top java.lang.String java.lang.String char[] java.util.List java.lang.String java.lang.String java.lang.String java.util.Map java.util.Map
      StackMap stack:
            aload 0 /* this */
            aload 15 /* txtRecordsOptionsMap */
            aload 14 /* connectionStringOptionsMap */
            invokevirtual com.mongodb.ConnectionString.combineOptionsMaps:(Ljava/util/Map;Ljava/util/Map;)Ljava/util/Map;
            astore 16 /* combinedOptionsMaps */
        start local 16 // java.util.Map combinedOptionsMaps
        77: .line 392
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.isSrvProtocol:Z
            ifeq 79
            aload 16 /* combinedOptionsMaps */
            ldc "ssl"
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 79
        78: .line 393
            aload 16 /* combinedOptionsMaps */
            ldc "ssl"
            ldc "true"
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        79: .line 395
      StackMap locals: java.util.Map
      StackMap stack:
            aload 0 /* this */
            aload 16 /* combinedOptionsMaps */
            invokevirtual com.mongodb.ConnectionString.translateOptions:(Ljava/util/Map;)V
        80: .line 396
            aload 0 /* this */
            aload 0 /* this */
            aload 16 /* combinedOptionsMaps */
            aload 8 /* userName */
            aload 9 /* password */
            invokevirtual com.mongodb.ConnectionString.createCredentials:(Ljava/util/Map;Ljava/lang/String;[C)Lcom/mongodb/MongoCredential;
            putfield com.mongodb.ConnectionString.credential:Lcom/mongodb/MongoCredential;
        81: .line 397
            aload 0 /* this */
            aload 16 /* combinedOptionsMaps */
            invokevirtual com.mongodb.ConnectionString.warnOnUnsupportedOptions:(Ljava/util/Map;)V
        82: .line 398
            return
        end local 16 // java.util.Map combinedOptionsMaps
        end local 15 // java.util.Map txtRecordsOptionsMap
        end local 14 // java.util.Map connectionStringOptionsMap
        end local 13 // java.lang.String connectionStringQueryParamenters
        end local 12 // java.lang.String txtRecordsQueryParameters
        end local 11 // java.lang.String nsPart
        end local 10 // java.util.List unresolvedHosts
        end local 9 // char[] password
        end local 8 // java.lang.String userName
        end local 7 // java.lang.String hostIdentifier
        end local 5 // int idx
        end local 4 // java.lang.String userAndHostInformation
        end local 3 // java.lang.String unprocessedConnectionString
        end local 2 // boolean isMongoDBProtocol
        end local 1 // java.lang.String connectionString
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot                              Name  Signature
            0   83     0                              this  Lcom/mongodb/ConnectionString;
            0   83     1                  connectionString  Ljava/lang/String;
            3   83     2                 isMongoDBProtocol  Z
           10   11     3       unprocessedConnectionString  Ljava/lang/String;
           12   83     3       unprocessedConnectionString  Ljava/lang/String;
           17   19     4            userAndHostInformation  Ljava/lang/String;
           20   83     4            userAndHostInformation  Ljava/lang/String;
           13   83     5                               idx  I
           26   37     6                          userInfo  Ljava/lang/String;
           27   37     7                    hostIdentifier  Ljava/lang/String;
           38   83     7                    hostIdentifier  Ljava/lang/String;
           22   83     8                          userName  Ljava/lang/String;
           23   83     9                          password  [C
           28   36    10                        colonCount  I
           39   83    10                   unresolvedHosts  Ljava/util/List<Ljava/lang/String;>;
           48   50    11                            nsPart  Ljava/lang/String;
           51   83    11                            nsPart  Ljava/lang/String;
           69   83    12         txtRecordsQueryParameters  Ljava/lang/String;
           70   83    13  connectionStringQueryParamenters  Ljava/lang/String;
           71   83    14        connectionStringOptionsMap  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
           72   83    15              txtRecordsOptionsMap  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
           77   83    16               combinedOptionsMaps  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
    MethodParameters:
                  Name  Flags
      connectionString  final

  private java.util.Map<java.lang.String, java.util.List<java.lang.String>> combineOptionsMaps(java.util.Map<java.lang.String, java.util.List<java.lang.String>>, java.util.Map<java.lang.String, java.util.List<java.lang.String>>);
    descriptor: (Ljava/util/Map;Ljava/util/Map;)Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // com.mongodb.ConnectionString this
        start local 1 // java.util.Map txtRecordsOptionsMap
        start local 2 // java.util.Map connectionStringOptionsMap
         0: .line 473
            new java.util.HashMap
            dup
            aload 1 /* txtRecordsOptionsMap */
            invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
            astore 3 /* combinedOptionsMaps */
        start local 3 // java.util.Map combinedOptionsMaps
         1: .line 474
            aload 2 /* connectionStringOptionsMap */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 4
      StackMap locals: com.mongodb.ConnectionString java.util.Map java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* entry */
        start local 4 // java.util.Map$Entry entry
         3: .line 475
            aload 3 /* combinedOptionsMaps */
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // java.util.Map$Entry entry
         4: .line 474
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 477
            aload 3 /* combinedOptionsMaps */
            areturn
        end local 3 // java.util.Map combinedOptionsMaps
        end local 2 // java.util.Map connectionStringOptionsMap
        end local 1 // java.util.Map txtRecordsOptionsMap
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0    6     0                        this  Lcom/mongodb/ConnectionString;
            0    6     1        txtRecordsOptionsMap  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            0    6     2  connectionStringOptionsMap  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            1    6     3         combinedOptionsMaps  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            3    4     4                       entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;)Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
    MethodParameters:
                            Name  Flags
      txtRecordsOptionsMap        final
      connectionStringOptionsMap  final

  private void warnOnUnsupportedOptions(java.util.Map<java.lang.String, java.util.List<java.lang.String>>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // com.mongodb.ConnectionString this
        start local 1 // java.util.Map optionsMap
         0: .line 482
            aload 1 /* optionsMap */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: com.mongodb.ConnectionString java.util.Map top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* key */
        start local 2 // java.lang.String key
         2: .line 483
            getstatic com.mongodb.ConnectionString.ALL_KEYS:Ljava/util/Set;
            aload 2 /* key */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 5
         3: .line 484
            getstatic com.mongodb.ConnectionString.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            invokeinterface com.mongodb.diagnostics.logging.Logger.isWarnEnabled:()Z
            ifeq 5
         4: .line 485
            getstatic com.mongodb.ConnectionString.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            ldc "Connection string contains unsupported option '%s'."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* key */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface com.mongodb.diagnostics.logging.Logger.warn:(Ljava/lang/String;)V
        end local 2 // java.lang.String key
         5: .line 482
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         6: .line 489
            return
        end local 1 // java.util.Map optionsMap
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lcom/mongodb/ConnectionString;
            0    7     1  optionsMap  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            2    5     2         key  Ljava/lang/String;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;)V
    MethodParameters:
            Name  Flags
      optionsMap  final

  private void translateOptions(java.util.Map<java.lang.String, java.util.List<java.lang.String>>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // com.mongodb.ConnectionString this
        start local 1 // java.util.Map optionsMap
         0: .line 492
            iconst_0
            istore 2 /* tlsInsecureSet */
        start local 2 // boolean tlsInsecureSet
         1: .line 493
            iconst_0
            istore 3 /* tlsAllowInvalidHostnamesSet */
        start local 3 // boolean tlsAllowInvalidHostnamesSet
         2: .line 495
            getstatic com.mongodb.ConnectionString.GENERAL_OPTIONS_KEYS:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 79
      StackMap locals: com.mongodb.ConnectionString java.util.Map int int top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* key */
        start local 4 // java.lang.String key
         4: .line 496
            aload 0 /* this */
            aload 1 /* optionsMap */
            aload 4 /* key */
            invokevirtual com.mongodb.ConnectionString.getLastValue:(Ljava/util/Map;Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* value */
        start local 6 // java.lang.String value
         5: .line 497
            aload 6 /* value */
            ifnonnull 7
         6: .line 498
            goto 79
         7: .line 500
      StackMap locals: com.mongodb.ConnectionString java.util.Map int int java.lang.String java.util.Iterator java.lang.String
      StackMap stack:
            aload 4 /* key */
            ldc "maxpoolsize"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         8: .line 501
            aload 0 /* this */
            aload 0 /* this */
            aload 6 /* value */
            ldc "maxpoolsize"
            invokevirtual com.mongodb.ConnectionString.parseInteger:(Ljava/lang/String;Ljava/lang/String;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            putfield com.mongodb.ConnectionString.maxConnectionPoolSize:Ljava/lang/Integer;
         9: .line 502
            goto 79
      StackMap locals:
      StackMap stack:
        10: aload 4 /* key */
            ldc "minpoolsize"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        11: .line 503
            aload 0 /* this */
            aload 0 /* this */
            aload 6 /* value */
            ldc "minpoolsize"
            invokevirtual com.mongodb.ConnectionString.parseInteger:(Ljava/lang/String;Ljava/lang/String;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            putfield com.mongodb.ConnectionString.minConnectionPoolSize:Ljava/lang/Integer;
        12: .line 504
            goto 79
      StackMap locals:
      StackMap stack:
        13: aload 4 /* key */
            ldc "maxidletimems"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        14: .line 505
            aload 0 /* this */
            aload 0 /* this */
            aload 6 /* value */
            ldc "maxidletimems"
            invokevirtual com.mongodb.ConnectionString.parseInteger:(Ljava/lang/String;Ljava/lang/String;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            putfield com.mongodb.ConnectionString.maxConnectionIdleTime:Ljava/lang/Integer;
        15: .line 506
            goto 79
      StackMap locals:
      StackMap stack:
        16: aload 4 /* key */
            ldc "maxlifetimems"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 19
        17: .line 507
            aload 0 /* this */
            aload 0 /* this */
            aload 6 /* value */
            ldc "maxlifetimems"
            invokevirtual com.mongodb.ConnectionString.parseInteger:(Ljava/lang/String;Ljava/lang/String;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            putfield com.mongodb.ConnectionString.maxConnectionLifeTime:Ljava/lang/Integer;
        18: .line 508
            goto 79
      StackMap locals:
      StackMap stack:
        19: aload 4 /* key */
            ldc "waitqueuemultiple"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 22
        20: .line 509
            aload 0 /* this */
            aload 0 /* this */
            aload 6 /* value */
            ldc "waitqueuemultiple"
            invokevirtual com.mongodb.ConnectionString.parseInteger:(Ljava/lang/String;Ljava/lang/String;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            putfield com.mongodb.ConnectionString.threadsAllowedToBlockForConnectionMultiplier:Ljava/lang/Integer;
        21: .line 510
            goto 79
      StackMap locals:
      StackMap stack:
        22: aload 4 /* key */
            ldc "waitqueuetimeoutms"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 25
        23: .line 511
            aload 0 /* this */
            aload 0 /* this */
            aload 6 /* value */
            ldc "waitqueuetimeoutms"
            invokevirtual com.mongodb.ConnectionString.parseInteger:(Ljava/lang/String;Ljava/lang/String;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            putfield com.mongodb.ConnectionString.maxWaitTime:Ljava/lang/Integer;
        24: .line 512
            goto 79
      StackMap locals:
      StackMap stack:
        25: aload 4 /* key */
            ldc "connecttimeoutms"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 28
        26: .line 513
            aload 0 /* this */
            aload 0 /* this */
            aload 6 /* value */
            ldc "connecttimeoutms"
            invokevirtual com.mongodb.ConnectionString.parseInteger:(Ljava/lang/String;Ljava/lang/String;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            putfield com.mongodb.ConnectionString.connectTimeout:Ljava/lang/Integer;
        27: .line 514
            goto 79
      StackMap locals:
      StackMap stack:
        28: aload 4 /* key */
            ldc "sockettimeoutms"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 31
        29: .line 515
            aload 0 /* this */
            aload 0 /* this */
            aload 6 /* value */
            ldc "sockettimeoutms"
            invokevirtual com.mongodb.ConnectionString.parseInteger:(Ljava/lang/String;Ljava/lang/String;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            putfield com.mongodb.ConnectionString.socketTimeout:Ljava/lang/Integer;
        30: .line 516
            goto 79
      StackMap locals:
      StackMap stack:
        31: aload 4 /* key */
            ldc "tlsallowinvalidhostnames"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 35
        32: .line 517
            aload 0 /* this */
            aload 0 /* this */
            aload 6 /* value */
            ldc "tlsAllowInvalidHostnames"
            invokevirtual com.mongodb.ConnectionString.parseBoolean:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Boolean;
            putfield com.mongodb.ConnectionString.sslInvalidHostnameAllowed:Ljava/lang/Boolean;
        33: .line 518
            iconst_1
            istore 3 /* tlsAllowInvalidHostnamesSet */
        34: .line 519
            goto 79
      StackMap locals:
      StackMap stack:
        35: aload 4 /* key */
            ldc "sslinvalidhostnameallowed"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 39
        36: .line 520
            aload 0 /* this */
            aload 0 /* this */
            aload 6 /* value */
            ldc "sslinvalidhostnameallowed"
            invokevirtual com.mongodb.ConnectionString.parseBoolean:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Boolean;
            putfield com.mongodb.ConnectionString.sslInvalidHostnameAllowed:Ljava/lang/Boolean;
        37: .line 521
            iconst_1
            istore 3 /* tlsAllowInvalidHostnamesSet */
        38: .line 522
            goto 79
      StackMap locals:
      StackMap stack:
        39: aload 4 /* key */
            ldc "tlsinsecure"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 43
        40: .line 523
            aload 0 /* this */
            aload 0 /* this */
            aload 6 /* value */
            ldc "tlsinsecure"
            invokevirtual com.mongodb.ConnectionString.parseBoolean:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Boolean;
            putfield com.mongodb.ConnectionString.sslInvalidHostnameAllowed:Ljava/lang/Boolean;
        41: .line 524
            iconst_1
            istore 2 /* tlsInsecureSet */
        42: .line 525
            goto 79
      StackMap locals:
      StackMap stack:
        43: aload 4 /* key */
            ldc "ssl"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 46
        44: .line 526
            aload 0 /* this */
            ldc "ssl"
            aload 6 /* value */
            invokevirtual com.mongodb.ConnectionString.initializeSslEnabled:(Ljava/lang/String;Ljava/lang/String;)V
        45: .line 527
            goto 79
      StackMap locals:
      StackMap stack:
        46: aload 4 /* key */
            ldc "tls"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 49
        47: .line 528
            aload 0 /* this */
            ldc "tls"
            aload 6 /* value */
            invokevirtual com.mongodb.ConnectionString.initializeSslEnabled:(Ljava/lang/String;Ljava/lang/String;)V
        48: .line 529
            goto 79
      StackMap locals:
      StackMap stack:
        49: aload 4 /* key */
            ldc "streamtype"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 53
        50: .line 530
            aload 0 /* this */
            aload 6 /* value */
            putfield com.mongodb.ConnectionString.streamType:Ljava/lang/String;
        51: .line 531
            getstatic com.mongodb.ConnectionString.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            ldc "The streamType query parameter is deprecated and support for it will be removed in the next major release."
            invokeinterface com.mongodb.diagnostics.logging.Logger.warn:(Ljava/lang/String;)V
        52: .line 533
            goto 79
      StackMap locals:
      StackMap stack:
        53: aload 4 /* key */
            ldc "replicaset"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 56
        54: .line 534
            aload 0 /* this */
            aload 6 /* value */
            putfield com.mongodb.ConnectionString.requiredReplicaSetName:Ljava/lang/String;
        55: .line 535
            goto 79
      StackMap locals:
      StackMap stack:
        56: aload 4 /* key */
            ldc "readconcernlevel"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 59
        57: .line 536
            aload 0 /* this */
            new com.mongodb.ReadConcern
            dup
            aload 6 /* value */
            invokestatic com.mongodb.ReadConcernLevel.fromString:(Ljava/lang/String;)Lcom/mongodb/ReadConcernLevel;
            invokespecial com.mongodb.ReadConcern.<init>:(Lcom/mongodb/ReadConcernLevel;)V
            putfield com.mongodb.ConnectionString.readConcern:Lcom/mongodb/ReadConcern;
        58: .line 537
            goto 79
      StackMap locals:
      StackMap stack:
        59: aload 4 /* key */
            ldc "serverselectiontimeoutms"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 62
        60: .line 538
            aload 0 /* this */
            aload 0 /* this */
            aload 6 /* value */
            ldc "serverselectiontimeoutms"
            invokevirtual com.mongodb.ConnectionString.parseInteger:(Ljava/lang/String;Ljava/lang/String;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            putfield com.mongodb.ConnectionString.serverSelectionTimeout:Ljava/lang/Integer;
        61: .line 539
            goto 79
      StackMap locals:
      StackMap stack:
        62: aload 4 /* key */
            ldc "localthresholdms"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 65
        63: .line 540
            aload 0 /* this */
            aload 0 /* this */
            aload 6 /* value */
            ldc "localthresholdms"
            invokevirtual com.mongodb.ConnectionString.parseInteger:(Ljava/lang/String;Ljava/lang/String;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            putfield com.mongodb.ConnectionString.localThreshold:Ljava/lang/Integer;
        64: .line 541
            goto 79
      StackMap locals:
      StackMap stack:
        65: aload 4 /* key */
            ldc "heartbeatfrequencyms"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 68
        66: .line 542
            aload 0 /* this */
            aload 0 /* this */
            aload 6 /* value */
            ldc "heartbeatfrequencyms"
            invokevirtual com.mongodb.ConnectionString.parseInteger:(Ljava/lang/String;Ljava/lang/String;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            putfield com.mongodb.ConnectionString.heartbeatFrequency:Ljava/lang/Integer;
        67: .line 543
            goto 79
      StackMap locals:
      StackMap stack:
        68: aload 4 /* key */
            ldc "appname"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 71
        69: .line 544
            aload 0 /* this */
            aload 6 /* value */
            putfield com.mongodb.ConnectionString.applicationName:Ljava/lang/String;
        70: .line 545
            goto 79
      StackMap locals:
      StackMap stack:
        71: aload 4 /* key */
            ldc "retrywrites"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 74
        72: .line 546
            aload 0 /* this */
            aload 0 /* this */
            aload 6 /* value */
            ldc "retrywrites"
            invokevirtual com.mongodb.ConnectionString.parseBoolean:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Boolean;
            putfield com.mongodb.ConnectionString.retryWrites:Ljava/lang/Boolean;
        73: .line 547
            goto 79
      StackMap locals:
      StackMap stack:
        74: aload 4 /* key */
            ldc "retryreads"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 77
        75: .line 548
            aload 0 /* this */
            aload 0 /* this */
            aload 6 /* value */
            ldc "retryreads"
            invokevirtual com.mongodb.ConnectionString.parseBoolean:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Boolean;
            putfield com.mongodb.ConnectionString.retryReads:Ljava/lang/Boolean;
        76: .line 549
            goto 79
      StackMap locals:
      StackMap stack:
        77: aload 4 /* key */
            ldc "uuidrepresentation"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 79
        78: .line 550
            aload 0 /* this */
            aload 0 /* this */
            aload 6 /* value */
            invokevirtual com.mongodb.ConnectionString.createUuidRepresentation:(Ljava/lang/String;)Lorg/bson/UuidRepresentation;
            putfield com.mongodb.ConnectionString.uuidRepresentation:Lorg/bson/UuidRepresentation;
        end local 6 // java.lang.String value
        end local 4 // java.lang.String key
        79: .line 495
      StackMap locals: com.mongodb.ConnectionString java.util.Map int int top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        80: .line 554
            iload 2 /* tlsInsecureSet */
            ifeq 82
            iload 3 /* tlsAllowInvalidHostnamesSet */
            ifeq 82
        81: .line 555
            new java.lang.IllegalArgumentException
            dup
            ldc "tlsAllowInvalidHostnames or sslInvalidHostnameAllowed set along with tlsInsecure is not allowed"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        82: .line 559
      StackMap locals: com.mongodb.ConnectionString java.util.Map int int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* optionsMap */
            invokevirtual com.mongodb.ConnectionString.createWriteConcern:(Ljava/util/Map;)Lcom/mongodb/WriteConcern;
            putfield com.mongodb.ConnectionString.writeConcern:Lcom/mongodb/WriteConcern;
        83: .line 560
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* optionsMap */
            invokevirtual com.mongodb.ConnectionString.createReadPreference:(Ljava/util/Map;)Lcom/mongodb/ReadPreference;
            putfield com.mongodb.ConnectionString.readPreference:Lcom/mongodb/ReadPreference;
        84: .line 561
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* optionsMap */
            invokevirtual com.mongodb.ConnectionString.createCompressors:(Ljava/util/Map;)Ljava/util/List;
            putfield com.mongodb.ConnectionString.compressorList:Ljava/util/List;
        85: .line 562
            return
        end local 3 // boolean tlsAllowInvalidHostnamesSet
        end local 2 // boolean tlsInsecureSet
        end local 1 // java.util.Map optionsMap
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   86     0                         this  Lcom/mongodb/ConnectionString;
            0   86     1                   optionsMap  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            1   86     2               tlsInsecureSet  Z
            2   86     3  tlsAllowInvalidHostnamesSet  Z
            4   79     4                          key  Ljava/lang/String;
            5   79     6                        value  Ljava/lang/String;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;)V
    MethodParameters:
            Name  Flags
      optionsMap  final

  private void initializeSslEnabled(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.mongodb.ConnectionString this
        start local 1 // java.lang.String key
        start local 2 // java.lang.String value
         0: .line 565
            aload 0 /* this */
            aload 2 /* value */
            aload 1 /* key */
            invokevirtual com.mongodb.ConnectionString.parseBoolean:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Boolean;
            astore 3 /* booleanValue */
        start local 3 // java.lang.Boolean booleanValue
         1: .line 566
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.sslEnabled:Ljava/lang/Boolean;
            ifnull 3
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.sslEnabled:Ljava/lang/Boolean;
            aload 3 /* booleanValue */
            invokevirtual java.lang.Boolean.equals:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 567
            new java.lang.IllegalArgumentException
            dup
            ldc "Conflicting tls and ssl parameter values are not allowed"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 569
      StackMap locals: java.lang.Boolean
      StackMap stack:
            aload 0 /* this */
            aload 3 /* booleanValue */
            putfield com.mongodb.ConnectionString.sslEnabled:Ljava/lang/Boolean;
         4: .line 570
            return
        end local 3 // java.lang.Boolean booleanValue
        end local 2 // java.lang.String value
        end local 1 // java.lang.String key
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lcom/mongodb/ConnectionString;
            0    5     1           key  Ljava/lang/String;
            0    5     2         value  Ljava/lang/String;
            1    5     3  booleanValue  Ljava/lang/Boolean;
    MethodParameters:
       Name  Flags
      key    final
      value  final

  private java.util.List<com.mongodb.MongoCompressor> createCompressors(java.util.Map<java.lang.String, java.util.List<java.lang.String>>);
    descriptor: (Ljava/util/Map;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // com.mongodb.ConnectionString this
        start local 1 // java.util.Map optionsMap
         0: .line 573
            ldc ""
            astore 2 /* compressors */
        start local 2 // java.lang.String compressors
         1: .line 574
            aconst_null
            astore 3 /* zlibCompressionLevel */
        start local 3 // java.lang.Integer zlibCompressionLevel
         2: .line 576
            getstatic com.mongodb.ConnectionString.COMPRESSOR_KEYS:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 12
      StackMap locals: com.mongodb.ConnectionString java.util.Map java.lang.String java.lang.Integer top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* key */
        start local 4 // java.lang.String key
         4: .line 577
            aload 0 /* this */
            aload 1 /* optionsMap */
            aload 4 /* key */
            invokevirtual com.mongodb.ConnectionString.getLastValue:(Ljava/util/Map;Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* value */
        start local 6 // java.lang.String value
         5: .line 578
            aload 6 /* value */
            ifnonnull 7
         6: .line 579
            goto 12
         7: .line 582
      StackMap locals: com.mongodb.ConnectionString java.util.Map java.lang.String java.lang.Integer java.lang.String java.util.Iterator java.lang.String
      StackMap stack:
            aload 4 /* key */
            ldc "compressors"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         8: .line 583
            aload 6 /* value */
            astore 2 /* compressors */
         9: .line 584
            goto 12
      StackMap locals:
      StackMap stack:
        10: aload 4 /* key */
            ldc "zlibcompressionlevel"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 585
            aload 6 /* value */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 3 /* zlibCompressionLevel */
        end local 6 // java.lang.String value
        end local 4 // java.lang.String key
        12: .line 576
      StackMap locals: com.mongodb.ConnectionString java.util.Map java.lang.String java.lang.Integer top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        13: .line 588
            aload 0 /* this */
            aload 2 /* compressors */
            aload 3 /* zlibCompressionLevel */
            invokevirtual com.mongodb.ConnectionString.buildCompressors:(Ljava/lang/String;Ljava/lang/Integer;)Ljava/util/List;
            areturn
        end local 3 // java.lang.Integer zlibCompressionLevel
        end local 2 // java.lang.String compressors
        end local 1 // java.util.Map optionsMap
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   14     0                  this  Lcom/mongodb/ConnectionString;
            0   14     1            optionsMap  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            1   14     2           compressors  Ljava/lang/String;
            2   14     3  zlibCompressionLevel  Ljava/lang/Integer;
            4   12     4                   key  Ljava/lang/String;
            5   12     6                 value  Ljava/lang/String;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;)Ljava/util/List<Lcom/mongodb/MongoCompressor;>;
    MethodParameters:
            Name  Flags
      optionsMap  final

  private java.util.List<com.mongodb.MongoCompressor> buildCompressors(java.lang.String, java.lang.Integer);
    descriptor: (Ljava/lang/String;Ljava/lang/Integer;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // com.mongodb.ConnectionString this
        start local 1 // java.lang.String compressors
        start local 2 // java.lang.Integer zlibCompressionLevel
         0: .line 592
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* compressorsList */
        start local 3 // java.util.List compressorsList
         1: .line 594
            aload 1 /* compressors */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 18
      StackMap locals: com.mongodb.ConnectionString java.lang.String java.lang.Integer java.util.List top int int java.lang.String[]
      StackMap stack:
         2: aload 7
            iload 5
            aaload
            astore 4 /* cur */
        start local 4 // java.lang.String cur
         3: .line 595
            aload 4 /* cur */
            ldc "zlib"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         4: .line 596
            invokestatic com.mongodb.MongoCompressor.createZlibCompressor:()Lcom/mongodb/MongoCompressor;
            astore 8 /* zlibCompressor */
        start local 8 // com.mongodb.MongoCompressor zlibCompressor
         5: .line 597
            aload 2 /* zlibCompressionLevel */
            ifnull 7
         6: .line 598
            aload 8 /* zlibCompressor */
            ldc "LEVEL"
            aload 2 /* zlibCompressionLevel */
            invokevirtual com.mongodb.MongoCompressor.withProperty:(Ljava/lang/String;Ljava/lang/Object;)Lcom/mongodb/MongoCompressor;
            astore 8 /* zlibCompressor */
         7: .line 600
      StackMap locals: com.mongodb.ConnectionString java.lang.String java.lang.Integer java.util.List java.lang.String int int java.lang.String[] com.mongodb.MongoCompressor
      StackMap stack:
            aload 3 /* compressorsList */
            aload 8 /* zlibCompressor */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // com.mongodb.MongoCompressor zlibCompressor
         8: .line 601
            goto 17
      StackMap locals:
      StackMap stack:
         9: aload 4 /* cur */
            ldc "snappy"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        10: .line 602
            aload 3 /* compressorsList */
            invokestatic com.mongodb.MongoCompressor.createSnappyCompressor:()Lcom/mongodb/MongoCompressor;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 603
            goto 17
      StackMap locals:
      StackMap stack:
        12: aload 4 /* cur */
            ldc "zstd"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
        13: .line 604
            aload 3 /* compressorsList */
            invokestatic com.mongodb.MongoCompressor.createZstdCompressor:()Lcom/mongodb/MongoCompressor;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        14: .line 605
            goto 17
      StackMap locals:
      StackMap stack:
        15: aload 4 /* cur */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 17
        16: .line 606
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported compressor '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* cur */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.String cur
        17: .line 594
      StackMap locals: com.mongodb.ConnectionString java.lang.String java.lang.Integer java.util.List top int int java.lang.String[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        18: iload 5
            iload 6
            if_icmplt 2
        19: .line 610
            aload 3 /* compressorsList */
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            areturn
        end local 3 // java.util.List compressorsList
        end local 2 // java.lang.Integer zlibCompressionLevel
        end local 1 // java.lang.String compressors
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   20     0                  this  Lcom/mongodb/ConnectionString;
            0   20     1           compressors  Ljava/lang/String;
            0   20     2  zlibCompressionLevel  Ljava/lang/Integer;
            1   20     3       compressorsList  Ljava/util/List<Lcom/mongodb/MongoCompressor;>;
            3   17     4                   cur  Ljava/lang/String;
            5    8     8        zlibCompressor  Lcom/mongodb/MongoCompressor;
    Signature: (Ljava/lang/String;Ljava/lang/Integer;)Ljava/util/List<Lcom/mongodb/MongoCompressor;>;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        com.mongodb.lang.Nullable()
    MethodParameters:
                      Name  Flags
      compressors           final
      zlibCompressionLevel  final

  private com.mongodb.WriteConcern createWriteConcern(java.util.Map<java.lang.String, java.util.List<java.lang.String>>);
    descriptor: (Ljava/util/Map;)Lcom/mongodb/WriteConcern;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=10, args_size=2
        start local 0 // com.mongodb.ConnectionString this
        start local 1 // java.util.Map optionsMap
         0: .line 615
            aconst_null
            astore 2 /* w */
        start local 2 // java.lang.String w
         1: .line 616
            aconst_null
            astore 3 /* wTimeout */
        start local 3 // java.lang.Integer wTimeout
         2: .line 617
            aconst_null
            astore 4 /* safe */
        start local 4 // java.lang.Boolean safe
         3: .line 618
            aconst_null
            astore 5 /* fsync */
        start local 5 // java.lang.Boolean fsync
         4: .line 619
            aconst_null
            astore 6 /* journal */
        start local 6 // java.lang.Boolean journal
         5: .line 621
            getstatic com.mongodb.ConnectionString.WRITE_CONCERN_KEYS:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 8
            goto 24
      StackMap locals: com.mongodb.ConnectionString java.util.Map java.lang.String java.lang.Integer java.lang.Boolean java.lang.Boolean java.lang.Boolean top java.util.Iterator
      StackMap stack:
         6: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* key */
        start local 7 // java.lang.String key
         7: .line 622
            aload 0 /* this */
            aload 1 /* optionsMap */
            aload 7 /* key */
            invokevirtual com.mongodb.ConnectionString.getLastValue:(Ljava/util/Map;Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* value */
        start local 9 // java.lang.String value
         8: .line 623
            aload 9 /* value */
            ifnonnull 10
         9: .line 624
            goto 24
        10: .line 627
      StackMap locals: com.mongodb.ConnectionString java.util.Map java.lang.String java.lang.Integer java.lang.Boolean java.lang.Boolean java.lang.Boolean java.lang.String java.util.Iterator java.lang.String
      StackMap stack:
            aload 7 /* key */
            ldc "safe"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        11: .line 628
            aload 0 /* this */
            aload 9 /* value */
            ldc "safe"
            invokevirtual com.mongodb.ConnectionString.parseBoolean:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Boolean;
            astore 4 /* safe */
        12: .line 629
            goto 24
      StackMap locals:
      StackMap stack:
        13: aload 7 /* key */
            ldc "w"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        14: .line 630
            aload 9 /* value */
            astore 2 /* w */
        15: .line 631
            goto 24
      StackMap locals:
      StackMap stack:
        16: aload 7 /* key */
            ldc "wtimeoutms"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 19
        17: .line 632
            aload 9 /* value */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 3 /* wTimeout */
        18: .line 633
            goto 24
      StackMap locals:
      StackMap stack:
        19: aload 7 /* key */
            ldc "fsync"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 22
        20: .line 634
            aload 0 /* this */
            aload 9 /* value */
            ldc "fsync"
            invokevirtual com.mongodb.ConnectionString.parseBoolean:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Boolean;
            astore 5 /* fsync */
        21: .line 635
            goto 24
      StackMap locals:
      StackMap stack:
        22: aload 7 /* key */
            ldc "journal"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 24
        23: .line 636
            aload 0 /* this */
            aload 9 /* value */
            ldc "journal"
            invokevirtual com.mongodb.ConnectionString.parseBoolean:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Boolean;
            astore 6 /* journal */
        end local 9 // java.lang.String value
        end local 7 // java.lang.String key
        24: .line 621
      StackMap locals: com.mongodb.ConnectionString java.util.Map java.lang.String java.lang.Integer java.lang.Boolean java.lang.Boolean java.lang.Boolean top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        25: .line 639
            aload 0 /* this */
            aload 4 /* safe */
            aload 2 /* w */
            aload 3 /* wTimeout */
            aload 5 /* fsync */
            aload 6 /* journal */
            invokevirtual com.mongodb.ConnectionString.buildWriteConcern:(Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Boolean;)Lcom/mongodb/WriteConcern;
            areturn
        end local 6 // java.lang.Boolean journal
        end local 5 // java.lang.Boolean fsync
        end local 4 // java.lang.Boolean safe
        end local 3 // java.lang.Integer wTimeout
        end local 2 // java.lang.String w
        end local 1 // java.util.Map optionsMap
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   26     0        this  Lcom/mongodb/ConnectionString;
            0   26     1  optionsMap  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            1   26     2           w  Ljava/lang/String;
            2   26     3    wTimeout  Ljava/lang/Integer;
            3   26     4        safe  Ljava/lang/Boolean;
            4   26     5       fsync  Ljava/lang/Boolean;
            5   26     6     journal  Ljava/lang/Boolean;
            7   24     7         key  Ljava/lang/String;
            8   24     9       value  Ljava/lang/String;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;)Lcom/mongodb/WriteConcern;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    MethodParameters:
            Name  Flags
      optionsMap  final

  private com.mongodb.ReadPreference createReadPreference(java.util.Map<java.lang.String, java.util.List<java.lang.String>>);
    descriptor: (Ljava/util/Map;)Lcom/mongodb/ReadPreference;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=12, args_size=2
        start local 0 // com.mongodb.ConnectionString this
        start local 1 // java.util.Map optionsMap
         0: .line 644
            aconst_null
            astore 2 /* readPreferenceType */
        start local 2 // java.lang.String readPreferenceType
         1: .line 645
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* tagSetList */
        start local 3 // java.util.List tagSetList
         2: .line 646
            ldc -1
            lstore 4 /* maxStalenessSeconds */
        start local 4 // long maxStalenessSeconds
         3: .line 648
            getstatic com.mongodb.ConnectionString.READ_PREFERENCE_KEYS:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 20
      StackMap locals: com.mongodb.ConnectionString java.util.Map java.lang.String java.util.List long top java.util.Iterator
      StackMap stack:
         4: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* key */
        start local 6 // java.lang.String key
         5: .line 649
            aload 0 /* this */
            aload 1 /* optionsMap */
            aload 6 /* key */
            invokevirtual com.mongodb.ConnectionString.getLastValue:(Ljava/util/Map;Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* value */
        start local 8 // java.lang.String value
         6: .line 650
            aload 8 /* value */
            ifnonnull 8
         7: .line 651
            goto 20
         8: .line 654
      StackMap locals: com.mongodb.ConnectionString java.util.Map java.lang.String java.util.List long java.lang.String java.util.Iterator java.lang.String
      StackMap stack:
            aload 6 /* key */
            ldc "readpreference"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
         9: .line 655
            aload 8 /* value */
            astore 2 /* readPreferenceType */
        10: .line 656
            goto 20
      StackMap locals:
      StackMap stack:
        11: aload 6 /* key */
            ldc "maxstalenessseconds"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 657
            aload 0 /* this */
            aload 8 /* value */
            ldc "maxstalenessseconds"
            invokevirtual com.mongodb.ConnectionString.parseInteger:(Ljava/lang/String;Ljava/lang/String;)I
            i2l
            lstore 4 /* maxStalenessSeconds */
        13: .line 658
            goto 20
      StackMap locals:
      StackMap stack:
        14: aload 6 /* key */
            ldc "readpreferencetags"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
        15: .line 659
            aload 1 /* optionsMap */
            aload 6 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 19
      StackMap locals: com.mongodb.ConnectionString java.util.Map java.lang.String java.util.List long java.lang.String java.util.Iterator java.lang.String top java.util.Iterator
      StackMap stack:
        16: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* cur */
        start local 9 // java.lang.String cur
        17: .line 660
            aload 0 /* this */
            aload 9 /* cur */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokevirtual com.mongodb.ConnectionString.getTags:(Ljava/lang/String;)Lcom/mongodb/TagSet;
            astore 11 /* tagSet */
        start local 11 // com.mongodb.TagSet tagSet
        18: .line 661
            aload 3 /* tagSetList */
            aload 11 /* tagSet */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // com.mongodb.TagSet tagSet
        end local 9 // java.lang.String cur
        19: .line 659
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        end local 8 // java.lang.String value
        end local 6 // java.lang.String key
        20: .line 648
      StackMap locals: com.mongodb.ConnectionString java.util.Map java.lang.String java.util.List long top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        21: .line 665
            aload 0 /* this */
            aload 2 /* readPreferenceType */
            aload 3 /* tagSetList */
            lload 4 /* maxStalenessSeconds */
            invokevirtual com.mongodb.ConnectionString.buildReadPreference:(Ljava/lang/String;Ljava/util/List;J)Lcom/mongodb/ReadPreference;
            areturn
        end local 4 // long maxStalenessSeconds
        end local 3 // java.util.List tagSetList
        end local 2 // java.lang.String readPreferenceType
        end local 1 // java.util.Map optionsMap
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   22     0                 this  Lcom/mongodb/ConnectionString;
            0   22     1           optionsMap  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            1   22     2   readPreferenceType  Ljava/lang/String;
            2   22     3           tagSetList  Ljava/util/List<Lcom/mongodb/TagSet;>;
            3   22     4  maxStalenessSeconds  J
            5   20     6                  key  Ljava/lang/String;
            6   20     8                value  Ljava/lang/String;
           17   19     9                  cur  Ljava/lang/String;
           18   19    11               tagSet  Lcom/mongodb/TagSet;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;)Lcom/mongodb/ReadPreference;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    MethodParameters:
            Name  Flags
      optionsMap  final

  private org.bson.UuidRepresentation createUuidRepresentation(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/bson/UuidRepresentation;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.mongodb.ConnectionString this
        start local 1 // java.lang.String value
         0: .line 669
            aload 1 /* value */
            ldc "unspecified"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 670
            getstatic org.bson.UuidRepresentation.UNSPECIFIED:Lorg/bson/UuidRepresentation;
            areturn
         2: .line 672
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            ldc "javaLegacy"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 673
            getstatic org.bson.UuidRepresentation.JAVA_LEGACY:Lorg/bson/UuidRepresentation;
            areturn
         4: .line 675
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            ldc "csharpLegacy"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 6
         5: .line 676
            getstatic org.bson.UuidRepresentation.C_SHARP_LEGACY:Lorg/bson/UuidRepresentation;
            areturn
         6: .line 678
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            ldc "pythonLegacy"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 8
         7: .line 679
            getstatic org.bson.UuidRepresentation.PYTHON_LEGACY:Lorg/bson/UuidRepresentation;
            areturn
         8: .line 681
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            ldc "standard"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 10
         9: .line 682
            getstatic org.bson.UuidRepresentation.STANDARD:Lorg/bson/UuidRepresentation;
            areturn
        10: .line 684
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown uuid representation: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String value
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Lcom/mongodb/ConnectionString;
            0   11     1  value  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      value  final

  private com.mongodb.MongoCredential createCredentials(java.util.Map<java.lang.String, java.util.List<java.lang.String>>, java.lang.String, char[]);
    descriptor: (Ljava/util/Map;Ljava/lang/String;[C)Lcom/mongodb/MongoCredential;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=16, args_size=4
        start local 0 // com.mongodb.ConnectionString this
        start local 1 // java.util.Map optionsMap
        start local 2 // java.lang.String userName
        start local 3 // char[] password
         0: .line 690
            aconst_null
            astore 4 /* mechanism */
        start local 4 // com.mongodb.AuthenticationMechanism mechanism
         1: .line 691
            aconst_null
            astore 5 /* authSource */
        start local 5 // java.lang.String authSource
         2: .line 692
            aconst_null
            astore 6 /* gssapiServiceName */
        start local 6 // java.lang.String gssapiServiceName
         3: .line 693
            aconst_null
            astore 7 /* authMechanismProperties */
        start local 7 // java.lang.String authMechanismProperties
         4: .line 695
            getstatic com.mongodb.ConnectionString.AUTH_KEYS:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 20
      StackMap locals: com.mongodb.ConnectionString java.util.Map java.lang.String char[] com.mongodb.AuthenticationMechanism java.lang.String java.lang.String java.lang.String top java.util.Iterator
      StackMap stack:
         5: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* key */
        start local 8 // java.lang.String key
         6: .line 696
            aload 0 /* this */
            aload 1 /* optionsMap */
            aload 8 /* key */
            invokevirtual com.mongodb.ConnectionString.getLastValue:(Ljava/util/Map;Ljava/lang/String;)Ljava/lang/String;
            astore 10 /* value */
        start local 10 // java.lang.String value
         7: .line 698
            aload 10 /* value */
            ifnonnull 9
         8: .line 699
            goto 20
         9: .line 702
      StackMap locals: com.mongodb.ConnectionString java.util.Map java.lang.String char[] com.mongodb.AuthenticationMechanism java.lang.String java.lang.String java.lang.String java.lang.String java.util.Iterator java.lang.String
      StackMap stack:
            aload 8 /* key */
            ldc "authmechanism"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        10: .line 703
            aload 10 /* value */
            invokestatic com.mongodb.AuthenticationMechanism.fromMechanismName:(Ljava/lang/String;)Lcom/mongodb/AuthenticationMechanism;
            astore 4 /* mechanism */
        11: .line 704
            goto 20
      StackMap locals:
      StackMap stack:
        12: aload 8 /* key */
            ldc "authsource"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
        13: .line 705
            aload 10 /* value */
            astore 5 /* authSource */
        14: .line 706
            goto 20
      StackMap locals:
      StackMap stack:
        15: aload 8 /* key */
            ldc "gssapiservicename"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        16: .line 707
            aload 10 /* value */
            astore 6 /* gssapiServiceName */
        17: .line 708
            goto 20
      StackMap locals:
      StackMap stack:
        18: aload 8 /* key */
            ldc "authmechanismproperties"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
        19: .line 709
            aload 10 /* value */
            astore 7 /* authMechanismProperties */
        end local 10 // java.lang.String value
        end local 8 // java.lang.String key
        20: .line 695
      StackMap locals: com.mongodb.ConnectionString java.util.Map java.lang.String char[] com.mongodb.AuthenticationMechanism java.lang.String java.lang.String java.lang.String top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        21: .line 714
            aconst_null
            astore 8 /* credential */
        start local 8 // com.mongodb.MongoCredential credential
        22: .line 715
            aload 4 /* mechanism */
            ifnull 25
        23: .line 716
            aload 0 /* this */
            aload 4 /* mechanism */
            aload 2 /* userName */
            aload 3 /* password */
            aload 5 /* authSource */
            aload 6 /* gssapiServiceName */
            invokevirtual com.mongodb.ConnectionString.createMongoCredentialWithMechanism:(Lcom/mongodb/AuthenticationMechanism;Ljava/lang/String;[CLjava/lang/String;Ljava/lang/String;)Lcom/mongodb/MongoCredential;
            astore 8 /* credential */
        24: .line 717
            goto 31
      StackMap locals: com.mongodb.ConnectionString java.util.Map java.lang.String char[] com.mongodb.AuthenticationMechanism java.lang.String java.lang.String java.lang.String com.mongodb.MongoCredential
      StackMap stack:
        25: aload 2 /* userName */
            ifnull 31
        26: .line 718
            aload 2 /* userName */
        27: .line 719
            aload 0 /* this */
            aload 5 /* authSource */
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.database:Ljava/lang/String;
            ifnull 28
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.database:Ljava/lang/String;
            goto 29
      StackMap locals: com.mongodb.ConnectionString java.util.Map java.lang.String char[] com.mongodb.AuthenticationMechanism java.lang.String java.lang.String java.lang.String com.mongodb.MongoCredential
      StackMap stack: java.lang.String com.mongodb.ConnectionString java.lang.String
        28: ldc "admin"
      StackMap locals: com.mongodb.ConnectionString java.util.Map java.lang.String char[] com.mongodb.AuthenticationMechanism java.lang.String java.lang.String java.lang.String com.mongodb.MongoCredential
      StackMap stack: java.lang.String com.mongodb.ConnectionString java.lang.String java.lang.String
        29: invokevirtual com.mongodb.ConnectionString.getAuthSourceOrDefault:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            aload 3 /* password */
        30: .line 718
            invokestatic com.mongodb.MongoCredential.createCredential:(Ljava/lang/String;Ljava/lang/String;[C)Lcom/mongodb/MongoCredential;
            astore 8 /* credential */
        31: .line 722
      StackMap locals:
      StackMap stack:
            aload 8 /* credential */
            ifnull 47
            aload 7 /* authMechanismProperties */
            ifnull 47
        32: .line 723
            aload 7 /* authMechanismProperties */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 46
      StackMap locals: com.mongodb.ConnectionString java.util.Map java.lang.String char[] com.mongodb.AuthenticationMechanism java.lang.String java.lang.String java.lang.String com.mongodb.MongoCredential top int int java.lang.String[]
      StackMap stack:
        33: aload 12
            iload 10
            aaload
            astore 9 /* part */
        start local 9 // java.lang.String part
        34: .line 724
            aload 9 /* part */
            ldc ":"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 13 /* mechanismPropertyKeyValue */
        start local 13 // java.lang.String[] mechanismPropertyKeyValue
        35: .line 725
            aload 13 /* mechanismPropertyKeyValue */
            arraylength
            iconst_2
            if_icmpeq 39
        36: .line 726
            new java.lang.IllegalArgumentException
            dup
            ldc "The connection string contains invalid authentication properties. '%s' is not a key value pair"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        37: .line 727
            aload 9 /* part */
            aastore
        38: .line 726
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        39: .line 729
      StackMap locals: com.mongodb.ConnectionString java.util.Map java.lang.String char[] com.mongodb.AuthenticationMechanism java.lang.String java.lang.String java.lang.String com.mongodb.MongoCredential java.lang.String int int java.lang.String[] java.lang.String[]
      StackMap stack:
            aload 13 /* mechanismPropertyKeyValue */
            iconst_0
            aaload
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            astore 14 /* key */
        start local 14 // java.lang.String key
        40: .line 730
            aload 13 /* mechanismPropertyKeyValue */
            iconst_1
            aaload
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 15 /* value */
        start local 15 // java.lang.String value
        41: .line 731
            aload 14 /* key */
            ldc "canonicalize_host_name"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 44
        42: .line 732
            aload 8 /* credential */
            aload 14 /* key */
            aload 15 /* value */
            invokestatic java.lang.Boolean.valueOf:(Ljava/lang/String;)Ljava/lang/Boolean;
            invokevirtual com.mongodb.MongoCredential.withMechanismProperty:(Ljava/lang/String;Ljava/lang/Object;)Lcom/mongodb/MongoCredential;
            astore 8 /* credential */
        43: .line 733
            goto 45
        44: .line 734
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 8 /* credential */
            aload 14 /* key */
            aload 15 /* value */
            invokevirtual com.mongodb.MongoCredential.withMechanismProperty:(Ljava/lang/String;Ljava/lang/Object;)Lcom/mongodb/MongoCredential;
            astore 8 /* credential */
        end local 15 // java.lang.String value
        end local 14 // java.lang.String key
        end local 13 // java.lang.String[] mechanismPropertyKeyValue
        end local 9 // java.lang.String part
        45: .line 723
      StackMap locals: com.mongodb.ConnectionString java.util.Map java.lang.String char[] com.mongodb.AuthenticationMechanism java.lang.String java.lang.String java.lang.String com.mongodb.MongoCredential top int int java.lang.String[]
      StackMap stack:
            iinc 10 1
      StackMap locals:
      StackMap stack:
        46: iload 10
            iload 11
            if_icmplt 33
        47: .line 738
      StackMap locals: com.mongodb.ConnectionString java.util.Map java.lang.String char[] com.mongodb.AuthenticationMechanism java.lang.String java.lang.String java.lang.String com.mongodb.MongoCredential
      StackMap stack:
            aload 8 /* credential */
            areturn
        end local 8 // com.mongodb.MongoCredential credential
        end local 7 // java.lang.String authMechanismProperties
        end local 6 // java.lang.String gssapiServiceName
        end local 5 // java.lang.String authSource
        end local 4 // com.mongodb.AuthenticationMechanism mechanism
        end local 3 // char[] password
        end local 2 // java.lang.String userName
        end local 1 // java.util.Map optionsMap
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   48     0                       this  Lcom/mongodb/ConnectionString;
            0   48     1                 optionsMap  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            0   48     2                   userName  Ljava/lang/String;
            0   48     3                   password  [C
            1   48     4                  mechanism  Lcom/mongodb/AuthenticationMechanism;
            2   48     5                 authSource  Ljava/lang/String;
            3   48     6          gssapiServiceName  Ljava/lang/String;
            4   48     7    authMechanismProperties  Ljava/lang/String;
            6   20     8                        key  Ljava/lang/String;
            7   20    10                      value  Ljava/lang/String;
           22   48     8                 credential  Lcom/mongodb/MongoCredential;
           34   45     9                       part  Ljava/lang/String;
           35   45    13  mechanismPropertyKeyValue  [Ljava/lang/String;
           40   45    14                        key  Ljava/lang/String;
           41   45    15                      value  Ljava/lang/String;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;Ljava/lang/String;[C)Lcom/mongodb/MongoCredential;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        com.mongodb.lang.Nullable()
      2:
        com.mongodb.lang.Nullable()
    MethodParameters:
            Name  Flags
      optionsMap  final
      userName    final
      password    final

  private com.mongodb.MongoCredential createMongoCredentialWithMechanism(com.mongodb.AuthenticationMechanism, java.lang.String, char[], java.lang.String, java.lang.String);
    descriptor: (Lcom/mongodb/AuthenticationMechanism;Ljava/lang/String;[CLjava/lang/String;Ljava/lang/String;)Lcom/mongodb/MongoCredential;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=8, args_size=6
        start local 0 // com.mongodb.ConnectionString this
        start local 1 // com.mongodb.AuthenticationMechanism mechanism
        start local 2 // java.lang.String userName
        start local 3 // char[] password
        start local 4 // java.lang.String authSource
        start local 5 // java.lang.String gssapiServiceName
         0: .line 748
            invokestatic com.mongodb.ConnectionString.$SWITCH_TABLE$com$mongodb$AuthenticationMechanism:()[I
            aload 1 /* mechanism */
            invokevirtual com.mongodb.AuthenticationMechanism.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 5
                    2: 1
                    3: 5
              default: 8
          }
         1: .line 750
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* authSource */
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.database:Ljava/lang/String;
            ifnull 2
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.database:Ljava/lang/String;
            goto 3
      StackMap locals: com.mongodb.ConnectionString com.mongodb.AuthenticationMechanism java.lang.String char[] java.lang.String java.lang.String
      StackMap stack: com.mongodb.ConnectionString java.lang.String
         2: ldc "$external"
      StackMap locals: com.mongodb.ConnectionString com.mongodb.AuthenticationMechanism java.lang.String char[] java.lang.String java.lang.String
      StackMap stack: com.mongodb.ConnectionString java.lang.String java.lang.String
         3: invokevirtual com.mongodb.ConnectionString.getAuthSourceOrDefault:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* mechanismAuthSource */
        start local 7 // java.lang.String mechanismAuthSource
         4: .line 751
            goto 11
        end local 7 // java.lang.String mechanismAuthSource
         5: .line 754
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* authSource */
            ldc "$external"
            invokevirtual com.mongodb.ConnectionString.getAuthSourceOrDefault:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* mechanismAuthSource */
        start local 7 // java.lang.String mechanismAuthSource
         6: .line 755
            aload 7 /* mechanismAuthSource */
            ldc "$external"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
         7: .line 756
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid authSource for %s, it must be '$external'"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* mechanism */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // java.lang.String mechanismAuthSource
         8: .line 760
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* authSource */
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.database:Ljava/lang/String;
            ifnull 9
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.database:Ljava/lang/String;
            goto 10
      StackMap locals: com.mongodb.ConnectionString com.mongodb.AuthenticationMechanism java.lang.String char[] java.lang.String java.lang.String
      StackMap stack: com.mongodb.ConnectionString java.lang.String
         9: ldc "admin"
      StackMap locals: com.mongodb.ConnectionString com.mongodb.AuthenticationMechanism java.lang.String char[] java.lang.String java.lang.String
      StackMap stack: com.mongodb.ConnectionString java.lang.String java.lang.String
        10: invokevirtual com.mongodb.ConnectionString.getAuthSourceOrDefault:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* mechanismAuthSource */
        start local 7 // java.lang.String mechanismAuthSource
        11: .line 763
      StackMap locals: com.mongodb.ConnectionString com.mongodb.AuthenticationMechanism java.lang.String char[] java.lang.String java.lang.String top java.lang.String
      StackMap stack:
            invokestatic com.mongodb.ConnectionString.$SWITCH_TABLE$com$mongodb$AuthenticationMechanism:()[I
            aload 1 /* mechanism */
            invokevirtual com.mongodb.AuthenticationMechanism.ordinal:()I
            iaload
            tableswitch { // 1 - 6
                    1: 12
                    2: 18
                    3: 22
                    4: 20
                    5: 26
                    6: 28
              default: 30
          }
        12: .line 765
      StackMap locals:
      StackMap stack:
            aload 2 /* userName */
            invokestatic com.mongodb.MongoCredential.createGSSAPICredential:(Ljava/lang/String;)Lcom/mongodb/MongoCredential;
            astore 6 /* credential */
        start local 6 // com.mongodb.MongoCredential credential
        13: .line 766
            aload 5 /* gssapiServiceName */
            ifnull 15
        14: .line 767
            aload 6 /* credential */
            ldc "SERVICE_NAME"
            aload 5 /* gssapiServiceName */
            invokevirtual com.mongodb.MongoCredential.withMechanismProperty:(Ljava/lang/String;Ljava/lang/Object;)Lcom/mongodb/MongoCredential;
            astore 6 /* credential */
        15: .line 769
      StackMap locals: com.mongodb.ConnectionString com.mongodb.AuthenticationMechanism java.lang.String char[] java.lang.String java.lang.String com.mongodb.MongoCredential java.lang.String
      StackMap stack:
            aload 3 /* password */
            ifnull 33
            getstatic com.mongodb.ConnectionString.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            invokeinterface com.mongodb.diagnostics.logging.Logger.isWarnEnabled:()Z
            ifeq 33
        16: .line 770
            getstatic com.mongodb.ConnectionString.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            ldc "Password in connection string not used with MONGODB_X509 authentication mechanism."
            invokeinterface com.mongodb.diagnostics.logging.Logger.warn:(Ljava/lang/String;)V
        17: .line 772
            goto 33
        end local 6 // com.mongodb.MongoCredential credential
        18: .line 774
      StackMap locals: com.mongodb.ConnectionString com.mongodb.AuthenticationMechanism java.lang.String char[] java.lang.String java.lang.String top java.lang.String
      StackMap stack:
            aload 2 /* userName */
            aload 7 /* mechanismAuthSource */
            aload 3 /* password */
            invokestatic com.mongodb.MongoCredential.createPlainCredential:(Ljava/lang/String;Ljava/lang/String;[C)Lcom/mongodb/MongoCredential;
            astore 6 /* credential */
        start local 6 // com.mongodb.MongoCredential credential
        19: .line 775
            goto 33
        end local 6 // com.mongodb.MongoCredential credential
        20: .line 777
      StackMap locals:
      StackMap stack:
            aload 2 /* userName */
            aload 7 /* mechanismAuthSource */
            aload 3 /* password */
            invokestatic com.mongodb.MongoCredential.createMongoCRCredential:(Ljava/lang/String;Ljava/lang/String;[C)Lcom/mongodb/MongoCredential;
            astore 6 /* credential */
        start local 6 // com.mongodb.MongoCredential credential
        21: .line 778
            goto 33
        end local 6 // com.mongodb.MongoCredential credential
        22: .line 780
      StackMap locals:
      StackMap stack:
            aload 3 /* password */
            ifnull 24
        23: .line 781
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid mechanism, MONGODB_x509 does not support passwords"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        24: .line 783
      StackMap locals:
      StackMap stack:
            aload 2 /* userName */
            invokestatic com.mongodb.MongoCredential.createMongoX509Credential:(Ljava/lang/String;)Lcom/mongodb/MongoCredential;
            astore 6 /* credential */
        start local 6 // com.mongodb.MongoCredential credential
        25: .line 784
            goto 33
        end local 6 // com.mongodb.MongoCredential credential
        26: .line 786
      StackMap locals:
      StackMap stack:
            aload 2 /* userName */
            aload 7 /* mechanismAuthSource */
            aload 3 /* password */
            invokestatic com.mongodb.MongoCredential.createScramSha1Credential:(Ljava/lang/String;Ljava/lang/String;[C)Lcom/mongodb/MongoCredential;
            astore 6 /* credential */
        start local 6 // com.mongodb.MongoCredential credential
        27: .line 787
            goto 33
        end local 6 // com.mongodb.MongoCredential credential
        28: .line 789
      StackMap locals:
      StackMap stack:
            aload 2 /* userName */
            aload 7 /* mechanismAuthSource */
            aload 3 /* password */
            invokestatic com.mongodb.MongoCredential.createScramSha256Credential:(Ljava/lang/String;Ljava/lang/String;[C)Lcom/mongodb/MongoCredential;
            astore 6 /* credential */
        start local 6 // com.mongodb.MongoCredential credential
        29: .line 790
            goto 33
        end local 6 // com.mongodb.MongoCredential credential
        30: .line 792
      StackMap locals:
      StackMap stack:
            new java.lang.UnsupportedOperationException
            dup
            ldc "The connection string contains an invalid authentication mechanism'. '%s' is not a supported authentication mechanism"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        31: .line 794
            aload 1 /* mechanism */
            aastore
        32: .line 792
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        start local 6 // com.mongodb.MongoCredential credential
        33: .line 796
      StackMap locals: com.mongodb.ConnectionString com.mongodb.AuthenticationMechanism java.lang.String char[] java.lang.String java.lang.String com.mongodb.MongoCredential java.lang.String
      StackMap stack:
            aload 6 /* credential */
            areturn
        end local 7 // java.lang.String mechanismAuthSource
        end local 6 // com.mongodb.MongoCredential credential
        end local 5 // java.lang.String gssapiServiceName
        end local 4 // java.lang.String authSource
        end local 3 // char[] password
        end local 2 // java.lang.String userName
        end local 1 // com.mongodb.AuthenticationMechanism mechanism
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   34     0                 this  Lcom/mongodb/ConnectionString;
            0   34     1            mechanism  Lcom/mongodb/AuthenticationMechanism;
            0   34     2             userName  Ljava/lang/String;
            0   34     3             password  [C
            0   34     4           authSource  Ljava/lang/String;
            0   34     5    gssapiServiceName  Ljava/lang/String;
           13   18     6           credential  Lcom/mongodb/MongoCredential;
           19   20     6           credential  Lcom/mongodb/MongoCredential;
           21   22     6           credential  Lcom/mongodb/MongoCredential;
           25   26     6           credential  Lcom/mongodb/MongoCredential;
           27   28     6           credential  Lcom/mongodb/MongoCredential;
           29   30     6           credential  Lcom/mongodb/MongoCredential;
           33   34     6           credential  Lcom/mongodb/MongoCredential;
            4    5     7  mechanismAuthSource  Ljava/lang/String;
            6    8     7  mechanismAuthSource  Ljava/lang/String;
           11   34     7  mechanismAuthSource  Ljava/lang/String;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
        com.mongodb.lang.Nullable()
      3:
        com.mongodb.lang.Nullable()
      4:
        com.mongodb.lang.Nullable()
    MethodParameters:
                   Name  Flags
      mechanism          final
      userName           final
      password           final
      authSource         final
      gssapiServiceName  final

  private java.lang.String getAuthSourceOrDefault(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // com.mongodb.ConnectionString this
        start local 1 // java.lang.String authSource
        start local 2 // java.lang.String defaultAuthSource
         0: .line 800
            aload 1 /* authSource */
            ifnull 2
         1: .line 801
            aload 1 /* authSource */
            areturn
         2: .line 803
      StackMap locals:
      StackMap stack:
            aload 2 /* defaultAuthSource */
            areturn
        end local 2 // java.lang.String defaultAuthSource
        end local 1 // java.lang.String authSource
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0               this  Lcom/mongodb/ConnectionString;
            0    3     1         authSource  Ljava/lang/String;
            0    3     2  defaultAuthSource  Ljava/lang/String;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
    MethodParameters:
                   Name  Flags
      authSource         final
      defaultAuthSource  final

  private java.lang.String getLastValue(java.util.Map<java.lang.String, java.util.List<java.lang.String>>, java.lang.String);
    descriptor: (Ljava/util/Map;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.mongodb.ConnectionString this
        start local 1 // java.util.Map optionsMap
        start local 2 // java.lang.String key
         0: .line 809
            aload 1 /* optionsMap */
            aload 2 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 3 /* valueList */
        start local 3 // java.util.List valueList
         1: .line 810
            aload 3 /* valueList */
            ifnonnull 3
         2: .line 811
            aconst_null
            areturn
         3: .line 813
      StackMap locals: java.util.List
      StackMap stack:
            aload 3 /* valueList */
            aload 3 /* valueList */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 3 // java.util.List valueList
        end local 2 // java.lang.String key
        end local 1 // java.util.Map optionsMap
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/mongodb/ConnectionString;
            0    4     1  optionsMap  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            0    4     2         key  Ljava/lang/String;
            1    4     3   valueList  Ljava/util/List<Ljava/lang/String;>;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;Ljava/lang/String;)Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    MethodParameters:
            Name  Flags
      optionsMap  final
      key         final

  private java.util.Map<java.lang.String, java.util.List<java.lang.String>> parseOptions(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=11, args_size=2
        start local 0 // com.mongodb.ConnectionString this
        start local 1 // java.lang.String optionsPart
         0: .line 817
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* optionsMap */
        start local 2 // java.util.Map optionsMap
         1: .line 818
            aload 1 /* optionsPart */
            invokevirtual java.lang.String.length:()I
            ifne 3
         2: .line 819
            aload 2 /* optionsMap */
            areturn
         3: .line 822
      StackMap locals: java.util.Map
      StackMap stack:
            aload 1 /* optionsPart */
            ldc "&|;"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 21
      StackMap locals: com.mongodb.ConnectionString java.lang.String java.util.Map top int int java.lang.String[]
      StackMap stack:
         4: aload 6
            iload 4
            aaload
            astore 3 /* part */
        start local 3 // java.lang.String part
         5: .line 823
            aload 3 /* part */
            invokevirtual java.lang.String.length:()I
            ifne 7
         6: .line 824
            goto 20
         7: .line 826
      StackMap locals: com.mongodb.ConnectionString java.lang.String java.util.Map java.lang.String int int java.lang.String[]
      StackMap stack:
            aload 3 /* part */
            ldc "="
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 7 /* idx */
        start local 7 // int idx
         8: .line 827
            iload 7 /* idx */
            iflt 17
         9: .line 828
            aload 3 /* part */
            iconst_0
            iload 7 /* idx */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            astore 8 /* key */
        start local 8 // java.lang.String key
        10: .line 829
            aload 3 /* part */
            iload 7 /* idx */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 9 /* value */
        start local 9 // java.lang.String value
        11: .line 830
            aload 2 /* optionsMap */
            aload 8 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 10 /* valueList */
        start local 10 // java.util.List valueList
        12: .line 831
            aload 10 /* valueList */
            ifnonnull 14
        13: .line 832
            new java.util.ArrayList
            dup
            iconst_1
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 10 /* valueList */
        14: .line 834
      StackMap locals: com.mongodb.ConnectionString java.lang.String java.util.Map java.lang.String int int java.lang.String[] int java.lang.String java.lang.String java.util.List
      StackMap stack:
            aload 10 /* valueList */
            aload 0 /* this */
            aload 9 /* value */
            invokevirtual com.mongodb.ConnectionString.urldecode:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        15: .line 835
            aload 2 /* optionsMap */
            aload 8 /* key */
            aload 10 /* valueList */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 10 // java.util.List valueList
        end local 9 // java.lang.String value
        end local 8 // java.lang.String key
        16: .line 836
            goto 20
        17: .line 837
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "The connection string contains an invalid option '%s'. '%s' is missing the value delimiter eg '%s=value'"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        18: .line 838
            aload 1 /* optionsPart */
            aastore
            dup
            iconst_1
            aload 3 /* part */
            aastore
            dup
            iconst_2
            aload 3 /* part */
            aastore
        19: .line 837
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // int idx
        end local 3 // java.lang.String part
        20: .line 822
      StackMap locals: com.mongodb.ConnectionString java.lang.String java.util.Map top int int java.lang.String[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        21: iload 4
            iload 5
            if_icmplt 4
        22: .line 843
            aload 2 /* optionsMap */
            ldc "wtimeout"
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 26
            aload 2 /* optionsMap */
            ldc "wtimeoutms"
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 26
        23: .line 844
            aload 2 /* optionsMap */
            ldc "wtimeoutms"
            aload 2 /* optionsMap */
            ldc "wtimeout"
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        24: .line 845
            getstatic com.mongodb.ConnectionString.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            invokeinterface com.mongodb.diagnostics.logging.Logger.isWarnEnabled:()Z
            ifeq 26
        25: .line 846
            getstatic com.mongodb.ConnectionString.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            ldc "Uri option 'wtimeout' has been deprecated, use 'wtimeoutms' instead."
            invokeinterface com.mongodb.diagnostics.logging.Logger.warn:(Ljava/lang/String;)V
        26: .line 850
      StackMap locals: com.mongodb.ConnectionString java.lang.String java.util.Map
      StackMap stack:
            aload 0 /* this */
            aload 2 /* optionsMap */
            ldc "slaveok"
            invokevirtual com.mongodb.ConnectionString.getLastValue:(Ljava/util/Map;Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* slaveok */
        start local 3 // java.lang.String slaveok
        27: .line 851
            aload 3 /* slaveok */
            ifnull 35
            aload 2 /* optionsMap */
            ldc "readpreference"
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 35
        28: .line 852
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            aload 0 /* this */
            aload 3 /* slaveok */
            ldc "slaveok"
            invokevirtual com.mongodb.ConnectionString.parseBoolean:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.equals:(Ljava/lang/Object;)Z
            ifeq 30
        29: .line 853
            ldc "secondaryPreferred"
            goto 31
      StackMap locals: java.lang.String
      StackMap stack:
        30: ldc "primary"
        31: .line 852
      StackMap locals:
      StackMap stack: java.lang.String
            astore 4 /* readPreference */
        start local 4 // java.lang.String readPreference
        32: .line 854
            aload 2 /* optionsMap */
            ldc "readpreference"
            aload 4 /* readPreference */
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        33: .line 855
            getstatic com.mongodb.ConnectionString.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            invokeinterface com.mongodb.diagnostics.logging.Logger.isWarnEnabled:()Z
            ifeq 35
        34: .line 856
            getstatic com.mongodb.ConnectionString.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            ldc "Uri option 'slaveok' has been deprecated, use 'readpreference' instead."
            invokeinterface com.mongodb.diagnostics.logging.Logger.warn:(Ljava/lang/String;)V
        end local 4 // java.lang.String readPreference
        35: .line 860
      StackMap locals:
      StackMap stack:
            aload 2 /* optionsMap */
            ldc "j"
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 39
            aload 2 /* optionsMap */
            ldc "journal"
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 39
        36: .line 861
            aload 2 /* optionsMap */
            ldc "journal"
            aload 2 /* optionsMap */
            ldc "j"
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        37: .line 862
            getstatic com.mongodb.ConnectionString.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            invokeinterface com.mongodb.diagnostics.logging.Logger.isWarnEnabled:()Z
            ifeq 39
        38: .line 863
            getstatic com.mongodb.ConnectionString.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            ldc "Uri option 'j' has been deprecated, use 'journal' instead."
            invokeinterface com.mongodb.diagnostics.logging.Logger.warn:(Ljava/lang/String;)V
        39: .line 867
      StackMap locals:
      StackMap stack:
            aload 2 /* optionsMap */
            areturn
        end local 3 // java.lang.String slaveok
        end local 2 // java.util.Map optionsMap
        end local 1 // java.lang.String optionsPart
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   40     0            this  Lcom/mongodb/ConnectionString;
            0   40     1     optionsPart  Ljava/lang/String;
            1   40     2      optionsMap  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            5   20     3            part  Ljava/lang/String;
            8   20     7             idx  I
           10   16     8             key  Ljava/lang/String;
           11   16     9           value  Ljava/lang/String;
           12   16    10       valueList  Ljava/util/List<Ljava/lang/String;>;
           27   40     3         slaveok  Ljava/lang/String;
           32   35     4  readPreference  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
    MethodParameters:
             Name  Flags
      optionsPart  final

  private com.mongodb.ReadPreference buildReadPreference(java.lang.String, java.util.List<com.mongodb.TagSet>, long);
    descriptor: (Ljava/lang/String;Ljava/util/List;J)Lcom/mongodb/ReadPreference;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // com.mongodb.ConnectionString this
        start local 1 // java.lang.String readPreferenceType
        start local 2 // java.util.List tagSetList
        start local 3 // long maxStalenessSeconds
         0: .line 873
            aload 1 /* readPreferenceType */
            ifnull 6
         1: .line 874
            aload 2 /* tagSetList */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 3
            lload 3 /* maxStalenessSeconds */
            ldc -1
            lcmp
            ifne 3
         2: .line 875
            aload 1 /* readPreferenceType */
            invokestatic com.mongodb.ReadPreference.valueOf:(Ljava/lang/String;)Lcom/mongodb/ReadPreference;
            areturn
         3: .line 876
      StackMap locals:
      StackMap stack:
            lload 3 /* maxStalenessSeconds */
            ldc -1
            lcmp
            ifne 5
         4: .line 877
            aload 1 /* readPreferenceType */
            aload 2 /* tagSetList */
            invokestatic com.mongodb.ReadPreference.valueOf:(Ljava/lang/String;Ljava/util/List;)Lcom/mongodb/TaggableReadPreference;
            areturn
         5: .line 879
      StackMap locals:
      StackMap stack:
            aload 1 /* readPreferenceType */
            aload 2 /* tagSetList */
            lload 3 /* maxStalenessSeconds */
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
            invokestatic com.mongodb.ReadPreference.valueOf:(Ljava/lang/String;Ljava/util/List;JLjava/util/concurrent/TimeUnit;)Lcom/mongodb/TaggableReadPreference;
            areturn
         6: .line 881
      StackMap locals:
      StackMap stack:
            aload 2 /* tagSetList */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 7
            lload 3 /* maxStalenessSeconds */
            ldc -1
            lcmp
            ifeq 8
         7: .line 882
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Read preference mode must be specified if either read preference tags or max staleness is specified"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 885
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // long maxStalenessSeconds
        end local 2 // java.util.List tagSetList
        end local 1 // java.lang.String readPreferenceType
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    9     0                 this  Lcom/mongodb/ConnectionString;
            0    9     1   readPreferenceType  Ljava/lang/String;
            0    9     2           tagSetList  Ljava/util/List<Lcom/mongodb/TagSet;>;
            0    9     3  maxStalenessSeconds  J
    Signature: (Ljava/lang/String;Ljava/util/List<Lcom/mongodb/TagSet;>;J)Lcom/mongodb/ReadPreference;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
    MethodParameters:
                     Name  Flags
      readPreferenceType   final
      tagSetList           final
      maxStalenessSeconds  final

  private com.mongodb.WriteConcern buildWriteConcern(java.lang.Boolean, java.lang.String, java.lang.Integer, java.lang.Boolean, java.lang.Boolean);
    descriptor: (Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Boolean;)Lcom/mongodb/WriteConcern;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=6
        start local 0 // com.mongodb.ConnectionString this
        start local 1 // java.lang.Boolean safe
        start local 2 // java.lang.String w
        start local 3 // java.lang.Integer wTimeout
        start local 4 // java.lang.Boolean fsync
        start local 5 // java.lang.Boolean journal
         0: .line 893
            aconst_null
            astore 6 /* retVal */
        start local 6 // com.mongodb.WriteConcern retVal
         1: .line 894
            aload 2 /* w */
            ifnonnull 2
            aload 3 /* wTimeout */
            ifnonnull 2
            aload 4 /* fsync */
            ifnonnull 2
            aload 5 /* journal */
            ifnull 16
         2: .line 895
      StackMap locals: com.mongodb.WriteConcern
      StackMap stack:
            aload 2 /* w */
            ifnonnull 5
         3: .line 896
            getstatic com.mongodb.WriteConcern.ACKNOWLEDGED:Lcom/mongodb/WriteConcern;
            astore 6 /* retVal */
         4: .line 897
            goto 9
         5: .line 899
      StackMap locals:
      StackMap stack:
            new com.mongodb.WriteConcern
            dup
            aload 2 /* w */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            invokespecial com.mongodb.WriteConcern.<init>:(I)V
            astore 6 /* retVal */
         6: .line 900
            goto 9
      StackMap locals:
      StackMap stack: java.lang.NumberFormatException
         7: pop
         8: .line 901
            new com.mongodb.WriteConcern
            dup
            aload 2 /* w */
            invokespecial com.mongodb.WriteConcern.<init>:(Ljava/lang/String;)V
            astore 6 /* retVal */
         9: .line 904
      StackMap locals:
      StackMap stack:
            aload 3 /* wTimeout */
            ifnull 11
        10: .line 905
            aload 6 /* retVal */
            aload 3 /* wTimeout */
            invokevirtual java.lang.Integer.intValue:()I
            i2l
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual com.mongodb.WriteConcern.withWTimeout:(JLjava/util/concurrent/TimeUnit;)Lcom/mongodb/WriteConcern;
            astore 6 /* retVal */
        11: .line 907
      StackMap locals:
      StackMap stack:
            aload 5 /* journal */
            ifnull 13
        12: .line 908
            aload 6 /* retVal */
            aload 5 /* journal */
            invokevirtual com.mongodb.WriteConcern.withJournal:(Ljava/lang/Boolean;)Lcom/mongodb/WriteConcern;
            astore 6 /* retVal */
        13: .line 910
      StackMap locals:
      StackMap stack:
            aload 4 /* fsync */
            ifnull 15
        14: .line 911
            aload 6 /* retVal */
            aload 4 /* fsync */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokevirtual com.mongodb.WriteConcern.withFsync:(Z)Lcom/mongodb/WriteConcern;
            astore 6 /* retVal */
        15: .line 913
      StackMap locals:
      StackMap stack:
            aload 6 /* retVal */
            areturn
        16: .line 914
      StackMap locals:
      StackMap stack:
            aload 1 /* safe */
            ifnull 21
        17: .line 915
            aload 1 /* safe */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 20
        18: .line 916
            getstatic com.mongodb.WriteConcern.ACKNOWLEDGED:Lcom/mongodb/WriteConcern;
            astore 6 /* retVal */
        19: .line 917
            goto 21
        20: .line 918
      StackMap locals:
      StackMap stack:
            getstatic com.mongodb.WriteConcern.UNACKNOWLEDGED:Lcom/mongodb/WriteConcern;
            astore 6 /* retVal */
        21: .line 921
      StackMap locals:
      StackMap stack:
            aload 6 /* retVal */
            areturn
        end local 6 // com.mongodb.WriteConcern retVal
        end local 5 // java.lang.Boolean journal
        end local 4 // java.lang.Boolean fsync
        end local 3 // java.lang.Integer wTimeout
        end local 2 // java.lang.String w
        end local 1 // java.lang.Boolean safe
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   22     0      this  Lcom/mongodb/ConnectionString;
            0   22     1      safe  Ljava/lang/Boolean;
            0   22     2         w  Ljava/lang/String;
            0   22     3  wTimeout  Ljava/lang/Integer;
            0   22     4     fsync  Ljava/lang/Boolean;
            0   22     5   journal  Ljava/lang/Boolean;
            1   22     6    retVal  Lcom/mongodb/WriteConcern;
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.NumberFormatException
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
        com.mongodb.lang.Nullable()
      2:
        com.mongodb.lang.Nullable()
      3:
        com.mongodb.lang.Nullable()
      4:
        com.mongodb.lang.Nullable()
    MethodParameters:
          Name  Flags
      safe      final
      w         final
      wTimeout  final
      fsync     final
      journal   final

  private com.mongodb.TagSet getTags(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/mongodb/TagSet;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=8, args_size=2
        start local 0 // com.mongodb.ConnectionString this
        start local 1 // java.lang.String tagSetString
         0: .line 925
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* tagList */
        start local 2 // java.util.List tagList
         1: .line 926
            aload 1 /* tagSetString */
            invokevirtual java.lang.String.length:()I
            ifle 12
         2: .line 927
            aload 1 /* tagSetString */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 11
      StackMap locals: com.mongodb.ConnectionString java.lang.String java.util.List top int int java.lang.String[]
      StackMap stack:
         3: aload 6
            iload 4
            aaload
            astore 3 /* tag */
        start local 3 // java.lang.String tag
         4: .line 928
            aload 3 /* tag */
            ldc ":"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 7 /* tagKeyValuePair */
        start local 7 // java.lang.String[] tagKeyValuePair
         5: .line 929
            aload 7 /* tagKeyValuePair */
            arraylength
            iconst_2
            if_icmpeq 9
         6: .line 930
            new java.lang.IllegalArgumentException
            dup
            ldc "The connection string contains an invalid read preference tag. '%s' is not a key value pair"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         7: .line 931
            aload 1 /* tagSetString */
            aastore
         8: .line 930
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 933
      StackMap locals: com.mongodb.ConnectionString java.lang.String java.util.List java.lang.String int int java.lang.String[] java.lang.String[]
      StackMap stack:
            aload 2 /* tagList */
            new com.mongodb.Tag
            dup
            aload 7 /* tagKeyValuePair */
            iconst_0
            aaload
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            aload 7 /* tagKeyValuePair */
            iconst_1
            aaload
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokespecial com.mongodb.Tag.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // java.lang.String[] tagKeyValuePair
        end local 3 // java.lang.String tag
        10: .line 927
            iinc 4 1
      StackMap locals: com.mongodb.ConnectionString java.lang.String java.util.List top int int java.lang.String[]
      StackMap stack:
        11: iload 4
            iload 5
            if_icmplt 3
        12: .line 936
      StackMap locals: com.mongodb.ConnectionString java.lang.String java.util.List
      StackMap stack:
            new com.mongodb.TagSet
            dup
            aload 2 /* tagList */
            invokespecial com.mongodb.TagSet.<init>:(Ljava/util/List;)V
            areturn
        end local 2 // java.util.List tagList
        end local 1 // java.lang.String tagSetString
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0             this  Lcom/mongodb/ConnectionString;
            0   13     1     tagSetString  Ljava/lang/String;
            1   13     2          tagList  Ljava/util/List<Lcom/mongodb/Tag;>;
            4   10     3              tag  Ljava/lang/String;
            5   10     7  tagKeyValuePair  [Ljava/lang/String;
    MethodParameters:
              Name  Flags
      tagSetString  final

  private java.lang.Boolean parseBoolean(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Boolean;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // com.mongodb.ConnectionString this
        start local 1 // java.lang.String input
        start local 2 // java.lang.String key
         0: .line 944
            aload 1 /* input */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            astore 3 /* trimmedInput */
        start local 3 // java.lang.String trimmedInput
         1: .line 946
            getstatic com.mongodb.ConnectionString.TRUE_VALUES:Ljava/util/Set;
            aload 3 /* trimmedInput */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 7
         2: .line 947
            aload 3 /* trimmedInput */
            ldc "true"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
         3: .line 948
            getstatic com.mongodb.ConnectionString.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            ldc "Deprecated boolean value '%s' in the connection string for '%s'. Replace with 'true'"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         4: .line 949
            aload 3 /* trimmedInput */
            aastore
            dup
            iconst_1
            aload 2 /* key */
            aastore
         5: .line 948
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface com.mongodb.diagnostics.logging.Logger.warn:(Ljava/lang/String;)V
         6: .line 951
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
         7: .line 952
      StackMap locals:
      StackMap stack:
            getstatic com.mongodb.ConnectionString.FALSE_VALUES:Ljava/util/Set;
            aload 3 /* trimmedInput */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 13
         8: .line 953
            aload 3 /* trimmedInput */
            ldc "false"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
         9: .line 954
            getstatic com.mongodb.ConnectionString.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            ldc "Deprecated boolean value '%s' in the connection string for '%s'. Replace with'false'"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        10: .line 955
            aload 3 /* trimmedInput */
            aastore
            dup
            iconst_1
            aload 2 /* key */
            aastore
        11: .line 954
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface com.mongodb.diagnostics.logging.Logger.warn:(Ljava/lang/String;)V
        12: .line 957
      StackMap locals:
      StackMap stack:
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        13: .line 959
      StackMap locals:
      StackMap stack:
            getstatic com.mongodb.ConnectionString.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            ldc "Ignoring unrecognized boolean value '%s' in the connection string for '%s'. Replace with either 'true' or 'false'"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        14: .line 960
            aload 3 /* trimmedInput */
            aastore
            dup
            iconst_1
            aload 2 /* key */
            aastore
        15: .line 959
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface com.mongodb.diagnostics.logging.Logger.warn:(Ljava/lang/String;)V
        16: .line 961
            aconst_null
            areturn
        end local 3 // java.lang.String trimmedInput
        end local 2 // java.lang.String key
        end local 1 // java.lang.String input
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   17     0          this  Lcom/mongodb/ConnectionString;
            0   17     1         input  Ljava/lang/String;
            0   17     2           key  Ljava/lang/String;
            1   17     3  trimmedInput  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    MethodParameters:
       Name  Flags
      input  final
      key    final

  private int parseInteger(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // com.mongodb.ConnectionString this
        start local 1 // java.lang.String input
        start local 2 // java.lang.String key
         0: .line 967
            aload 1 /* input */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
         1: ireturn
         2: .line 968
      StackMap locals:
      StackMap stack: java.lang.NumberFormatException
            pop
         3: .line 969
            new java.lang.IllegalArgumentException
            dup
            ldc "The connection string contains an invalid value for '%s'. '%s' is not a valid integer"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         4: .line 970
            aload 2 /* key */
            aastore
            dup
            iconst_1
            aload 1 /* input */
            aastore
         5: .line 969
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String key
        end local 1 // java.lang.String input
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lcom/mongodb/ConnectionString;
            0    6     1  input  Ljava/lang/String;
            0    6     2    key  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.NumberFormatException
    MethodParameters:
       Name  Flags
      input  final
      key    final

  private java.util.List<java.lang.String> parseHosts(java.util.List<java.lang.String>);
    descriptor: (Ljava/util/List;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=2
        start local 0 // com.mongodb.ConnectionString this
        start local 1 // java.util.List rawHosts
         0: .line 975
            aload 1 /* rawHosts */
            invokeinterface java.util.List.size:()I
            ifne 2
         1: .line 976
            new java.lang.IllegalArgumentException
            dup
            ldc "The connection string must contain at least one host"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 978
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* hosts */
        start local 2 // java.util.List hosts
         3: .line 979
            aload 1 /* rawHosts */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 27
      StackMap locals: com.mongodb.ConnectionString java.util.List java.util.List top java.util.Iterator
      StackMap stack:
         4: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* host */
        start local 3 // java.lang.String host
         5: .line 980
            aload 3 /* host */
            invokevirtual java.lang.String.length:()I
            ifne 7
         6: .line 981
            new java.lang.IllegalArgumentException
            dup
            ldc "The connection string contains an empty host '%s'. "
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* rawHosts */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 982
      StackMap locals: com.mongodb.ConnectionString java.util.List java.util.List java.lang.String java.util.Iterator
      StackMap stack:
            aload 3 /* host */
            ldc ".sock"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 10
         8: .line 983
            aload 0 /* this */
            aload 3 /* host */
            invokevirtual com.mongodb.ConnectionString.urldecode:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* host */
         9: .line 984
            goto 26
      StackMap locals:
      StackMap stack:
        10: aload 3 /* host */
            ldc "["
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 19
        11: .line 985
            aload 3 /* host */
            ldc "]"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifne 15
        12: .line 986
            new java.lang.IllegalArgumentException
            dup
            ldc "The connection string contains an invalid host '%s'. IPv6 address literals must be enclosed in '[' and ']' according to RFC 2732"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        13: .line 987
            aload 3 /* host */
            aastore
        14: .line 986
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 989
      StackMap locals:
      StackMap stack:
            aload 3 /* host */
            ldc "]:"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 5 /* idx */
        start local 5 // int idx
        16: .line 990
            iload 5 /* idx */
            iconst_m1
            if_icmpeq 26
        17: .line 991
            aload 0 /* this */
            aload 3 /* host */
            aload 3 /* host */
            iload 5 /* idx */
            iconst_2
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual com.mongodb.ConnectionString.validatePort:(Ljava/lang/String;Ljava/lang/String;)V
        end local 5 // int idx
        18: .line 993
            goto 26
        19: .line 994
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* host */
            ldc ":"
            invokevirtual com.mongodb.ConnectionString.countOccurrences:(Ljava/lang/String;Ljava/lang/String;)I
            istore 5 /* colonCount */
        start local 5 // int colonCount
        20: .line 995
            iload 5 /* colonCount */
            iconst_1
            if_icmple 24
        21: .line 996
            new java.lang.IllegalArgumentException
            dup
            ldc "The connection string contains an invalid host '%s'. Reserved characters such as ':' must be escaped according RFC 2396. Any IPv6 address literal must be enclosed in '[' and ']' according to RFC 2732."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        22: .line 998
            aload 3 /* host */
            aastore
        23: .line 996
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        24: .line 999
      StackMap locals: int
      StackMap stack:
            iload 5 /* colonCount */
            iconst_1
            if_icmpne 26
        25: .line 1000
            aload 0 /* this */
            aload 3 /* host */
            aload 3 /* host */
            aload 3 /* host */
            ldc ":"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual com.mongodb.ConnectionString.validatePort:(Ljava/lang/String;Ljava/lang/String;)V
        end local 5 // int colonCount
        26: .line 1003
      StackMap locals:
      StackMap stack:
            aload 2 /* hosts */
            aload 3 /* host */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.String host
        27: .line 979
      StackMap locals: com.mongodb.ConnectionString java.util.List java.util.List top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        28: .line 1005
            aload 2 /* hosts */
            invokestatic java.util.Collections.sort:(Ljava/util/List;)V
        29: .line 1006
            aload 2 /* hosts */
            areturn
        end local 2 // java.util.List hosts
        end local 1 // java.util.List rawHosts
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   30     0        this  Lcom/mongodb/ConnectionString;
            0   30     1    rawHosts  Ljava/util/List<Ljava/lang/String;>;
            3   30     2       hosts  Ljava/util/List<Ljava/lang/String;>;
            5   27     3        host  Ljava/lang/String;
           16   18     5         idx  I
           20   26     5  colonCount  I
    Signature: (Ljava/util/List<Ljava/lang/String;>;)Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
          Name  Flags
      rawHosts  final

  private void validatePort(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, args_size=3
        start local 0 // com.mongodb.ConnectionString this
        start local 1 // java.lang.String host
        start local 2 // java.lang.String port
         0: .line 1010
            iconst_0
            istore 3 /* invalidPort */
        start local 3 // boolean invalidPort
         1: .line 1012
            aload 2 /* port */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 4 /* portInt */
        start local 4 // int portInt
         2: .line 1013
            iload 4 /* portInt */
            ifle 3
            iload 4 /* portInt */
            ldc 65535
            if_icmple 7
         3: .line 1014
      StackMap locals: int int
      StackMap stack:
            iconst_1
            istore 3 /* invalidPort */
        end local 4 // int portInt
         4: .line 1016
            goto 7
      StackMap locals: com.mongodb.ConnectionString java.lang.String java.lang.String int
      StackMap stack: java.lang.NumberFormatException
         5: pop
         6: .line 1017
            iconst_1
            istore 3 /* invalidPort */
         7: .line 1019
      StackMap locals:
      StackMap stack:
            iload 3 /* invalidPort */
            ifeq 11
         8: .line 1020
            new java.lang.IllegalArgumentException
            dup
            ldc "The connection string contains an invalid host '%s'. The port '%s' is not a valid, it must be an integer between 0 and 65535"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         9: .line 1021
            aload 1 /* host */
            aastore
            dup
            iconst_1
            aload 2 /* port */
            aastore
        10: .line 1020
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 1023
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean invalidPort
        end local 2 // java.lang.String port
        end local 1 // java.lang.String host
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Lcom/mongodb/ConnectionString;
            0   12     1         host  Ljava/lang/String;
            0   12     2         port  Ljava/lang/String;
            1   12     3  invalidPort  Z
            2    4     4      portInt  I
      Exception table:
        from    to  target  type
           1     4       5  Class java.lang.NumberFormatException
    MethodParameters:
      Name  Flags
      host  final
      port  final

  private int countOccurrences(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.ConnectionString this
        start local 1 // java.lang.String haystack
        start local 2 // java.lang.String needle
         0: .line 1026
            aload 1 /* haystack */
            invokevirtual java.lang.String.length:()I
            aload 1 /* haystack */
            aload 2 /* needle */
            ldc ""
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            isub
            ireturn
        end local 2 // java.lang.String needle
        end local 1 // java.lang.String haystack
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/mongodb/ConnectionString;
            0    1     1  haystack  Ljava/lang/String;
            0    1     2    needle  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      haystack  final
      needle    final

  private java.lang.String urldecode(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.ConnectionString this
        start local 1 // java.lang.String input
         0: .line 1030
            aload 0 /* this */
            aload 1 /* input */
            iconst_0
            invokevirtual com.mongodb.ConnectionString.urldecode:(Ljava/lang/String;Z)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String input
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/mongodb/ConnectionString;
            0    1     1  input  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      input  final

  private java.lang.String urldecode(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // com.mongodb.ConnectionString this
        start local 1 // java.lang.String input
        start local 2 // boolean password
         0: .line 1035
            aload 1 /* input */
            ldc "UTF-8"
            invokestatic java.net.URLDecoder.decode:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
         1: areturn
         2: .line 1036
      StackMap locals:
      StackMap stack: java.io.UnsupportedEncodingException
            astore 3 /* e */
        start local 3 // java.io.UnsupportedEncodingException e
         3: .line 1037
            iload 2 /* password */
            ifeq 5
         4: .line 1038
            new java.lang.IllegalArgumentException
            dup
            ldc "The connection string contained unsupported characters in the password."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 1040
      StackMap locals: java.io.UnsupportedEncodingException
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "The connection string contained unsupported characters: '%s'.Decoding produced the following error: %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         6: .line 1041
            aload 1 /* input */
            aastore
            dup
            iconst_1
            aload 3 /* e */
            invokevirtual java.io.UnsupportedEncodingException.getMessage:()Ljava/lang/String;
            aastore
         7: .line 1040
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.io.UnsupportedEncodingException e
        end local 2 // boolean password
        end local 1 // java.lang.String input
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lcom/mongodb/ConnectionString;
            0    8     1     input  Ljava/lang/String;
            0    8     2  password  Z
            3    8     3         e  Ljava/io/UnsupportedEncodingException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.UnsupportedEncodingException
    MethodParameters:
          Name  Flags
      input     final
      password  final

  public java.lang.String getUsername();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1055
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.credential:Lcom/mongodb/MongoCredential;
            ifnull 1
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.credential:Lcom/mongodb/MongoCredential;
            invokevirtual com.mongodb.MongoCredential.getUserName:()Ljava/lang/String;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/mongodb/ConnectionString;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()

  public char[] getPassword();
    descriptor: ()[C
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1065
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.credential:Lcom/mongodb/MongoCredential;
            ifnull 1
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.credential:Lcom/mongodb/MongoCredential;
            invokevirtual com.mongodb.MongoCredential.getPassword:()[C
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: char[]
         2: areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/mongodb/ConnectionString;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()

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

  public java.util.List<java.lang.String> getHosts();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1083
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.hosts:Ljava/util/List;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;
    Signature: ()Ljava/util/List<Ljava/lang/String;>;

  public java.lang.String getDatabase();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1093
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.database:Ljava/lang/String;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()

  public java.lang.String getCollection();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1104
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.collection:Ljava/lang/String;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()

  public java.lang.String getURI();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1115
            aload 0 /* this */
            invokevirtual com.mongodb.ConnectionString.getConnectionString:()Ljava/lang/String;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

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

  public java.util.List<com.mongodb.MongoCredential> getCredentialList();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1137
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.credential:Lcom/mongodb/MongoCredential;
            ifnull 1
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.credential:Lcom/mongodb/MongoCredential;
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            goto 2
      StackMap locals:
      StackMap stack:
         1: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
      StackMap locals:
      StackMap stack: java.util.List
         2: areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/mongodb/ConnectionString;
    Signature: ()Ljava/util/List<Lcom/mongodb/MongoCredential;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public com.mongodb.MongoCredential getCredential();
    descriptor: ()Lcom/mongodb/MongoCredential;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1148
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.credential:Lcom/mongodb/MongoCredential;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()

  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.ConnectionString this
         0: .line 1157
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.readPreference:Lcom/mongodb/ReadPreference;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()

  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.ConnectionString this
         0: .line 1166
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.readConcern:Lcom/mongodb/ReadConcern;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()

  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.ConnectionString this
         0: .line 1175
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.writeConcern:Lcom/mongodb/WriteConcern;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()

  public boolean getRetryWrites();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1190
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.retryWrites:Ljava/lang/Boolean;
            ifnonnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield com.mongodb.ConnectionString.retryWrites:Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/mongodb/ConnectionString;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public java.lang.Boolean getRetryWritesValue();
    descriptor: ()Ljava/lang/Boolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1205
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.retryWrites:Ljava/lang/Boolean;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;

  public java.lang.Boolean getRetryReads();
    descriptor: ()Ljava/lang/Boolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1216
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.retryReads:Ljava/lang/Boolean;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;

  public java.lang.Integer getMinConnectionPoolSize();
    descriptor: ()Ljava/lang/Integer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1225
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.minConnectionPoolSize:Ljava/lang/Integer;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()

  public java.lang.Integer getMaxConnectionPoolSize();
    descriptor: ()Ljava/lang/Integer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1234
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.maxConnectionPoolSize:Ljava/lang/Integer;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()

  public java.lang.Integer getThreadsAllowedToBlockForConnectionMultiplier();
    descriptor: ()Ljava/lang/Integer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1245
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.threadsAllowedToBlockForConnectionMultiplier:Ljava/lang/Integer;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
      com.mongodb.lang.Nullable()

  public java.lang.Integer getMaxWaitTime();
    descriptor: ()Ljava/lang/Integer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1254
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.maxWaitTime:Ljava/lang/Integer;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()

  public java.lang.Integer getMaxConnectionIdleTime();
    descriptor: ()Ljava/lang/Integer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1263
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.maxConnectionIdleTime:Ljava/lang/Integer;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()

  public java.lang.Integer getMaxConnectionLifeTime();
    descriptor: ()Ljava/lang/Integer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1272
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.maxConnectionLifeTime:Ljava/lang/Integer;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()

  public java.lang.Integer getConnectTimeout();
    descriptor: ()Ljava/lang/Integer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1281
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.connectTimeout:Ljava/lang/Integer;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()

  public java.lang.Integer getSocketTimeout();
    descriptor: ()Ljava/lang/Integer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1290
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.socketTimeout:Ljava/lang/Integer;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()

  public java.lang.Boolean getSslEnabled();
    descriptor: ()Ljava/lang/Boolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1299
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.sslEnabled:Ljava/lang/Boolean;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()

  public java.lang.String getStreamType();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1312
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.streamType:Ljava/lang/String;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
      com.mongodb.lang.Nullable()

  public java.lang.Boolean getSslInvalidHostnameAllowed();
    descriptor: ()Ljava/lang/Boolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1323
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.sslInvalidHostnameAllowed:Ljava/lang/Boolean;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()

  public java.lang.String getRequiredReplicaSetName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1332
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.requiredReplicaSetName:Ljava/lang/String;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()

  public java.lang.Integer getServerSelectionTimeout();
    descriptor: ()Ljava/lang/Integer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1342
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.serverSelectionTimeout:Ljava/lang/Integer;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()

  public java.lang.Integer getLocalThreshold();
    descriptor: ()Ljava/lang/Integer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1352
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.localThreshold:Ljava/lang/Integer;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()

  public java.lang.Integer getHeartbeatFrequency();
    descriptor: ()Ljava/lang/Integer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1362
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.heartbeatFrequency:Ljava/lang/Integer;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()

  public java.lang.String getApplicationName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1377
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.applicationName:Ljava/lang/String;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()

  public java.util.List<com.mongodb.MongoCompressor> getCompressorList();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1387
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.compressorList:Ljava/util/List;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;
    Signature: ()Ljava/util/List<Lcom/mongodb/MongoCompressor;>;

  public org.bson.UuidRepresentation getUuidRepresentation();
    descriptor: ()Lorg/bson/UuidRepresentation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1400
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.uuidRepresentation:Lorg/bson/UuidRepresentation;
            areturn
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/ConnectionString;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()

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

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.mongodb.ConnectionString this
        start local 1 // java.lang.Object o
         0: .line 1410
            aload 0 /* this */
            aload 1 /* o */
            if_acmpne 2
         1: .line 1411
            iconst_1
            ireturn
         2: .line 1413
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof com.mongodb.ConnectionString
            ifne 4
         3: .line 1414
            iconst_0
            ireturn
         4: .line 1417
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            checkcast com.mongodb.ConnectionString
            astore 2 /* that */
        start local 2 // com.mongodb.ConnectionString that
         5: .line 1419
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.collection:Ljava/lang/String;
            ifnull 6
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.collection:Ljava/lang/String;
            aload 2 /* that */
            getfield com.mongodb.ConnectionString.collection:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 7
      StackMap locals: com.mongodb.ConnectionString
      StackMap stack:
         6: aload 2 /* that */
            getfield com.mongodb.ConnectionString.collection:Ljava/lang/String;
            ifnull 8
         7: .line 1420
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         8: .line 1422
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.connectTimeout:Ljava/lang/Integer;
            ifnull 9
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.connectTimeout:Ljava/lang/Integer;
            aload 2 /* that */
            getfield com.mongodb.ConnectionString.connectTimeout:Ljava/lang/Integer;
            invokevirtual java.lang.Integer.equals:(Ljava/lang/Object;)Z
            ifne 11
            goto 10
      StackMap locals:
      StackMap stack:
         9: aload 2 /* that */
            getfield com.mongodb.ConnectionString.connectTimeout:Ljava/lang/Integer;
            ifnull 11
        10: .line 1423
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        11: .line 1425
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.credential:Lcom/mongodb/MongoCredential;
            ifnull 12
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.credential:Lcom/mongodb/MongoCredential;
            aload 2 /* that */
            getfield com.mongodb.ConnectionString.credential:Lcom/mongodb/MongoCredential;
            invokevirtual com.mongodb.MongoCredential.equals:(Ljava/lang/Object;)Z
            ifne 14
            goto 13
      StackMap locals:
      StackMap stack:
        12: aload 2 /* that */
            getfield com.mongodb.ConnectionString.credential:Lcom/mongodb/MongoCredential;
            ifnull 14
        13: .line 1426
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        14: .line 1428
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.database:Ljava/lang/String;
            ifnull 15
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.database:Ljava/lang/String;
            aload 2 /* that */
            getfield com.mongodb.ConnectionString.database:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 17
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 2 /* that */
            getfield com.mongodb.ConnectionString.database:Ljava/lang/String;
            ifnull 17
        16: .line 1429
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        17: .line 1431
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.hosts:Ljava/util/List;
            aload 2 /* that */
            getfield com.mongodb.ConnectionString.hosts:Ljava/util/List;
            invokeinterface java.util.List.equals:(Ljava/lang/Object;)Z
            ifne 19
        18: .line 1432
            iconst_0
            ireturn
        19: .line 1434
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.maxConnectionIdleTime:Ljava/lang/Integer;
            ifnull 20
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.maxConnectionIdleTime:Ljava/lang/Integer;
            aload 2 /* that */
            getfield com.mongodb.ConnectionString.maxConnectionIdleTime:Ljava/lang/Integer;
            invokevirtual java.lang.Integer.equals:(Ljava/lang/Object;)Z
            ifne 22
            goto 21
        20: .line 1435
      StackMap locals:
      StackMap stack:
            aload 2 /* that */
            getfield com.mongodb.ConnectionString.maxConnectionIdleTime:Ljava/lang/Integer;
            ifnull 22
        21: .line 1436
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        22: .line 1438
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.maxConnectionLifeTime:Ljava/lang/Integer;
            ifnull 23
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.maxConnectionLifeTime:Ljava/lang/Integer;
            aload 2 /* that */
            getfield com.mongodb.ConnectionString.maxConnectionLifeTime:Ljava/lang/Integer;
            invokevirtual java.lang.Integer.equals:(Ljava/lang/Object;)Z
            ifne 25
            goto 24
        23: .line 1439
      StackMap locals:
      StackMap stack:
            aload 2 /* that */
            getfield com.mongodb.ConnectionString.maxConnectionLifeTime:Ljava/lang/Integer;
            ifnull 25
        24: .line 1440
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        25: .line 1442
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.maxConnectionPoolSize:Ljava/lang/Integer;
            ifnull 26
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.maxConnectionPoolSize:Ljava/lang/Integer;
            aload 2 /* that */
            getfield com.mongodb.ConnectionString.maxConnectionPoolSize:Ljava/lang/Integer;
            invokevirtual java.lang.Integer.equals:(Ljava/lang/Object;)Z
            ifne 28
            goto 27
        26: .line 1443
      StackMap locals:
      StackMap stack:
            aload 2 /* that */
            getfield com.mongodb.ConnectionString.maxConnectionPoolSize:Ljava/lang/Integer;
            ifnull 28
        27: .line 1444
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        28: .line 1446
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.maxWaitTime:Ljava/lang/Integer;
            ifnull 29
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.maxWaitTime:Ljava/lang/Integer;
            aload 2 /* that */
            getfield com.mongodb.ConnectionString.maxWaitTime:Ljava/lang/Integer;
            invokevirtual java.lang.Integer.equals:(Ljava/lang/Object;)Z
            ifne 31
            goto 30
      StackMap locals:
      StackMap stack:
        29: aload 2 /* that */
            getfield com.mongodb.ConnectionString.maxWaitTime:Ljava/lang/Integer;
            ifnull 31
        30: .line 1447
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        31: .line 1449
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.minConnectionPoolSize:Ljava/lang/Integer;
            ifnull 32
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.minConnectionPoolSize:Ljava/lang/Integer;
            aload 2 /* that */
            getfield com.mongodb.ConnectionString.minConnectionPoolSize:Ljava/lang/Integer;
            invokevirtual java.lang.Integer.equals:(Ljava/lang/Object;)Z
            ifne 34
            goto 33
        32: .line 1450
      StackMap locals:
      StackMap stack:
            aload 2 /* that */
            getfield com.mongodb.ConnectionString.minConnectionPoolSize:Ljava/lang/Integer;
            ifnull 34
        33: .line 1451
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        34: .line 1453
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.readPreference:Lcom/mongodb/ReadPreference;
            ifnull 35
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.readPreference:Lcom/mongodb/ReadPreference;
            aload 2 /* that */
            getfield com.mongodb.ConnectionString.readPreference:Lcom/mongodb/ReadPreference;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 37
            goto 36
      StackMap locals:
      StackMap stack:
        35: aload 2 /* that */
            getfield com.mongodb.ConnectionString.readPreference:Lcom/mongodb/ReadPreference;
            ifnull 37
        36: .line 1454
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        37: .line 1456
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.requiredReplicaSetName:Ljava/lang/String;
            ifnull 38
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.requiredReplicaSetName:Ljava/lang/String;
            aload 2 /* that */
            getfield com.mongodb.ConnectionString.requiredReplicaSetName:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 40
            goto 39
        38: .line 1457
      StackMap locals:
      StackMap stack:
            aload 2 /* that */
            getfield com.mongodb.ConnectionString.requiredReplicaSetName:Ljava/lang/String;
            ifnull 40
        39: .line 1458
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        40: .line 1460
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.socketTimeout:Ljava/lang/Integer;
            ifnull 41
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.socketTimeout:Ljava/lang/Integer;
            aload 2 /* that */
            getfield com.mongodb.ConnectionString.socketTimeout:Ljava/lang/Integer;
            invokevirtual java.lang.Integer.equals:(Ljava/lang/Object;)Z
            ifne 43
            goto 42
      StackMap locals:
      StackMap stack:
        41: aload 2 /* that */
            getfield com.mongodb.ConnectionString.socketTimeout:Ljava/lang/Integer;
            ifnull 43
        42: .line 1461
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        43: .line 1463
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.sslEnabled:Ljava/lang/Boolean;
            ifnull 44
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.sslEnabled:Ljava/lang/Boolean;
            aload 2 /* that */
            getfield com.mongodb.ConnectionString.sslEnabled:Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.equals:(Ljava/lang/Object;)Z
            ifne 46
            goto 45
      StackMap locals:
      StackMap stack:
        44: aload 2 /* that */
            getfield com.mongodb.ConnectionString.sslEnabled:Ljava/lang/Boolean;
            ifnull 46
        45: .line 1464
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        46: .line 1466
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.threadsAllowedToBlockForConnectionMultiplier:Ljava/lang/Integer;
            ifnull 48
        47: .line 1467
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.threadsAllowedToBlockForConnectionMultiplier:Ljava/lang/Integer;
            aload 2 /* that */
            getfield com.mongodb.ConnectionString.threadsAllowedToBlockForConnectionMultiplier:Ljava/lang/Integer;
            invokevirtual java.lang.Integer.equals:(Ljava/lang/Object;)Z
            ifne 50
            goto 49
        48: .line 1468
      StackMap locals:
      StackMap stack:
            aload 2 /* that */
            getfield com.mongodb.ConnectionString.threadsAllowedToBlockForConnectionMultiplier:Ljava/lang/Integer;
            ifnull 50
        49: .line 1469
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        50: .line 1471
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.writeConcern:Lcom/mongodb/WriteConcern;
            ifnull 51
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.writeConcern:Lcom/mongodb/WriteConcern;
            aload 2 /* that */
            getfield com.mongodb.ConnectionString.writeConcern:Lcom/mongodb/WriteConcern;
            invokevirtual com.mongodb.WriteConcern.equals:(Ljava/lang/Object;)Z
            ifne 53
            goto 52
      StackMap locals:
      StackMap stack:
        51: aload 2 /* that */
            getfield com.mongodb.ConnectionString.writeConcern:Lcom/mongodb/WriteConcern;
            ifnull 53
        52: .line 1472
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        53: .line 1474
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.applicationName:Ljava/lang/String;
            ifnull 54
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.applicationName:Ljava/lang/String;
            aload 2 /* that */
            getfield com.mongodb.ConnectionString.applicationName:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 56
            goto 55
      StackMap locals:
      StackMap stack:
        54: aload 2 /* that */
            getfield com.mongodb.ConnectionString.applicationName:Ljava/lang/String;
            ifnull 56
        55: .line 1475
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        56: .line 1477
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.compressorList:Ljava/util/List;
            aload 2 /* that */
            getfield com.mongodb.ConnectionString.compressorList:Ljava/util/List;
            invokeinterface java.util.List.equals:(Ljava/lang/Object;)Z
            ifne 58
        57: .line 1478
            iconst_0
            ireturn
        58: .line 1481
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // com.mongodb.ConnectionString that
        end local 1 // java.lang.Object o
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   59     0  this  Lcom/mongodb/ConnectionString;
            0   59     1     o  Ljava/lang/Object;
            5   59     2  that  Lcom/mongodb/ConnectionString;
    MethodParameters:
      Name  Flags
      o     final

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.mongodb.ConnectionString this
         0: .line 1486
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.credential:Lcom/mongodb/MongoCredential;
            ifnull 1
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.credential:Lcom/mongodb/MongoCredential;
            invokevirtual com.mongodb.MongoCredential.hashCode:()I
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 1 /* result */
        start local 1 // int result
         3: .line 1487
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.hosts:Ljava/util/List;
            invokeinterface java.util.List.hashCode:()I
            iadd
            istore 1 /* result */
         4: .line 1488
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.database:Ljava/lang/String;
            ifnull 5
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.database:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            goto 6
      StackMap locals: com.mongodb.ConnectionString int
      StackMap stack: int
         5: iconst_0
      StackMap locals: com.mongodb.ConnectionString int
      StackMap stack: int int
         6: iadd
            istore 1 /* result */
         7: .line 1489
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.collection:Ljava/lang/String;
            ifnull 8
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.collection:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            goto 9
      StackMap locals:
      StackMap stack: int
         8: iconst_0
      StackMap locals: com.mongodb.ConnectionString int
      StackMap stack: int int
         9: iadd
            istore 1 /* result */
        10: .line 1490
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.readPreference:Lcom/mongodb/ReadPreference;
            ifnull 11
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.readPreference:Lcom/mongodb/ReadPreference;
            invokevirtual java.lang.Object.hashCode:()I
            goto 12
      StackMap locals:
      StackMap stack: int
        11: iconst_0
      StackMap locals: com.mongodb.ConnectionString int
      StackMap stack: int int
        12: iadd
            istore 1 /* result */
        13: .line 1491
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.writeConcern:Lcom/mongodb/WriteConcern;
            ifnull 14
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.writeConcern:Lcom/mongodb/WriteConcern;
            invokevirtual com.mongodb.WriteConcern.hashCode:()I
            goto 15
      StackMap locals:
      StackMap stack: int
        14: iconst_0
      StackMap locals: com.mongodb.ConnectionString int
      StackMap stack: int int
        15: iadd
            istore 1 /* result */
        16: .line 1492
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.minConnectionPoolSize:Ljava/lang/Integer;
            ifnull 17
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.minConnectionPoolSize:Ljava/lang/Integer;
            invokevirtual java.lang.Integer.hashCode:()I
            goto 18
      StackMap locals:
      StackMap stack: int
        17: iconst_0
      StackMap locals: com.mongodb.ConnectionString int
      StackMap stack: int int
        18: iadd
            istore 1 /* result */
        19: .line 1493
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.maxConnectionPoolSize:Ljava/lang/Integer;
            ifnull 20
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.maxConnectionPoolSize:Ljava/lang/Integer;
            invokevirtual java.lang.Integer.hashCode:()I
            goto 21
      StackMap locals:
      StackMap stack: int
        20: iconst_0
      StackMap locals: com.mongodb.ConnectionString int
      StackMap stack: int int
        21: iadd
            istore 1 /* result */
        22: .line 1494
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.threadsAllowedToBlockForConnectionMultiplier:Ljava/lang/Integer;
            ifnull 24
        23: .line 1495
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.threadsAllowedToBlockForConnectionMultiplier:Ljava/lang/Integer;
            invokevirtual java.lang.Integer.hashCode:()I
            goto 25
        24: .line 1496
      StackMap locals:
      StackMap stack: int
            iconst_0
        25: .line 1494
      StackMap locals: com.mongodb.ConnectionString int
      StackMap stack: int int
            iadd
            istore 1 /* result */
        26: .line 1497
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.maxWaitTime:Ljava/lang/Integer;
            ifnull 27
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.maxWaitTime:Ljava/lang/Integer;
            invokevirtual java.lang.Integer.hashCode:()I
            goto 28
      StackMap locals:
      StackMap stack: int
        27: iconst_0
      StackMap locals: com.mongodb.ConnectionString int
      StackMap stack: int int
        28: iadd
            istore 1 /* result */
        29: .line 1498
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.maxConnectionIdleTime:Ljava/lang/Integer;
            ifnull 30
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.maxConnectionIdleTime:Ljava/lang/Integer;
            invokevirtual java.lang.Integer.hashCode:()I
            goto 31
      StackMap locals:
      StackMap stack: int
        30: iconst_0
      StackMap locals: com.mongodb.ConnectionString int
      StackMap stack: int int
        31: iadd
            istore 1 /* result */
        32: .line 1499
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.maxConnectionLifeTime:Ljava/lang/Integer;
            ifnull 33
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.maxConnectionLifeTime:Ljava/lang/Integer;
            invokevirtual java.lang.Integer.hashCode:()I
            goto 34
      StackMap locals:
      StackMap stack: int
        33: iconst_0
      StackMap locals: com.mongodb.ConnectionString int
      StackMap stack: int int
        34: iadd
            istore 1 /* result */
        35: .line 1500
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.connectTimeout:Ljava/lang/Integer;
            ifnull 36
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.connectTimeout:Ljava/lang/Integer;
            invokevirtual java.lang.Integer.hashCode:()I
            goto 37
      StackMap locals:
      StackMap stack: int
        36: iconst_0
      StackMap locals: com.mongodb.ConnectionString int
      StackMap stack: int int
        37: iadd
            istore 1 /* result */
        38: .line 1501
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.socketTimeout:Ljava/lang/Integer;
            ifnull 39
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.socketTimeout:Ljava/lang/Integer;
            invokevirtual java.lang.Integer.hashCode:()I
            goto 40
      StackMap locals:
      StackMap stack: int
        39: iconst_0
      StackMap locals: com.mongodb.ConnectionString int
      StackMap stack: int int
        40: iadd
            istore 1 /* result */
        41: .line 1502
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.sslEnabled:Ljava/lang/Boolean;
            ifnull 42
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.sslEnabled:Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.hashCode:()I
            goto 43
      StackMap locals:
      StackMap stack: int
        42: iconst_0
      StackMap locals: com.mongodb.ConnectionString int
      StackMap stack: int int
        43: iadd
            istore 1 /* result */
        44: .line 1503
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.requiredReplicaSetName:Ljava/lang/String;
            ifnull 45
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.requiredReplicaSetName:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            goto 46
      StackMap locals:
      StackMap stack: int
        45: iconst_0
      StackMap locals: com.mongodb.ConnectionString int
      StackMap stack: int int
        46: iadd
            istore 1 /* result */
        47: .line 1504
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.applicationName:Ljava/lang/String;
            ifnull 48
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.applicationName:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            goto 49
      StackMap locals:
      StackMap stack: int
        48: iconst_0
      StackMap locals: com.mongodb.ConnectionString int
      StackMap stack: int int
        49: iadd
            istore 1 /* result */
        50: .line 1505
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield com.mongodb.ConnectionString.compressorList:Ljava/util/List;
            invokeinterface java.util.List.hashCode:()I
            iadd
            istore 1 /* result */
        51: .line 1506
            iload 1 /* result */
            ireturn
        end local 1 // int result
        end local 0 // com.mongodb.ConnectionString this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   52     0    this  Lcom/mongodb/ConnectionString;
            3   52     1  result  I

  static int[] $SWITCH_TABLE$com$mongodb$AuthenticationMechanism();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 241
            getstatic com.mongodb.ConnectionString.$SWITCH_TABLE$com$mongodb$AuthenticationMechanism:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.mongodb.AuthenticationMechanism.values:()[Lcom/mongodb/AuthenticationMechanism;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.mongodb.AuthenticationMechanism.GSSAPI:Lcom/mongodb/AuthenticationMechanism;
            invokevirtual com.mongodb.AuthenticationMechanism.ordinal:()I
            iconst_1
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.mongodb.AuthenticationMechanism.MONGODB_CR:Lcom/mongodb/AuthenticationMechanism;
            invokevirtual com.mongodb.AuthenticationMechanism.ordinal:()I
            iconst_4
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.mongodb.AuthenticationMechanism.MONGODB_X509:Lcom/mongodb/AuthenticationMechanism;
            invokevirtual com.mongodb.AuthenticationMechanism.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic com.mongodb.AuthenticationMechanism.PLAIN:Lcom/mongodb/AuthenticationMechanism;
            invokevirtual com.mongodb.AuthenticationMechanism.ordinal:()I
            iconst_2
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic com.mongodb.AuthenticationMechanism.SCRAM_SHA_1:Lcom/mongodb/AuthenticationMechanism;
            invokevirtual com.mongodb.AuthenticationMechanism.ordinal:()I
            iconst_5
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic com.mongodb.AuthenticationMechanism.SCRAM_SHA_256:Lcom/mongodb/AuthenticationMechanism;
            invokevirtual com.mongodb.AuthenticationMechanism.ordinal:()I
            bipush 6
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            dup
            putstatic com.mongodb.ConnectionString.$SWITCH_TABLE$com$mongodb$AuthenticationMechanism:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
}
SourceFile: "ConnectionString.java"
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map