public class com.mongodb.DBObjectCodec implements org.bson.codecs.CollectibleCodec<com.mongodb.DBObject>, org.bson.codecs.OverridableUuidRepresentationCodec<com.mongodb.DBObject>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.mongodb.DBObjectCodec
  super_class: java.lang.Object
{
  private static final org.bson.codecs.BsonTypeClassMap DEFAULT_BSON_TYPE_CLASS_MAP;
    descriptor: Lorg/bson/codecs/BsonTypeClassMap;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.bson.codecs.configuration.CodecRegistry DEFAULT_REGISTRY;
    descriptor: Lorg/bson/codecs/configuration/CodecRegistry;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String ID_FIELD_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "_id"

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

  private final org.bson.codecs.BsonTypeCodecMap bsonTypeCodecMap;
    descriptor: Lorg/bson/codecs/BsonTypeCodecMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final org.bson.codecs.IdGenerator idGenerator;
    descriptor: Lorg/bson/codecs/IdGenerator;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.bson.UuidRepresentation uuidRepresentation;
    descriptor: Lorg/bson/UuidRepresentation;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static volatile int[] $SWITCH_TABLE$org$bson$BsonType;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=0, args_size=0
         0: .line 69
            invokestatic com.mongodb.DBObjectCodec.createDefaultBsonTypeClassMap:()Lorg/bson/codecs/BsonTypeClassMap;
            putstatic com.mongodb.DBObjectCodec.DEFAULT_BSON_TYPE_CLASS_MAP:Lorg/bson/codecs/BsonTypeClassMap;
         1: .line 70
            iconst_3
            anewarray org.bson.codecs.configuration.CodecProvider
            dup
            iconst_0
         2: .line 71
            new org.bson.codecs.ValueCodecProvider
            dup
            invokespecial org.bson.codecs.ValueCodecProvider.<init>:()V
            aastore
            dup
            iconst_1
            new org.bson.codecs.BsonValueCodecProvider
            dup
            invokespecial org.bson.codecs.BsonValueCodecProvider.<init>:()V
            aastore
            dup
            iconst_2
            new com.mongodb.DBObjectCodecProvider
            dup
            invokespecial com.mongodb.DBObjectCodecProvider.<init>:()V
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokestatic org.bson.codecs.configuration.CodecRegistries.fromProviders:(Ljava/util/List;)Lorg/bson/codecs/configuration/CodecRegistry;
            putstatic com.mongodb.DBObjectCodec.DEFAULT_REGISTRY:Lorg/bson/codecs/configuration/CodecRegistry;
         3: .line 73
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static org.bson.codecs.BsonTypeClassMap createDefaultBsonTypeClassMap();
    descriptor: ()Lorg/bson/codecs/BsonTypeClassMap;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 82
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 0 /* replacements */
        start local 0 // java.util.Map replacements
         1: .line 83
            aload 0 /* replacements */
            getstatic org.bson.BsonType.REGULAR_EXPRESSION:Lorg/bson/BsonType;
            ldc Ljava/util/regex/Pattern;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 84
            aload 0 /* replacements */
            getstatic org.bson.BsonType.SYMBOL:Lorg/bson/BsonType;
            ldc Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 85
            aload 0 /* replacements */
            getstatic org.bson.BsonType.TIMESTAMP:Lorg/bson/BsonType;
            ldc Lorg/bson/types/BSONTimestamp;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 86
            aload 0 /* replacements */
            getstatic org.bson.BsonType.JAVASCRIPT_WITH_SCOPE:Lorg/bson/BsonType;
            aconst_null
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 87
            aload 0 /* replacements */
            getstatic org.bson.BsonType.DOCUMENT:Lorg/bson/BsonType;
            aconst_null
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 89
            new org.bson.codecs.BsonTypeClassMap
            dup
            aload 0 /* replacements */
            invokespecial org.bson.codecs.BsonTypeClassMap.<init>:(Ljava/util/Map;)V
            areturn
        end local 0 // java.util.Map replacements
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            1    7     0  replacements  Ljava/util/Map<Lorg/bson/BsonType;Ljava/lang/Class<*>;>;

  static org.bson.codecs.BsonTypeClassMap getDefaultBsonTypeClassMap();
    descriptor: ()Lorg/bson/codecs/BsonTypeClassMap;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 93
            getstatic com.mongodb.DBObjectCodec.DEFAULT_BSON_TYPE_CLASS_MAP:Lorg/bson/codecs/BsonTypeClassMap;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static org.bson.codecs.configuration.CodecRegistry getDefaultRegistry();
    descriptor: ()Lorg/bson/codecs/configuration/CodecRegistry;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 97
            getstatic com.mongodb.DBObjectCodec.DEFAULT_REGISTRY:Lorg/bson/codecs/configuration/CodecRegistry;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.DBObjectCodec this
         0: .line 106
            aload 0 /* this */
            getstatic com.mongodb.DBObjectCodec.DEFAULT_REGISTRY:Lorg/bson/codecs/configuration/CodecRegistry;
            invokespecial com.mongodb.DBObjectCodec.<init>:(Lorg/bson/codecs/configuration/CodecRegistry;)V
         1: .line 107
            return
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/DBObjectCodec;

  public void <init>(org.bson.codecs.configuration.CodecRegistry);
    descriptor: (Lorg/bson/codecs/configuration/CodecRegistry;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.codecs.configuration.CodecRegistry codecRegistry
         0: .line 115
            aload 0 /* this */
            aload 1 /* codecRegistry */
            getstatic com.mongodb.DBObjectCodec.DEFAULT_BSON_TYPE_CLASS_MAP:Lorg/bson/codecs/BsonTypeClassMap;
            invokespecial com.mongodb.DBObjectCodec.<init>:(Lorg/bson/codecs/configuration/CodecRegistry;Lorg/bson/codecs/BsonTypeClassMap;)V
         1: .line 116
            return
        end local 1 // org.bson.codecs.configuration.CodecRegistry codecRegistry
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/DBObjectCodec;
            0    2     1  codecRegistry  Lorg/bson/codecs/configuration/CodecRegistry;
    MethodParameters:
               Name  Flags
      codecRegistry  final

  public void <init>(org.bson.codecs.configuration.CodecRegistry, org.bson.codecs.BsonTypeClassMap);
    descriptor: (Lorg/bson/codecs/configuration/CodecRegistry;Lorg/bson/codecs/BsonTypeClassMap;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.codecs.configuration.CodecRegistry codecRegistry
        start local 2 // org.bson.codecs.BsonTypeClassMap bsonTypeClassMap
         0: .line 125
            aload 0 /* this */
            aload 1 /* codecRegistry */
            aload 2 /* bsonTypeClassMap */
            new com.mongodb.BasicDBObjectFactory
            dup
            invokespecial com.mongodb.BasicDBObjectFactory.<init>:()V
            invokespecial com.mongodb.DBObjectCodec.<init>:(Lorg/bson/codecs/configuration/CodecRegistry;Lorg/bson/codecs/BsonTypeClassMap;Lcom/mongodb/DBObjectFactory;)V
         1: .line 126
            return
        end local 2 // org.bson.codecs.BsonTypeClassMap bsonTypeClassMap
        end local 1 // org.bson.codecs.configuration.CodecRegistry codecRegistry
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lcom/mongodb/DBObjectCodec;
            0    2     1     codecRegistry  Lorg/bson/codecs/configuration/CodecRegistry;
            0    2     2  bsonTypeClassMap  Lorg/bson/codecs/BsonTypeClassMap;
    MethodParameters:
                  Name  Flags
      codecRegistry     final
      bsonTypeClassMap  final

  public void <init>(org.bson.codecs.configuration.CodecRegistry, org.bson.codecs.BsonTypeClassMap, com.mongodb.DBObjectFactory);
    descriptor: (Lorg/bson/codecs/configuration/CodecRegistry;Lorg/bson/codecs/BsonTypeClassMap;Lcom/mongodb/DBObjectFactory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.codecs.configuration.CodecRegistry codecRegistry
        start local 2 // org.bson.codecs.BsonTypeClassMap bsonTypeClassMap
        start local 3 // com.mongodb.DBObjectFactory objectFactory
         0: .line 136
            aload 0 /* this */
            aload 1 /* codecRegistry */
            new org.bson.codecs.BsonTypeCodecMap
            dup
            ldc "bsonTypeClassMap"
            aload 2 /* bsonTypeClassMap */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.bson.codecs.BsonTypeClassMap
            aload 1 /* codecRegistry */
            invokespecial org.bson.codecs.BsonTypeCodecMap.<init>:(Lorg/bson/codecs/BsonTypeClassMap;Lorg/bson/codecs/configuration/CodecRegistry;)V
            aload 3 /* objectFactory */
         1: .line 137
            getstatic org.bson.UuidRepresentation.JAVA_LEGACY:Lorg/bson/UuidRepresentation;
            invokespecial com.mongodb.DBObjectCodec.<init>:(Lorg/bson/codecs/configuration/CodecRegistry;Lorg/bson/codecs/BsonTypeCodecMap;Lcom/mongodb/DBObjectFactory;Lorg/bson/UuidRepresentation;)V
         2: .line 138
            return
        end local 3 // com.mongodb.DBObjectFactory objectFactory
        end local 2 // org.bson.codecs.BsonTypeClassMap bsonTypeClassMap
        end local 1 // org.bson.codecs.configuration.CodecRegistry codecRegistry
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Lcom/mongodb/DBObjectCodec;
            0    3     1     codecRegistry  Lorg/bson/codecs/configuration/CodecRegistry;
            0    3     2  bsonTypeClassMap  Lorg/bson/codecs/BsonTypeClassMap;
            0    3     3     objectFactory  Lcom/mongodb/DBObjectFactory;
    MethodParameters:
                  Name  Flags
      codecRegistry     final
      bsonTypeClassMap  final
      objectFactory     final

  private void <init>(org.bson.codecs.configuration.CodecRegistry, org.bson.codecs.BsonTypeCodecMap, com.mongodb.DBObjectFactory, org.bson.UuidRepresentation);
    descriptor: (Lorg/bson/codecs/configuration/CodecRegistry;Lorg/bson/codecs/BsonTypeCodecMap;Lcom/mongodb/DBObjectFactory;Lorg/bson/UuidRepresentation;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.codecs.configuration.CodecRegistry codecRegistry
        start local 2 // org.bson.codecs.BsonTypeCodecMap bsonTypeCodecMap
        start local 3 // com.mongodb.DBObjectFactory objectFactory
        start local 4 // org.bson.UuidRepresentation uuidRepresentation
         0: .line 140
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 78
            aload 0 /* this */
            new org.bson.codecs.ObjectIdGenerator
            dup
            invokespecial org.bson.codecs.ObjectIdGenerator.<init>:()V
            putfield com.mongodb.DBObjectCodec.idGenerator:Lorg/bson/codecs/IdGenerator;
         2: .line 142
            aload 0 /* this */
            ldc "objectFactory"
            aload 3 /* objectFactory */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.DBObjectFactory
            putfield com.mongodb.DBObjectCodec.objectFactory:Lcom/mongodb/DBObjectFactory;
         3: .line 143
            aload 0 /* this */
            ldc "codecRegistry"
            aload 1 /* codecRegistry */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.bson.codecs.configuration.CodecRegistry
            putfield com.mongodb.DBObjectCodec.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
         4: .line 144
            aload 0 /* this */
            ldc "uuidRepresentation"
            aload 4 /* uuidRepresentation */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.bson.UuidRepresentation
            putfield com.mongodb.DBObjectCodec.uuidRepresentation:Lorg/bson/UuidRepresentation;
         5: .line 145
            aload 0 /* this */
            aload 2 /* bsonTypeCodecMap */
            putfield com.mongodb.DBObjectCodec.bsonTypeCodecMap:Lorg/bson/codecs/BsonTypeCodecMap;
         6: .line 146
            return
        end local 4 // org.bson.UuidRepresentation uuidRepresentation
        end local 3 // com.mongodb.DBObjectFactory objectFactory
        end local 2 // org.bson.codecs.BsonTypeCodecMap bsonTypeCodecMap
        end local 1 // org.bson.codecs.configuration.CodecRegistry codecRegistry
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    7     0                this  Lcom/mongodb/DBObjectCodec;
            0    7     1       codecRegistry  Lorg/bson/codecs/configuration/CodecRegistry;
            0    7     2    bsonTypeCodecMap  Lorg/bson/codecs/BsonTypeCodecMap;
            0    7     3       objectFactory  Lcom/mongodb/DBObjectFactory;
            0    7     4  uuidRepresentation  Lorg/bson/UuidRepresentation;
    MethodParameters:
                    Name  Flags
      codecRegistry       final
      bsonTypeCodecMap    final
      objectFactory       final
      uuidRepresentation  final

  public void encode(org.bson.BsonWriter, com.mongodb.DBObject, org.bson.codecs.EncoderContext);
    descriptor: (Lorg/bson/BsonWriter;Lcom/mongodb/DBObject;Lorg/bson/codecs/EncoderContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonWriter writer
        start local 2 // com.mongodb.DBObject document
        start local 3 // org.bson.codecs.EncoderContext encoderContext
         0: .line 150
            aload 1 /* writer */
            invokeinterface org.bson.BsonWriter.writeStartDocument:()V
         1: .line 152
            aload 0 /* this */
            aload 1 /* writer */
            aload 3 /* encoderContext */
            aload 2 /* document */
            invokevirtual com.mongodb.DBObjectCodec.beforeFields:(Lorg/bson/BsonWriter;Lorg/bson/codecs/EncoderContext;Lcom/mongodb/DBObject;)V
         2: .line 154
            aload 2 /* document */
            invokeinterface com.mongodb.DBObject.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 8
      StackMap locals: com.mongodb.DBObjectCodec org.bson.BsonWriter com.mongodb.DBObject org.bson.codecs.EncoderContext 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 155
            aload 0 /* this */
            aload 3 /* encoderContext */
            aload 4 /* key */
            invokevirtual com.mongodb.DBObjectCodec.skipField:(Lorg/bson/codecs/EncoderContext;Ljava/lang/String;)Z
            ifeq 6
         5: .line 156
            goto 8
         6: .line 158
      StackMap locals: com.mongodb.DBObjectCodec org.bson.BsonWriter com.mongodb.DBObject org.bson.codecs.EncoderContext java.lang.String java.util.Iterator
      StackMap stack:
            aload 1 /* writer */
            aload 4 /* key */
            invokeinterface org.bson.BsonWriter.writeName:(Ljava/lang/String;)V
         7: .line 159
            aload 0 /* this */
            aload 1 /* writer */
            aload 3 /* encoderContext */
            aload 2 /* document */
            aload 4 /* key */
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            invokevirtual com.mongodb.DBObjectCodec.writeValue:(Lorg/bson/BsonWriter;Lorg/bson/codecs/EncoderContext;Ljava/lang/Object;)V
        end local 4 // java.lang.String key
         8: .line 154
      StackMap locals: com.mongodb.DBObjectCodec org.bson.BsonWriter com.mongodb.DBObject org.bson.codecs.EncoderContext top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         9: .line 161
            aload 1 /* writer */
            invokeinterface org.bson.BsonWriter.writeEndDocument:()V
        10: .line 162
            return
        end local 3 // org.bson.codecs.EncoderContext encoderContext
        end local 2 // com.mongodb.DBObject document
        end local 1 // org.bson.BsonWriter writer
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Lcom/mongodb/DBObjectCodec;
            0   11     1          writer  Lorg/bson/BsonWriter;
            0   11     2        document  Lcom/mongodb/DBObject;
            0   11     3  encoderContext  Lorg/bson/codecs/EncoderContext;
            4    8     4             key  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      writer          final
      document        final
      encoderContext  final

  public com.mongodb.DBObject decode(org.bson.BsonReader, org.bson.codecs.DecoderContext);
    descriptor: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Lcom/mongodb/DBObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonReader reader
        start local 2 // org.bson.codecs.DecoderContext decoderContext
         0: .line 166
            new java.util.ArrayList
            dup
            bipush 10
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* path */
        start local 3 // java.util.List path
         1: .line 167
            aload 0 /* this */
            aload 1 /* reader */
            aload 2 /* decoderContext */
            aload 3 /* path */
            invokevirtual com.mongodb.DBObjectCodec.readDocument:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/util/List;)Lcom/mongodb/DBObject;
            areturn
        end local 3 // java.util.List path
        end local 2 // org.bson.codecs.DecoderContext decoderContext
        end local 1 // org.bson.BsonReader reader
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/mongodb/DBObjectCodec;
            0    2     1          reader  Lorg/bson/BsonReader;
            0    2     2  decoderContext  Lorg/bson/codecs/DecoderContext;
            1    2     3            path  Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
                Name  Flags
      reader          final
      decoderContext  final

  public java.lang.Class<com.mongodb.DBObject> getEncoderClass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.DBObjectCodec this
         0: .line 172
            ldc Lcom/mongodb/DBObject;
            areturn
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/DBObjectCodec;
    Signature: ()Ljava/lang/Class<Lcom/mongodb/DBObject;>;

  public boolean documentHasId(com.mongodb.DBObject);
    descriptor: (Lcom/mongodb/DBObject;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // com.mongodb.DBObject document
         0: .line 177
            aload 1 /* document */
            ldc "_id"
            invokeinterface com.mongodb.DBObject.containsField:(Ljava/lang/String;)Z
            ireturn
        end local 1 // com.mongodb.DBObject document
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/mongodb/DBObjectCodec;
            0    1     1  document  Lcom/mongodb/DBObject;
    MethodParameters:
          Name  Flags
      document  final

  public org.bson.BsonValue getDocumentId(com.mongodb.DBObject);
    descriptor: (Lcom/mongodb/DBObject;)Lorg/bson/BsonValue;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // com.mongodb.DBObject document
         0: .line 182
            aload 0 /* this */
            aload 1 /* document */
            invokevirtual com.mongodb.DBObjectCodec.documentHasId:(Lcom/mongodb/DBObject;)Z
            ifne 2
         1: .line 183
            new java.lang.IllegalStateException
            dup
            ldc "The document does not contain an _id"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 186
      StackMap locals:
      StackMap stack:
            aload 1 /* document */
            ldc "_id"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            astore 2 /* id */
        start local 2 // java.lang.Object id
         3: .line 187
            aload 2 /* id */
            instanceof org.bson.BsonValue
            ifeq 5
         4: .line 188
            aload 2 /* id */
            checkcast org.bson.BsonValue
            areturn
         5: .line 191
      StackMap locals: java.lang.Object
      StackMap stack:
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            astore 3 /* idHoldingDocument */
        start local 3 // org.bson.BsonDocument idHoldingDocument
         6: .line 192
            new org.bson.BsonDocumentWriter
            dup
            aload 3 /* idHoldingDocument */
            invokespecial org.bson.BsonDocumentWriter.<init>:(Lorg/bson/BsonDocument;)V
            astore 4 /* writer */
        start local 4 // org.bson.BsonWriter writer
         7: .line 193
            aload 4 /* writer */
            invokeinterface org.bson.BsonWriter.writeStartDocument:()V
         8: .line 194
            aload 4 /* writer */
            ldc "_id"
            invokeinterface org.bson.BsonWriter.writeName:(Ljava/lang/String;)V
         9: .line 195
            aload 0 /* this */
            aload 4 /* writer */
            invokestatic org.bson.codecs.EncoderContext.builder:()Lorg/bson/codecs/EncoderContext$Builder;
            invokevirtual org.bson.codecs.EncoderContext$Builder.build:()Lorg/bson/codecs/EncoderContext;
            aload 2 /* id */
            invokevirtual com.mongodb.DBObjectCodec.writeValue:(Lorg/bson/BsonWriter;Lorg/bson/codecs/EncoderContext;Ljava/lang/Object;)V
        10: .line 196
            aload 4 /* writer */
            invokeinterface org.bson.BsonWriter.writeEndDocument:()V
        11: .line 197
            aload 3 /* idHoldingDocument */
            ldc "_id"
            invokevirtual org.bson.BsonDocument.get:(Ljava/lang/Object;)Lorg/bson/BsonValue;
            areturn
        end local 4 // org.bson.BsonWriter writer
        end local 3 // org.bson.BsonDocument idHoldingDocument
        end local 2 // java.lang.Object id
        end local 1 // com.mongodb.DBObject document
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   12     0               this  Lcom/mongodb/DBObjectCodec;
            0   12     1           document  Lcom/mongodb/DBObject;
            3   12     2                 id  Ljava/lang/Object;
            6   12     3  idHoldingDocument  Lorg/bson/BsonDocument;
            7   12     4             writer  Lorg/bson/BsonWriter;
    MethodParameters:
          Name  Flags
      document  final

  public com.mongodb.DBObject generateIdIfAbsentFromDocument(com.mongodb.DBObject);
    descriptor: (Lcom/mongodb/DBObject;)Lcom/mongodb/DBObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // com.mongodb.DBObject document
         0: .line 202
            aload 0 /* this */
            aload 1 /* document */
            invokevirtual com.mongodb.DBObjectCodec.documentHasId:(Lcom/mongodb/DBObject;)Z
            ifne 2
         1: .line 203
            aload 1 /* document */
            ldc "_id"
            aload 0 /* this */
            getfield com.mongodb.DBObjectCodec.idGenerator:Lorg/bson/codecs/IdGenerator;
            invokeinterface org.bson.codecs.IdGenerator.generate:()Ljava/lang/Object;
            invokeinterface com.mongodb.DBObject.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 205
      StackMap locals:
      StackMap stack:
            aload 1 /* document */
            areturn
        end local 1 // com.mongodb.DBObject document
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/mongodb/DBObjectCodec;
            0    3     1  document  Lcom/mongodb/DBObject;
    MethodParameters:
          Name  Flags
      document  final

  public org.bson.codecs.Codec<com.mongodb.DBObject> withUuidRepresentation(org.bson.UuidRepresentation);
    descriptor: (Lorg/bson/UuidRepresentation;)Lorg/bson/codecs/Codec;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.UuidRepresentation uuidRepresentation
         0: .line 210
            new com.mongodb.DBObjectCodec
            dup
            aload 0 /* this */
            getfield com.mongodb.DBObjectCodec.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 0 /* this */
            getfield com.mongodb.DBObjectCodec.bsonTypeCodecMap:Lorg/bson/codecs/BsonTypeCodecMap;
            aload 0 /* this */
            getfield com.mongodb.DBObjectCodec.objectFactory:Lcom/mongodb/DBObjectFactory;
            aload 1 /* uuidRepresentation */
            invokespecial com.mongodb.DBObjectCodec.<init>:(Lorg/bson/codecs/configuration/CodecRegistry;Lorg/bson/codecs/BsonTypeCodecMap;Lcom/mongodb/DBObjectFactory;Lorg/bson/UuidRepresentation;)V
            areturn
        end local 1 // org.bson.UuidRepresentation uuidRepresentation
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0                this  Lcom/mongodb/DBObjectCodec;
            0    1     1  uuidRepresentation  Lorg/bson/UuidRepresentation;
    Signature: (Lorg/bson/UuidRepresentation;)Lorg/bson/codecs/Codec<Lcom/mongodb/DBObject;>;
    MethodParameters:
                    Name  Flags
      uuidRepresentation  final

  private void beforeFields(org.bson.BsonWriter, org.bson.codecs.EncoderContext, com.mongodb.DBObject);
    descriptor: (Lorg/bson/BsonWriter;Lorg/bson/codecs/EncoderContext;Lcom/mongodb/DBObject;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonWriter bsonWriter
        start local 2 // org.bson.codecs.EncoderContext encoderContext
        start local 3 // com.mongodb.DBObject document
         0: .line 214
            aload 2 /* encoderContext */
            invokevirtual org.bson.codecs.EncoderContext.isEncodingCollectibleDocument:()Z
            ifeq 3
            aload 3 /* document */
            ldc "_id"
            invokeinterface com.mongodb.DBObject.containsField:(Ljava/lang/String;)Z
            ifeq 3
         1: .line 215
            aload 1 /* bsonWriter */
            ldc "_id"
            invokeinterface org.bson.BsonWriter.writeName:(Ljava/lang/String;)V
         2: .line 216
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 2 /* encoderContext */
            aload 3 /* document */
            ldc "_id"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            invokevirtual com.mongodb.DBObjectCodec.writeValue:(Lorg/bson/BsonWriter;Lorg/bson/codecs/EncoderContext;Ljava/lang/Object;)V
         3: .line 218
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.mongodb.DBObject document
        end local 2 // org.bson.codecs.EncoderContext encoderContext
        end local 1 // org.bson.BsonWriter bsonWriter
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lcom/mongodb/DBObjectCodec;
            0    4     1      bsonWriter  Lorg/bson/BsonWriter;
            0    4     2  encoderContext  Lorg/bson/codecs/EncoderContext;
            0    4     3        document  Lcom/mongodb/DBObject;
    MethodParameters:
                Name  Flags
      bsonWriter      final
      encoderContext  final
      document        final

  private boolean skipField(org.bson.codecs.EncoderContext, java.lang.String);
    descriptor: (Lorg/bson/codecs/EncoderContext;Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.codecs.EncoderContext encoderContext
        start local 2 // java.lang.String key
         0: .line 221
            aload 1 /* encoderContext */
            invokevirtual org.bson.codecs.EncoderContext.isEncodingCollectibleDocument:()Z
            ifeq 1
            aload 2 /* key */
            ldc "_id"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // java.lang.String key
        end local 1 // org.bson.codecs.EncoderContext encoderContext
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/mongodb/DBObjectCodec;
            0    2     1  encoderContext  Lorg/bson/codecs/EncoderContext;
            0    2     2             key  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      encoderContext  final
      key             final

  private void writeValue(org.bson.BsonWriter, org.bson.codecs.EncoderContext, java.lang.Object);
    descriptor: (Lorg/bson/BsonWriter;Lorg/bson/codecs/EncoderContext;Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonWriter bsonWriter
        start local 2 // org.bson.codecs.EncoderContext encoderContext
        start local 3 // java.lang.Object initialValue
         0: .line 226
            aload 3 /* initialValue */
            invokestatic org.bson.BSON.applyEncodingHooks:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* value */
        start local 4 // java.lang.Object value
         1: .line 227
            aload 4 /* value */
            ifnonnull 4
         2: .line 228
            aload 1 /* bsonWriter */
            invokeinterface org.bson.BsonWriter.writeNull:()V
         3: .line 229
            goto 30
      StackMap locals: java.lang.Object
      StackMap stack:
         4: aload 4 /* value */
            instanceof com.mongodb.DBRef
            ifeq 7
         5: .line 230
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 4 /* value */
            checkcast com.mongodb.DBRef
            aload 2 /* encoderContext */
            invokevirtual com.mongodb.DBObjectCodec.encodeDBRef:(Lorg/bson/BsonWriter;Lcom/mongodb/DBRef;Lorg/bson/codecs/EncoderContext;)V
         6: .line 231
            goto 30
      StackMap locals:
      StackMap stack:
         7: aload 4 /* value */
            instanceof java.util.Map
            ifeq 10
         8: .line 232
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 4 /* value */
            checkcast java.util.Map
            aload 2 /* encoderContext */
            invokevirtual com.mongodb.DBObjectCodec.encodeMap:(Lorg/bson/BsonWriter;Ljava/util/Map;Lorg/bson/codecs/EncoderContext;)V
         9: .line 233
            goto 30
      StackMap locals:
      StackMap stack:
        10: aload 4 /* value */
            instanceof java.lang.Iterable
            ifeq 13
        11: .line 234
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 4 /* value */
            checkcast java.lang.Iterable
            aload 2 /* encoderContext */
            invokevirtual com.mongodb.DBObjectCodec.encodeIterable:(Lorg/bson/BsonWriter;Ljava/lang/Iterable;Lorg/bson/codecs/EncoderContext;)V
        12: .line 235
            goto 30
      StackMap locals:
      StackMap stack:
        13: aload 4 /* value */
            instanceof org.bson.BSONObject
            ifeq 16
        14: .line 236
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 4 /* value */
            checkcast org.bson.BSONObject
            aload 2 /* encoderContext */
            invokevirtual com.mongodb.DBObjectCodec.encodeBsonObject:(Lorg/bson/BsonWriter;Lorg/bson/BSONObject;Lorg/bson/codecs/EncoderContext;)V
        15: .line 237
            goto 30
      StackMap locals:
      StackMap stack:
        16: aload 4 /* value */
            instanceof org.bson.types.CodeWScope
            ifeq 19
        17: .line 238
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 4 /* value */
            checkcast org.bson.types.CodeWScope
            aload 2 /* encoderContext */
            invokevirtual com.mongodb.DBObjectCodec.encodeCodeWScope:(Lorg/bson/BsonWriter;Lorg/bson/types/CodeWScope;Lorg/bson/codecs/EncoderContext;)V
        18: .line 239
            goto 30
      StackMap locals:
      StackMap stack:
        19: aload 4 /* value */
            instanceof byte[]
            ifeq 22
        20: .line 240
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 4 /* value */
            checkcast byte[]
            invokevirtual com.mongodb.DBObjectCodec.encodeByteArray:(Lorg/bson/BsonWriter;[B)V
        21: .line 241
            goto 30
      StackMap locals:
      StackMap stack:
        22: aload 4 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 25
        23: .line 242
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 4 /* value */
            aload 2 /* encoderContext */
            invokevirtual com.mongodb.DBObjectCodec.encodeArray:(Lorg/bson/BsonWriter;Ljava/lang/Object;Lorg/bson/codecs/EncoderContext;)V
        24: .line 243
            goto 30
      StackMap locals:
      StackMap stack:
        25: aload 4 /* value */
            instanceof org.bson.types.Symbol
            ifeq 28
        26: .line 244
            aload 1 /* bsonWriter */
            aload 4 /* value */
            checkcast org.bson.types.Symbol
            invokevirtual org.bson.types.Symbol.getSymbol:()Ljava/lang/String;
            invokeinterface org.bson.BsonWriter.writeSymbol:(Ljava/lang/String;)V
        27: .line 245
            goto 30
        28: .line 246
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.DBObjectCodec.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 4 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface org.bson.codecs.configuration.CodecRegistry.get:(Ljava/lang/Class;)Lorg/bson/codecs/Codec;
            astore 5 /* codec */
        start local 5 // org.bson.codecs.Codec codec
        29: .line 247
            aload 2 /* encoderContext */
            aload 5 /* codec */
            aload 1 /* bsonWriter */
            aload 4 /* value */
            invokevirtual org.bson.codecs.EncoderContext.encodeWithChildContext:(Lorg/bson/codecs/Encoder;Lorg/bson/BsonWriter;Ljava/lang/Object;)V
        end local 5 // org.bson.codecs.Codec codec
        30: .line 249
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.Object value
        end local 3 // java.lang.Object initialValue
        end local 2 // org.bson.codecs.EncoderContext encoderContext
        end local 1 // org.bson.BsonWriter bsonWriter
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   31     0            this  Lcom/mongodb/DBObjectCodec;
            0   31     1      bsonWriter  Lorg/bson/BsonWriter;
            0   31     2  encoderContext  Lorg/bson/codecs/EncoderContext;
            0   31     3    initialValue  Ljava/lang/Object;
            1   31     4           value  Ljava/lang/Object;
           29   30     5           codec  Lorg/bson/codecs/Codec;
    MethodParameters:
                Name  Flags
      bsonWriter      final
      encoderContext  final
      initialValue    final

  private void encodeMap(org.bson.BsonWriter, java.util.Map<java.lang.String, java.lang.Object>, org.bson.codecs.EncoderContext);
    descriptor: (Lorg/bson/BsonWriter;Ljava/util/Map;Lorg/bson/codecs/EncoderContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonWriter bsonWriter
        start local 2 // java.util.Map document
        start local 3 // org.bson.codecs.EncoderContext encoderContext
         0: .line 252
            aload 1 /* bsonWriter */
            invokeinterface org.bson.BsonWriter.writeStartDocument:()V
         1: .line 254
            aload 2 /* document */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 5
      StackMap locals: com.mongodb.DBObjectCodec org.bson.BsonWriter java.util.Map org.bson.codecs.EncoderContext 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 255
            aload 1 /* bsonWriter */
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface org.bson.BsonWriter.writeName:(Ljava/lang/String;)V
         4: .line 256
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 3 /* encoderContext */
            invokevirtual org.bson.codecs.EncoderContext.getChildContext:()Lorg/bson/codecs/EncoderContext;
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            invokevirtual com.mongodb.DBObjectCodec.writeValue:(Lorg/bson/BsonWriter;Lorg/bson/codecs/EncoderContext;Ljava/lang/Object;)V
        end local 4 // java.util.Map$Entry entry
         5: .line 254
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 258
            aload 1 /* bsonWriter */
            invokeinterface org.bson.BsonWriter.writeEndDocument:()V
         7: .line 259
            return
        end local 3 // org.bson.codecs.EncoderContext encoderContext
        end local 2 // java.util.Map document
        end local 1 // org.bson.BsonWriter bsonWriter
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lcom/mongodb/DBObjectCodec;
            0    8     1      bsonWriter  Lorg/bson/BsonWriter;
            0    8     2        document  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            0    8     3  encoderContext  Lorg/bson/codecs/EncoderContext;
            3    5     4           entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Object;>;
    Signature: (Lorg/bson/BsonWriter;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;Lorg/bson/codecs/EncoderContext;)V
    MethodParameters:
                Name  Flags
      bsonWriter      final
      document        final
      encoderContext  final

  private void encodeBsonObject(org.bson.BsonWriter, org.bson.BSONObject, org.bson.codecs.EncoderContext);
    descriptor: (Lorg/bson/BsonWriter;Lorg/bson/BSONObject;Lorg/bson/codecs/EncoderContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonWriter bsonWriter
        start local 2 // org.bson.BSONObject document
        start local 3 // org.bson.codecs.EncoderContext encoderContext
         0: .line 262
            aload 1 /* bsonWriter */
            invokeinterface org.bson.BsonWriter.writeStartDocument:()V
         1: .line 264
            aload 2 /* document */
            invokeinterface org.bson.BSONObject.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 5
      StackMap locals: com.mongodb.DBObjectCodec org.bson.BsonWriter org.bson.BSONObject org.bson.codecs.EncoderContext top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* key */
        start local 4 // java.lang.String key
         3: .line 265
            aload 1 /* bsonWriter */
            aload 4 /* key */
            invokeinterface org.bson.BsonWriter.writeName:(Ljava/lang/String;)V
         4: .line 266
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 3 /* encoderContext */
            invokevirtual org.bson.codecs.EncoderContext.getChildContext:()Lorg/bson/codecs/EncoderContext;
            aload 2 /* document */
            aload 4 /* key */
            invokeinterface org.bson.BSONObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            invokevirtual com.mongodb.DBObjectCodec.writeValue:(Lorg/bson/BsonWriter;Lorg/bson/codecs/EncoderContext;Ljava/lang/Object;)V
        end local 4 // java.lang.String key
         5: .line 264
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 268
            aload 1 /* bsonWriter */
            invokeinterface org.bson.BsonWriter.writeEndDocument:()V
         7: .line 269
            return
        end local 3 // org.bson.codecs.EncoderContext encoderContext
        end local 2 // org.bson.BSONObject document
        end local 1 // org.bson.BsonWriter bsonWriter
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lcom/mongodb/DBObjectCodec;
            0    8     1      bsonWriter  Lorg/bson/BsonWriter;
            0    8     2        document  Lorg/bson/BSONObject;
            0    8     3  encoderContext  Lorg/bson/codecs/EncoderContext;
            3    5     4             key  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      bsonWriter      final
      document        final
      encoderContext  final

  private void encodeByteArray(org.bson.BsonWriter, byte[]);
    descriptor: (Lorg/bson/BsonWriter;[B)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonWriter bsonWriter
        start local 2 // byte[] value
         0: .line 272
            aload 1 /* bsonWriter */
            new org.bson.BsonBinary
            dup
            aload 2 /* value */
            invokespecial org.bson.BsonBinary.<init>:([B)V
            invokeinterface org.bson.BsonWriter.writeBinaryData:(Lorg/bson/BsonBinary;)V
         1: .line 273
            return
        end local 2 // byte[] value
        end local 1 // org.bson.BsonWriter bsonWriter
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/mongodb/DBObjectCodec;
            0    2     1  bsonWriter  Lorg/bson/BsonWriter;
            0    2     2       value  [B
    MethodParameters:
            Name  Flags
      bsonWriter  final
      value       final

  private void encodeArray(org.bson.BsonWriter, java.lang.Object, org.bson.codecs.EncoderContext);
    descriptor: (Lorg/bson/BsonWriter;Ljava/lang/Object;Lorg/bson/codecs/EncoderContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonWriter bsonWriter
        start local 2 // java.lang.Object value
        start local 3 // org.bson.codecs.EncoderContext encoderContext
         0: .line 276
            aload 1 /* bsonWriter */
            invokeinterface org.bson.BsonWriter.writeStartArray:()V
         1: .line 278
            aload 2 /* value */
            invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
            istore 4 /* size */
        start local 4 // int size
         2: .line 279
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 6
         4: .line 280
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 3 /* encoderContext */
            invokevirtual org.bson.codecs.EncoderContext.getChildContext:()Lorg/bson/codecs/EncoderContext;
            aload 2 /* value */
            iload 5 /* i */
            invokestatic java.lang.reflect.Array.get:(Ljava/lang/Object;I)Ljava/lang/Object;
            invokevirtual com.mongodb.DBObjectCodec.writeValue:(Lorg/bson/BsonWriter;Lorg/bson/codecs/EncoderContext;Ljava/lang/Object;)V
         5: .line 279
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 5 /* i */
            iload 4 /* size */
            if_icmplt 4
        end local 5 // int i
         7: .line 283
            aload 1 /* bsonWriter */
            invokeinterface org.bson.BsonWriter.writeEndArray:()V
         8: .line 284
            return
        end local 4 // int size
        end local 3 // org.bson.codecs.EncoderContext encoderContext
        end local 2 // java.lang.Object value
        end local 1 // org.bson.BsonWriter bsonWriter
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lcom/mongodb/DBObjectCodec;
            0    9     1      bsonWriter  Lorg/bson/BsonWriter;
            0    9     2           value  Ljava/lang/Object;
            0    9     3  encoderContext  Lorg/bson/codecs/EncoderContext;
            2    9     4            size  I
            3    7     5               i  I
    MethodParameters:
                Name  Flags
      bsonWriter      final
      value           final
      encoderContext  final

  private void encodeDBRef(org.bson.BsonWriter, com.mongodb.DBRef, org.bson.codecs.EncoderContext);
    descriptor: (Lorg/bson/BsonWriter;Lcom/mongodb/DBRef;Lorg/bson/codecs/EncoderContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonWriter bsonWriter
        start local 2 // com.mongodb.DBRef dbRef
        start local 3 // org.bson.codecs.EncoderContext encoderContext
         0: .line 287
            aload 1 /* bsonWriter */
            invokeinterface org.bson.BsonWriter.writeStartDocument:()V
         1: .line 289
            aload 1 /* bsonWriter */
            ldc "$ref"
            aload 2 /* dbRef */
            invokevirtual com.mongodb.DBRef.getCollectionName:()Ljava/lang/String;
            invokeinterface org.bson.BsonWriter.writeString:(Ljava/lang/String;Ljava/lang/String;)V
         2: .line 290
            aload 1 /* bsonWriter */
            ldc "$id"
            invokeinterface org.bson.BsonWriter.writeName:(Ljava/lang/String;)V
         3: .line 291
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 3 /* encoderContext */
            invokevirtual org.bson.codecs.EncoderContext.getChildContext:()Lorg/bson/codecs/EncoderContext;
            aload 2 /* dbRef */
            invokevirtual com.mongodb.DBRef.getId:()Ljava/lang/Object;
            invokevirtual com.mongodb.DBObjectCodec.writeValue:(Lorg/bson/BsonWriter;Lorg/bson/codecs/EncoderContext;Ljava/lang/Object;)V
         4: .line 292
            aload 2 /* dbRef */
            invokevirtual com.mongodb.DBRef.getDatabaseName:()Ljava/lang/String;
            ifnull 6
         5: .line 293
            aload 1 /* bsonWriter */
            ldc "$db"
            aload 2 /* dbRef */
            invokevirtual com.mongodb.DBRef.getDatabaseName:()Ljava/lang/String;
            invokeinterface org.bson.BsonWriter.writeString:(Ljava/lang/String;Ljava/lang/String;)V
         6: .line 295
      StackMap locals:
      StackMap stack:
            aload 1 /* bsonWriter */
            invokeinterface org.bson.BsonWriter.writeEndDocument:()V
         7: .line 296
            return
        end local 3 // org.bson.codecs.EncoderContext encoderContext
        end local 2 // com.mongodb.DBRef dbRef
        end local 1 // org.bson.BsonWriter bsonWriter
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lcom/mongodb/DBObjectCodec;
            0    8     1      bsonWriter  Lorg/bson/BsonWriter;
            0    8     2           dbRef  Lcom/mongodb/DBRef;
            0    8     3  encoderContext  Lorg/bson/codecs/EncoderContext;
    MethodParameters:
                Name  Flags
      bsonWriter      final
      dbRef           final
      encoderContext  final

  private void encodeCodeWScope(org.bson.BsonWriter, org.bson.types.CodeWScope, org.bson.codecs.EncoderContext);
    descriptor: (Lorg/bson/BsonWriter;Lorg/bson/types/CodeWScope;Lorg/bson/codecs/EncoderContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonWriter bsonWriter
        start local 2 // org.bson.types.CodeWScope value
        start local 3 // org.bson.codecs.EncoderContext encoderContext
         0: .line 299
            aload 1 /* bsonWriter */
            aload 2 /* value */
            invokevirtual org.bson.types.CodeWScope.getCode:()Ljava/lang/String;
            invokeinterface org.bson.BsonWriter.writeJavaScriptWithScope:(Ljava/lang/String;)V
         1: .line 300
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 2 /* value */
            invokevirtual org.bson.types.CodeWScope.getScope:()Lorg/bson/BSONObject;
            aload 3 /* encoderContext */
            invokevirtual org.bson.codecs.EncoderContext.getChildContext:()Lorg/bson/codecs/EncoderContext;
            invokevirtual com.mongodb.DBObjectCodec.encodeBsonObject:(Lorg/bson/BsonWriter;Lorg/bson/BSONObject;Lorg/bson/codecs/EncoderContext;)V
         2: .line 301
            return
        end local 3 // org.bson.codecs.EncoderContext encoderContext
        end local 2 // org.bson.types.CodeWScope value
        end local 1 // org.bson.BsonWriter bsonWriter
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lcom/mongodb/DBObjectCodec;
            0    3     1      bsonWriter  Lorg/bson/BsonWriter;
            0    3     2           value  Lorg/bson/types/CodeWScope;
            0    3     3  encoderContext  Lorg/bson/codecs/EncoderContext;
    MethodParameters:
                Name  Flags
      bsonWriter      final
      value           final
      encoderContext  final

  private void encodeIterable(org.bson.BsonWriter, java.lang.Iterable, org.bson.codecs.EncoderContext);
    descriptor: (Lorg/bson/BsonWriter;Ljava/lang/Iterable;Lorg/bson/codecs/EncoderContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonWriter bsonWriter
        start local 2 // java.lang.Iterable iterable
        start local 3 // org.bson.codecs.EncoderContext encoderContext
         0: .line 304
            aload 1 /* bsonWriter */
            invokeinterface org.bson.BsonWriter.writeStartArray:()V
         1: .line 305
            aload 2 /* iterable */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 5
            goto 4
      StackMap locals: com.mongodb.DBObjectCodec org.bson.BsonWriter java.lang.Iterable org.bson.codecs.EncoderContext top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 4 /* cur */
        start local 4 // java.lang.Object cur
         3: .line 306
            aload 0 /* this */
            aload 1 /* bsonWriter */
            aload 3 /* encoderContext */
            invokevirtual org.bson.codecs.EncoderContext.getChildContext:()Lorg/bson/codecs/EncoderContext;
            aload 4 /* cur */
            invokevirtual com.mongodb.DBObjectCodec.writeValue:(Lorg/bson/BsonWriter;Lorg/bson/codecs/EncoderContext;Ljava/lang/Object;)V
        end local 4 // java.lang.Object cur
         4: .line 305
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 308
            aload 1 /* bsonWriter */
            invokeinterface org.bson.BsonWriter.writeEndArray:()V
         6: .line 309
            return
        end local 3 // org.bson.codecs.EncoderContext encoderContext
        end local 2 // java.lang.Iterable iterable
        end local 1 // org.bson.BsonWriter bsonWriter
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lcom/mongodb/DBObjectCodec;
            0    7     1      bsonWriter  Lorg/bson/BsonWriter;
            0    7     2        iterable  Ljava/lang/Iterable;
            0    7     3  encoderContext  Lorg/bson/codecs/EncoderContext;
            3    4     4             cur  Ljava/lang/Object;
    MethodParameters:
                Name  Flags
      bsonWriter      final
      iterable        final
      encoderContext  final

  private  readValue(org.bson.BsonReader, org.bson.codecs.DecoderContext, java.lang.String, java.util.List<java.lang.String>);
    descriptor: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/lang/String;Ljava/util/List;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonReader reader
        start local 2 // org.bson.codecs.DecoderContext decoderContext
        start local 3 // java.lang.String fieldName
        start local 4 // java.util.List path
         0: .line 314
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.getCurrentBsonType:()Lorg/bson/BsonType;
            astore 6 /* bsonType */
        start local 6 // org.bson.BsonType bsonType
         1: .line 316
            aload 6 /* bsonType */
            invokevirtual org.bson.BsonType.isContainer:()Z
            ifeq 3
            aload 3 /* fieldName */
            ifnull 3
         2: .line 318
            aload 4 /* path */
            aload 3 /* fieldName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 321
      StackMap locals: com.mongodb.DBObjectCodec org.bson.BsonReader org.bson.codecs.DecoderContext java.lang.String java.util.List top org.bson.BsonType
      StackMap stack:
            invokestatic com.mongodb.DBObjectCodec.$SWITCH_TABLE$org$bson$BsonType:()[I
            aload 6 /* bsonType */
            invokevirtual org.bson.BsonType.ordinal:()I
            iaload
            tableswitch { // 4 - 16
                    4: 4
                    5: 6
                    6: 13
                    7: 18
                    8: 18
                    9: 18
                   10: 18
                   11: 15
                   12: 18
                   13: 10
                   14: 18
                   15: 18
                   16: 8
              default: 18
          }
         4: .line 323
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* reader */
            aload 2 /* decoderContext */
            aload 4 /* path */
            invokevirtual com.mongodb.DBObjectCodec.readDocument:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/util/List;)Lcom/mongodb/DBObject;
            invokevirtual com.mongodb.DBObjectCodec.verifyForDBRef:(Lcom/mongodb/DBObject;)Ljava/lang/Object;
            astore 5 /* initialRetVal */
        start local 5 // java.lang.Object initialRetVal
         5: .line 324
            goto 19
        end local 5 // java.lang.Object initialRetVal
         6: .line 326
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* reader */
            aload 2 /* decoderContext */
            aload 4 /* path */
            invokevirtual com.mongodb.DBObjectCodec.readArray:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/util/List;)Ljava/util/List;
            astore 5 /* initialRetVal */
        start local 5 // java.lang.Object initialRetVal
         7: .line 327
            goto 19
        end local 5 // java.lang.Object initialRetVal
         8: .line 329
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* reader */
            aload 2 /* decoderContext */
            aload 4 /* path */
            invokevirtual com.mongodb.DBObjectCodec.readCodeWScope:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/util/List;)Lorg/bson/types/CodeWScope;
            astore 5 /* initialRetVal */
        start local 5 // java.lang.Object initialRetVal
         9: .line 330
            goto 19
        end local 5 // java.lang.Object initialRetVal
        10: .line 332
      StackMap locals:
      StackMap stack:
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.readDBPointer:()Lorg/bson/BsonDbPointer;
            astore 7 /* dbPointer */
        start local 7 // org.bson.BsonDbPointer dbPointer
        11: .line 333
            new com.mongodb.DBRef
            dup
            aload 7 /* dbPointer */
            invokevirtual org.bson.BsonDbPointer.getNamespace:()Ljava/lang/String;
            aload 7 /* dbPointer */
            invokevirtual org.bson.BsonDbPointer.getId:()Lorg/bson/types/ObjectId;
            invokespecial com.mongodb.DBRef.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            astore 5 /* initialRetVal */
        start local 5 // java.lang.Object initialRetVal
        12: .line 334
            goto 19
        end local 7 // org.bson.BsonDbPointer dbPointer
        end local 5 // java.lang.Object initialRetVal
        13: .line 336
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* reader */
            aload 2 /* decoderContext */
            invokevirtual com.mongodb.DBObjectCodec.readBinary:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Ljava/lang/Object;
            astore 5 /* initialRetVal */
        start local 5 // java.lang.Object initialRetVal
        14: .line 337
            goto 19
        end local 5 // java.lang.Object initialRetVal
        15: .line 339
      StackMap locals:
      StackMap stack:
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.readNull:()V
        16: .line 340
            aconst_null
            astore 5 /* initialRetVal */
        start local 5 // java.lang.Object initialRetVal
        17: .line 341
            goto 19
        end local 5 // java.lang.Object initialRetVal
        18: .line 343
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.DBObjectCodec.bsonTypeCodecMap:Lorg/bson/codecs/BsonTypeCodecMap;
            aload 6 /* bsonType */
            invokevirtual org.bson.codecs.BsonTypeCodecMap.get:(Lorg/bson/BsonType;)Lorg/bson/codecs/Codec;
            aload 1 /* reader */
            aload 2 /* decoderContext */
            invokeinterface org.bson.codecs.Codec.decode:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Ljava/lang/Object;
            astore 5 /* initialRetVal */
        start local 5 // java.lang.Object initialRetVal
        19: .line 346
      StackMap locals: com.mongodb.DBObjectCodec org.bson.BsonReader org.bson.codecs.DecoderContext java.lang.String java.util.List java.lang.Object org.bson.BsonType
      StackMap stack:
            aload 6 /* bsonType */
            invokevirtual org.bson.BsonType.isContainer:()Z
            ifeq 21
            aload 3 /* fieldName */
            ifnull 21
        20: .line 348
            aload 4 /* path */
            aload 3 /* fieldName */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
        21: .line 351
      StackMap locals:
      StackMap stack:
            aload 5 /* initialRetVal */
            invokestatic org.bson.BSON.applyDecodingHooks:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 6 // org.bson.BsonType bsonType
        end local 5 // java.lang.Object initialRetVal
        end local 4 // java.util.List path
        end local 3 // java.lang.String fieldName
        end local 2 // org.bson.codecs.DecoderContext decoderContext
        end local 1 // org.bson.BsonReader reader
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   22     0            this  Lcom/mongodb/DBObjectCodec;
            0   22     1          reader  Lorg/bson/BsonReader;
            0   22     2  decoderContext  Lorg/bson/codecs/DecoderContext;
            0   22     3       fieldName  Ljava/lang/String;
            0   22     4            path  Ljava/util/List<Ljava/lang/String;>;
            5    6     5   initialRetVal  Ljava/lang/Object;
            7    8     5   initialRetVal  Ljava/lang/Object;
            9   10     5   initialRetVal  Ljava/lang/Object;
           12   13     5   initialRetVal  Ljava/lang/Object;
           14   15     5   initialRetVal  Ljava/lang/Object;
           17   18     5   initialRetVal  Ljava/lang/Object;
           19   22     5   initialRetVal  Ljava/lang/Object;
            1   22     6        bsonType  Lorg/bson/BsonType;
           11   13     7       dbPointer  Lorg/bson/BsonDbPointer;
    Signature: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;)Ljava/lang/Object;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
        com.mongodb.lang.Nullable()
      3:
    MethodParameters:
                Name  Flags
      reader          final
      decoderContext  final
      fieldName       final
      path            final

  private java.lang.Object readBinary(org.bson.BsonReader, org.bson.codecs.DecoderContext);
    descriptor: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonReader reader
        start local 2 // org.bson.codecs.DecoderContext decoderContext
         0: .line 355
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.peekBinarySubType:()B
            istore 3 /* bsonBinarySubType */
        start local 3 // byte bsonBinarySubType
         1: .line 358
            iload 3 /* bsonBinarySubType */
            invokestatic org.bson.BsonBinarySubType.isUuid:(B)Z
            ifeq 14
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.peekBinarySize:()I
            bipush 16
            if_icmpne 14
         2: .line 359
            aload 0 /* this */
            getfield com.mongodb.DBObjectCodec.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            ldc Lorg/bson/types/Binary;
            invokeinterface org.bson.codecs.configuration.CodecRegistry.get:(Ljava/lang/Class;)Lorg/bson/codecs/Codec;
            astore 4 /* codec */
        start local 4 // org.bson.codecs.Codec codec
         3: .line 360
            iload 3 /* bsonBinarySubType */
            tableswitch { // 3 - 4
                    3: 4
                    4: 9
              default: 12
          }
         4: .line 362
      StackMap locals: int org.bson.codecs.Codec
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.DBObjectCodec.uuidRepresentation:Lorg/bson/UuidRepresentation;
            getstatic org.bson.UuidRepresentation.JAVA_LEGACY:Lorg/bson/UuidRepresentation;
            if_acmpeq 7
         5: .line 363
            aload 0 /* this */
            getfield com.mongodb.DBObjectCodec.uuidRepresentation:Lorg/bson/UuidRepresentation;
            getstatic org.bson.UuidRepresentation.C_SHARP_LEGACY:Lorg/bson/UuidRepresentation;
            if_acmpeq 7
         6: .line 364
            aload 0 /* this */
            getfield com.mongodb.DBObjectCodec.uuidRepresentation:Lorg/bson/UuidRepresentation;
            getstatic org.bson.UuidRepresentation.PYTHON_LEGACY:Lorg/bson/UuidRepresentation;
            if_acmpne 18
         7: .line 365
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.DBObjectCodec.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            ldc Ljava/util/UUID;
            invokeinterface org.bson.codecs.configuration.CodecRegistry.get:(Ljava/lang/Class;)Lorg/bson/codecs/Codec;
            astore 4 /* codec */
         8: .line 367
            goto 18
         9: .line 369
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.DBObjectCodec.uuidRepresentation:Lorg/bson/UuidRepresentation;
            getstatic org.bson.UuidRepresentation.JAVA_LEGACY:Lorg/bson/UuidRepresentation;
            if_acmpeq 10
            aload 0 /* this */
            getfield com.mongodb.DBObjectCodec.uuidRepresentation:Lorg/bson/UuidRepresentation;
            getstatic org.bson.UuidRepresentation.STANDARD:Lorg/bson/UuidRepresentation;
            if_acmpne 18
        10: .line 370
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.DBObjectCodec.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            ldc Ljava/util/UUID;
            invokeinterface org.bson.codecs.configuration.CodecRegistry.get:(Ljava/lang/Class;)Lorg/bson/codecs/Codec;
            astore 4 /* codec */
        11: .line 372
            goto 18
        12: .line 374
      StackMap locals:
      StackMap stack:
            new java.lang.UnsupportedOperationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown UUID binary subtype "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* bsonBinarySubType */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 376
      StackMap locals:
      StackMap stack:
            goto 18
        end local 4 // org.bson.codecs.Codec codec
      StackMap locals:
      StackMap stack:
        14: iload 3 /* bsonBinarySubType */
            getstatic org.bson.BsonBinarySubType.BINARY:Lorg/bson/BsonBinarySubType;
            invokevirtual org.bson.BsonBinarySubType.getValue:()B
            if_icmpeq 15
            iload 3 /* bsonBinarySubType */
            getstatic org.bson.BsonBinarySubType.OLD_BINARY:Lorg/bson/BsonBinarySubType;
            invokevirtual org.bson.BsonBinarySubType.getValue:()B
            if_icmpne 17
        15: .line 377
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.DBObjectCodec.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            ldc [B
            invokeinterface org.bson.codecs.configuration.CodecRegistry.get:(Ljava/lang/Class;)Lorg/bson/codecs/Codec;
            astore 4 /* codec */
        start local 4 // org.bson.codecs.Codec codec
        16: .line 378
            goto 18
        end local 4 // org.bson.codecs.Codec codec
        17: .line 379
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.DBObjectCodec.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            ldc Lorg/bson/types/Binary;
            invokeinterface org.bson.codecs.configuration.CodecRegistry.get:(Ljava/lang/Class;)Lorg/bson/codecs/Codec;
            astore 4 /* codec */
        start local 4 // org.bson.codecs.Codec codec
        18: .line 381
      StackMap locals: org.bson.codecs.Codec
      StackMap stack:
            aload 4 /* codec */
            aload 1 /* reader */
            aload 2 /* decoderContext */
            invokeinterface org.bson.codecs.Codec.decode:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Ljava/lang/Object;
            areturn
        end local 4 // org.bson.codecs.Codec codec
        end local 3 // byte bsonBinarySubType
        end local 2 // org.bson.codecs.DecoderContext decoderContext
        end local 1 // org.bson.BsonReader reader
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   19     0               this  Lcom/mongodb/DBObjectCodec;
            0   19     1             reader  Lorg/bson/BsonReader;
            0   19     2     decoderContext  Lorg/bson/codecs/DecoderContext;
            1   19     3  bsonBinarySubType  B
            3   14     4              codec  Lorg/bson/codecs/Codec<*>;
           16   17     4              codec  Lorg/bson/codecs/Codec<*>;
           18   19     4              codec  Lorg/bson/codecs/Codec<*>;
    MethodParameters:
                Name  Flags
      reader          final
      decoderContext  final

  private java.util.List readArray(org.bson.BsonReader, org.bson.codecs.DecoderContext, java.util.List<java.lang.String>);
    descriptor: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/util/List;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonReader reader
        start local 2 // org.bson.codecs.DecoderContext decoderContext
        start local 3 // java.util.List path
         0: .line 385
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.readStartArray:()V
         1: .line 386
            new com.mongodb.BasicDBList
            dup
            invokespecial com.mongodb.BasicDBList.<init>:()V
            astore 4 /* list */
        start local 4 // com.mongodb.BasicDBList list
         2: .line 387
            goto 4
         3: .line 388
      StackMap locals: com.mongodb.BasicDBList
      StackMap stack:
            aload 4 /* list */
            aload 0 /* this */
            aload 1 /* reader */
            aload 2 /* decoderContext */
            aconst_null
            aload 3 /* path */
            invokevirtual com.mongodb.DBObjectCodec.readValue:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/lang/String;Ljava/util/List;)Ljava/lang/Object;
            invokevirtual com.mongodb.BasicDBList.add:(Ljava/lang/Object;)Z
            pop
         4: .line 387
      StackMap locals:
      StackMap stack:
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.readBsonType:()Lorg/bson/BsonType;
            getstatic org.bson.BsonType.END_OF_DOCUMENT:Lorg/bson/BsonType;
            if_acmpne 3
         5: .line 390
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.readEndArray:()V
         6: .line 391
            aload 4 /* list */
            areturn
        end local 4 // com.mongodb.BasicDBList list
        end local 3 // java.util.List path
        end local 2 // org.bson.codecs.DecoderContext decoderContext
        end local 1 // org.bson.BsonReader reader
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lcom/mongodb/DBObjectCodec;
            0    7     1          reader  Lorg/bson/BsonReader;
            0    7     2  decoderContext  Lorg/bson/codecs/DecoderContext;
            0    7     3            path  Ljava/util/List<Ljava/lang/String;>;
            2    7     4            list  Lcom/mongodb/BasicDBList;
    Signature: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/util/List<Ljava/lang/String;>;)Ljava/util/List;
    MethodParameters:
                Name  Flags
      reader          final
      decoderContext  final
      path            final

  private com.mongodb.DBObject readDocument(org.bson.BsonReader, org.bson.codecs.DecoderContext, java.util.List<java.lang.String>);
    descriptor: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/util/List;)Lcom/mongodb/DBObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=4
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonReader reader
        start local 2 // org.bson.codecs.DecoderContext decoderContext
        start local 3 // java.util.List path
         0: .line 395
            aload 0 /* this */
            getfield com.mongodb.DBObjectCodec.objectFactory:Lcom/mongodb/DBObjectFactory;
            aload 3 /* path */
            invokeinterface com.mongodb.DBObjectFactory.getInstance:(Ljava/util/List;)Lcom/mongodb/DBObject;
            astore 4 /* document */
        start local 4 // com.mongodb.DBObject document
         1: .line 397
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.readStartDocument:()V
         2: .line 398
            goto 5
         3: .line 399
      StackMap locals: com.mongodb.DBObject
      StackMap stack:
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.readName:()Ljava/lang/String;
            astore 5 /* fieldName */
        start local 5 // java.lang.String fieldName
         4: .line 400
            aload 4 /* document */
            aload 5 /* fieldName */
            aload 0 /* this */
            aload 1 /* reader */
            aload 2 /* decoderContext */
            aload 5 /* fieldName */
            aload 3 /* path */
            invokevirtual com.mongodb.DBObjectCodec.readValue:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/lang/String;Ljava/util/List;)Ljava/lang/Object;
            invokeinterface com.mongodb.DBObject.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // java.lang.String fieldName
         5: .line 398
      StackMap locals:
      StackMap stack:
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.readBsonType:()Lorg/bson/BsonType;
            getstatic org.bson.BsonType.END_OF_DOCUMENT:Lorg/bson/BsonType;
            if_acmpne 3
         6: .line 403
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.readEndDocument:()V
         7: .line 404
            aload 4 /* document */
            areturn
        end local 4 // com.mongodb.DBObject document
        end local 3 // java.util.List path
        end local 2 // org.bson.codecs.DecoderContext decoderContext
        end local 1 // org.bson.BsonReader reader
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lcom/mongodb/DBObjectCodec;
            0    8     1          reader  Lorg/bson/BsonReader;
            0    8     2  decoderContext  Lorg/bson/codecs/DecoderContext;
            0    8     3            path  Ljava/util/List<Ljava/lang/String;>;
            1    8     4        document  Lcom/mongodb/DBObject;
            4    5     5       fieldName  Ljava/lang/String;
    Signature: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/util/List<Ljava/lang/String;>;)Lcom/mongodb/DBObject;
    MethodParameters:
                Name  Flags
      reader          final
      decoderContext  final
      path            final

  private org.bson.types.CodeWScope readCodeWScope(org.bson.BsonReader, org.bson.codecs.DecoderContext, java.util.List<java.lang.String>);
    descriptor: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/util/List;)Lorg/bson/types/CodeWScope;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // org.bson.BsonReader reader
        start local 2 // org.bson.codecs.DecoderContext decoderContext
        start local 3 // java.util.List path
         0: .line 408
            new org.bson.types.CodeWScope
            dup
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.readJavaScriptWithScope:()Ljava/lang/String;
            aload 0 /* this */
            aload 1 /* reader */
            aload 2 /* decoderContext */
            aload 3 /* path */
            invokevirtual com.mongodb.DBObjectCodec.readDocument:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/util/List;)Lcom/mongodb/DBObject;
            invokespecial org.bson.types.CodeWScope.<init>:(Ljava/lang/String;Lorg/bson/BSONObject;)V
            areturn
        end local 3 // java.util.List path
        end local 2 // org.bson.codecs.DecoderContext decoderContext
        end local 1 // org.bson.BsonReader reader
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/mongodb/DBObjectCodec;
            0    1     1          reader  Lorg/bson/BsonReader;
            0    1     2  decoderContext  Lorg/bson/codecs/DecoderContext;
            0    1     3            path  Ljava/util/List<Ljava/lang/String;>;
    Signature: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;Ljava/util/List<Ljava/lang/String;>;)Lorg/bson/types/CodeWScope;
    MethodParameters:
                Name  Flags
      reader          final
      decoderContext  final
      path            final

  private java.lang.Object verifyForDBRef(com.mongodb.DBObject);
    descriptor: (Lcom/mongodb/DBObject;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // com.mongodb.DBObjectCodec this
        start local 1 // com.mongodb.DBObject document
         0: .line 412
            aload 1 /* document */
            ldc "$ref"
            invokeinterface com.mongodb.DBObject.containsField:(Ljava/lang/String;)Z
            ifeq 2
            aload 1 /* document */
            ldc "$id"
            invokeinterface com.mongodb.DBObject.containsField:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 413
            new com.mongodb.DBRef
            dup
            aload 1 /* document */
            ldc "$db"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.String
            aload 1 /* document */
            ldc "$ref"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.String
            aload 1 /* document */
            ldc "$id"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            invokespecial com.mongodb.DBRef.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
            areturn
         2: .line 415
      StackMap locals:
      StackMap stack:
            aload 1 /* document */
            areturn
        end local 1 // com.mongodb.DBObject document
        end local 0 // com.mongodb.DBObjectCodec this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/mongodb/DBObjectCodec;
            0    3     1  document  Lcom/mongodb/DBObject;
    MethodParameters:
          Name  Flags
      document  final

  public org.bson.BsonValue getDocumentId(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lorg/bson/BsonValue;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast com.mongodb.DBObject
            invokevirtual com.mongodb.DBObjectCodec.getDocumentId:(Lcom/mongodb/DBObject;)Lorg/bson/BsonValue;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object generateIdIfAbsentFromDocument(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast com.mongodb.DBObject
            invokevirtual com.mongodb.DBObjectCodec.generateIdIfAbsentFromDocument:(Lcom/mongodb/DBObject;)Lcom/mongodb/DBObject;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object decode(org.bson.BsonReader, org.bson.codecs.DecoderContext);
    descriptor: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            invokevirtual com.mongodb.DBObjectCodec.decode:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Lcom/mongodb/DBObject;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public boolean documentHasId(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast com.mongodb.DBObject
            invokevirtual com.mongodb.DBObjectCodec.documentHasId:(Lcom/mongodb/DBObject;)Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void encode(org.bson.BsonWriter, java.lang.Object, org.bson.codecs.EncoderContext);
    descriptor: (Lorg/bson/BsonWriter;Ljava/lang/Object;Lorg/bson/codecs/EncoderContext;)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast com.mongodb.DBObject
            aload 3
            invokevirtual com.mongodb.DBObjectCodec.encode:(Lorg/bson/BsonWriter;Lcom/mongodb/DBObject;Lorg/bson/codecs/EncoderContext;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static int[] $SWITCH_TABLE$org$bson$BsonType();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 68
            getstatic com.mongodb.DBObjectCodec.$SWITCH_TABLE$org$bson$BsonType:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.bson.BsonType.values:()[Lorg/bson/BsonType;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.bson.BsonType.ARRAY:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            iconst_5
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.bson.BsonType.BINARY:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 6
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.bson.BsonType.BOOLEAN:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 9
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.bson.BsonType.DATE_TIME:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 10
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.bson.BsonType.DB_POINTER:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 13
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic org.bson.BsonType.DECIMAL128:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 20
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic org.bson.BsonType.DOCUMENT:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            iconst_4
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic org.bson.BsonType.DOUBLE:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            iconst_2
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic org.bson.BsonType.END_OF_DOCUMENT:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            iconst_1
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic org.bson.BsonType.INT32:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 17
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic org.bson.BsonType.INT64:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 19
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic org.bson.BsonType.JAVASCRIPT:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 14
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            getstatic org.bson.BsonType.JAVASCRIPT_WITH_SCOPE:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 16
            iastore
        39: goto 41
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        40: pop
      StackMap locals:
      StackMap stack:
        41: aload 0
            getstatic org.bson.BsonType.MAX_KEY:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 22
            iastore
        42: goto 44
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        43: pop
      StackMap locals:
      StackMap stack:
        44: aload 0
            getstatic org.bson.BsonType.MIN_KEY:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 21
            iastore
        45: goto 47
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        46: pop
      StackMap locals:
      StackMap stack:
        47: aload 0
            getstatic org.bson.BsonType.NULL:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 11
            iastore
        48: goto 50
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        49: pop
      StackMap locals:
      StackMap stack:
        50: aload 0
            getstatic org.bson.BsonType.OBJECT_ID:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 8
            iastore
        51: goto 53
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        52: pop
      StackMap locals:
      StackMap stack:
        53: aload 0
            getstatic org.bson.BsonType.REGULAR_EXPRESSION:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 12
            iastore
        54: goto 56
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        55: pop
      StackMap locals:
      StackMap stack:
        56: aload 0
            getstatic org.bson.BsonType.STRING:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            iconst_3
            iastore
        57: goto 59
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        58: pop
      StackMap locals:
      StackMap stack:
        59: aload 0
            getstatic org.bson.BsonType.SYMBOL:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 15
            iastore
        60: goto 62
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        61: pop
      StackMap locals:
      StackMap stack:
        62: aload 0
            getstatic org.bson.BsonType.TIMESTAMP:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 18
            iastore
        63: goto 65
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        64: pop
      StackMap locals:
      StackMap stack:
        65: aload 0
            getstatic org.bson.BsonType.UNDEFINED:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 7
            iastore
        66: goto 68
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        67: pop
      StackMap locals:
      StackMap stack:
        68: aload 0
            dup
            putstatic com.mongodb.DBObjectCodec.$SWITCH_TABLE$org$bson$BsonType:[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
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError
          38    39      40  Class java.lang.NoSuchFieldError
          41    42      43  Class java.lang.NoSuchFieldError
          44    45      46  Class java.lang.NoSuchFieldError
          47    48      49  Class java.lang.NoSuchFieldError
          50    51      52  Class java.lang.NoSuchFieldError
          53    54      55  Class java.lang.NoSuchFieldError
          56    57      58  Class java.lang.NoSuchFieldError
          59    60      61  Class java.lang.NoSuchFieldError
          62    63      64  Class java.lang.NoSuchFieldError
          65    66      67  Class java.lang.NoSuchFieldError
}
Signature: Ljava/lang/Object;Lorg/bson/codecs/CollectibleCodec<Lcom/mongodb/DBObject;>;Lorg/bson/codecs/OverridableUuidRepresentationCodec<Lcom/mongodb/DBObject;>;
SourceFile: "DBObjectCodec.java"
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public final Builder = org.bson.codecs.EncoderContext$Builder of org.bson.codecs.EncoderContext