public class org.bson.codecs.MapCodec implements org.bson.codecs.Codec<java.util.Map<java.lang.String, java.lang.Object>>, org.bson.codecs.OverridableUuidRepresentationCodec<java.util.Map<java.lang.String, java.lang.Object>>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bson.codecs.MapCodec
  super_class: java.lang.Object
{
  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 org.bson.codecs.BsonTypeClassMap DEFAULT_BSON_TYPE_CLASS_MAP;
    descriptor: Lorg/bson/codecs/BsonTypeClassMap;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

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

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=0, args_size=0
         0: .line 42
            iconst_5
            anewarray org.bson.codecs.configuration.CodecProvider
            dup
            iconst_0
            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
         1: .line 43
            new org.bson.codecs.DocumentCodecProvider
            dup
            invokespecial org.bson.codecs.DocumentCodecProvider.<init>:()V
            aastore
            dup
            iconst_3
            new org.bson.codecs.IterableCodecProvider
            dup
            invokespecial org.bson.codecs.IterableCodecProvider.<init>:()V
            aastore
            dup
            iconst_4
            new org.bson.codecs.MapCodecProvider
            dup
            invokespecial org.bson.codecs.MapCodecProvider.<init>:()V
            aastore
         2: .line 42
            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 org.bson.codecs.MapCodec.DEFAULT_REGISTRY:Lorg/bson/codecs/configuration/CodecRegistry;
         3: .line 44
            new org.bson.codecs.BsonTypeClassMap
            dup
            invokespecial org.bson.codecs.BsonTypeClassMap.<init>:()V
            putstatic org.bson.codecs.MapCodec.DEFAULT_BSON_TYPE_CLASS_MAP:Lorg/bson/codecs/BsonTypeClassMap;
            return
      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 // org.bson.codecs.MapCodec this
         0: .line 54
            aload 0 /* this */
            getstatic org.bson.codecs.MapCodec.DEFAULT_REGISTRY:Lorg/bson/codecs/configuration/CodecRegistry;
            invokespecial org.bson.codecs.MapCodec.<init>:(Lorg/bson/codecs/configuration/CodecRegistry;)V
         1: .line 55
            return
        end local 0 // org.bson.codecs.MapCodec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/codecs/MapCodec;

  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 // org.bson.codecs.MapCodec this
        start local 1 // org.bson.codecs.configuration.CodecRegistry registry
         0: .line 63
            aload 0 /* this */
            aload 1 /* registry */
            getstatic org.bson.codecs.MapCodec.DEFAULT_BSON_TYPE_CLASS_MAP:Lorg/bson/codecs/BsonTypeClassMap;
            invokespecial org.bson.codecs.MapCodec.<init>:(Lorg/bson/codecs/configuration/CodecRegistry;Lorg/bson/codecs/BsonTypeClassMap;)V
         1: .line 64
            return
        end local 1 // org.bson.codecs.configuration.CodecRegistry registry
        end local 0 // org.bson.codecs.MapCodec this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/bson/codecs/MapCodec;
            0    2     1  registry  Lorg/bson/codecs/configuration/CodecRegistry;
    MethodParameters:
          Name  Flags
      registry  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=4, locals=3, args_size=3
        start local 0 // org.bson.codecs.MapCodec this
        start local 1 // org.bson.codecs.configuration.CodecRegistry registry
        start local 2 // org.bson.codecs.BsonTypeClassMap bsonTypeClassMap
         0: .line 73
            aload 0 /* this */
            aload 1 /* registry */
            aload 2 /* bsonTypeClassMap */
            aconst_null
            invokespecial org.bson.codecs.MapCodec.<init>:(Lorg/bson/codecs/configuration/CodecRegistry;Lorg/bson/codecs/BsonTypeClassMap;Lorg/bson/Transformer;)V
         1: .line 74
            return
        end local 2 // org.bson.codecs.BsonTypeClassMap bsonTypeClassMap
        end local 1 // org.bson.codecs.configuration.CodecRegistry registry
        end local 0 // org.bson.codecs.MapCodec this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lorg/bson/codecs/MapCodec;
            0    2     1          registry  Lorg/bson/codecs/configuration/CodecRegistry;
            0    2     2  bsonTypeClassMap  Lorg/bson/codecs/BsonTypeClassMap;
    MethodParameters:
                  Name  Flags
      registry          final
      bsonTypeClassMap  final

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

  private void <init>(org.bson.codecs.configuration.CodecRegistry, org.bson.codecs.BsonTypeCodecMap, org.bson.Transformer, org.bson.UuidRepresentation);
    descriptor: (Lorg/bson/codecs/configuration/CodecRegistry;Lorg/bson/codecs/BsonTypeCodecMap;Lorg/bson/Transformer;Lorg/bson/UuidRepresentation;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // org.bson.codecs.MapCodec this
        start local 1 // org.bson.codecs.configuration.CodecRegistry registry
        start local 2 // org.bson.codecs.BsonTypeCodecMap bsonTypeCodecMap
        start local 3 // org.bson.Transformer valueTransformer
        start local 4 // org.bson.UuidRepresentation uuidRepresentation
         0: .line 90
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 92
            aload 0 /* this */
            ldc "registry"
            aload 1 /* registry */
            invokestatic org.bson.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.bson.codecs.configuration.CodecRegistry
            putfield org.bson.codecs.MapCodec.registry:Lorg/bson/codecs/configuration/CodecRegistry;
         2: .line 93
            aload 0 /* this */
            aload 2 /* bsonTypeCodecMap */
            putfield org.bson.codecs.MapCodec.bsonTypeCodecMap:Lorg/bson/codecs/BsonTypeCodecMap;
         3: .line 94
            aload 0 /* this */
            aload 3 /* valueTransformer */
            ifnull 4
            aload 3 /* valueTransformer */
            goto 5
      StackMap locals: org.bson.codecs.MapCodec org.bson.codecs.configuration.CodecRegistry org.bson.codecs.BsonTypeCodecMap org.bson.Transformer org.bson.UuidRepresentation
      StackMap stack: org.bson.codecs.MapCodec
         4: new org.bson.codecs.MapCodec$1
            dup
            aload 0 /* this */
            invokespecial org.bson.codecs.MapCodec$1.<init>:(Lorg/bson/codecs/MapCodec;)V
      StackMap locals: org.bson.codecs.MapCodec org.bson.codecs.configuration.CodecRegistry org.bson.codecs.BsonTypeCodecMap org.bson.Transformer org.bson.UuidRepresentation
      StackMap stack: org.bson.codecs.MapCodec org.bson.Transformer
         5: putfield org.bson.codecs.MapCodec.valueTransformer:Lorg/bson/Transformer;
         6: .line 100
            aload 0 /* this */
            aload 4 /* uuidRepresentation */
            putfield org.bson.codecs.MapCodec.uuidRepresentation:Lorg/bson/UuidRepresentation;
         7: .line 101
            return
        end local 4 // org.bson.UuidRepresentation uuidRepresentation
        end local 3 // org.bson.Transformer valueTransformer
        end local 2 // org.bson.codecs.BsonTypeCodecMap bsonTypeCodecMap
        end local 1 // org.bson.codecs.configuration.CodecRegistry registry
        end local 0 // org.bson.codecs.MapCodec this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    8     0                this  Lorg/bson/codecs/MapCodec;
            0    8     1            registry  Lorg/bson/codecs/configuration/CodecRegistry;
            0    8     2    bsonTypeCodecMap  Lorg/bson/codecs/BsonTypeCodecMap;
            0    8     3    valueTransformer  Lorg/bson/Transformer;
            0    8     4  uuidRepresentation  Lorg/bson/UuidRepresentation;
    MethodParameters:
                    Name  Flags
      registry            final
      bsonTypeCodecMap    final
      valueTransformer    final
      uuidRepresentation  final

  public org.bson.codecs.Codec<java.util.Map<java.lang.String, java.lang.Object>> 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 // org.bson.codecs.MapCodec this
        start local 1 // org.bson.UuidRepresentation uuidRepresentation
         0: .line 105
            new org.bson.codecs.MapCodec
            dup
            aload 0 /* this */
            getfield org.bson.codecs.MapCodec.registry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 0 /* this */
            getfield org.bson.codecs.MapCodec.bsonTypeCodecMap:Lorg/bson/codecs/BsonTypeCodecMap;
            aload 0 /* this */
            getfield org.bson.codecs.MapCodec.valueTransformer:Lorg/bson/Transformer;
            aload 1 /* uuidRepresentation */
            invokespecial org.bson.codecs.MapCodec.<init>:(Lorg/bson/codecs/configuration/CodecRegistry;Lorg/bson/codecs/BsonTypeCodecMap;Lorg/bson/Transformer;Lorg/bson/UuidRepresentation;)V
            areturn
        end local 1 // org.bson.UuidRepresentation uuidRepresentation
        end local 0 // org.bson.codecs.MapCodec this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0                this  Lorg/bson/codecs/MapCodec;
            0    1     1  uuidRepresentation  Lorg/bson/UuidRepresentation;
    Signature: (Lorg/bson/UuidRepresentation;)Lorg/bson/codecs/Codec<Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;>;
    MethodParameters:
                    Name  Flags
      uuidRepresentation  final

  public void encode(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: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // org.bson.codecs.MapCodec this
        start local 1 // org.bson.BsonWriter writer
        start local 2 // java.util.Map map
        start local 3 // org.bson.codecs.EncoderContext encoderContext
         0: .line 110
            aload 1 /* writer */
            invokeinterface org.bson.BsonWriter.writeStartDocument:()V
         1: .line 111
            aload 2 /* map */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 5
      StackMap locals: org.bson.codecs.MapCodec 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 112
            aload 1 /* writer */
            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 113
            aload 0 /* this */
            aload 1 /* writer */
            aload 3 /* encoderContext */
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            invokevirtual org.bson.codecs.MapCodec.writeValue:(Lorg/bson/BsonWriter;Lorg/bson/codecs/EncoderContext;Ljava/lang/Object;)V
        end local 4 // java.util.Map$Entry entry
         5: .line 111
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 115
            aload 1 /* writer */
            invokeinterface org.bson.BsonWriter.writeEndDocument:()V
         7: .line 116
            return
        end local 3 // org.bson.codecs.EncoderContext encoderContext
        end local 2 // java.util.Map map
        end local 1 // org.bson.BsonWriter writer
        end local 0 // org.bson.codecs.MapCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lorg/bson/codecs/MapCodec;
            0    8     1          writer  Lorg/bson/BsonWriter;
            0    8     2             map  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
      writer          final
      map             final
      encoderContext  final

  public java.util.Map<java.lang.String, java.lang.Object> decode(org.bson.BsonReader, org.bson.codecs.DecoderContext);
    descriptor: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.bson.codecs.MapCodec this
        start local 1 // org.bson.BsonReader reader
        start local 2 // org.bson.codecs.DecoderContext decoderContext
         0: .line 120
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 3 /* map */
        start local 3 // java.util.Map map
         1: .line 122
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.readStartDocument:()V
         2: .line 123
            goto 5
         3: .line 124
      StackMap locals: java.util.Map
      StackMap stack:
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.readName:()Ljava/lang/String;
            astore 4 /* fieldName */
        start local 4 // java.lang.String fieldName
         4: .line 125
            aload 3 /* map */
            aload 4 /* fieldName */
            aload 0 /* this */
            aload 1 /* reader */
            aload 2 /* decoderContext */
            invokevirtual org.bson.codecs.MapCodec.readValue:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Ljava/lang/Object;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // java.lang.String fieldName
         5: .line 123
      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 128
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.readEndDocument:()V
         7: .line 129
            aload 3 /* map */
            areturn
        end local 3 // java.util.Map map
        end local 2 // org.bson.codecs.DecoderContext decoderContext
        end local 1 // org.bson.BsonReader reader
        end local 0 // org.bson.codecs.MapCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lorg/bson/codecs/MapCodec;
            0    8     1          reader  Lorg/bson/BsonReader;
            0    8     2  decoderContext  Lorg/bson/codecs/DecoderContext;
            1    8     3             map  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            4    5     4       fieldName  Ljava/lang/String;
    Signature: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    MethodParameters:
                Name  Flags
      reader          final
      decoderContext  final

  public java.lang.Class<java.util.Map<java.lang.String, java.lang.Object>> getEncoderClass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.codecs.MapCodec this
         0: .line 135
            ldc Ljava/util/Map;
            areturn
        end local 0 // org.bson.codecs.MapCodec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/codecs/MapCodec;
    Signature: ()Ljava/lang/Class<Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;>;

  private java.lang.Object readValue(org.bson.BsonReader, org.bson.codecs.DecoderContext);
    descriptor: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.bson.codecs.MapCodec this
        start local 1 // org.bson.BsonReader reader
        start local 2 // org.bson.codecs.DecoderContext decoderContext
         0: .line 139
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.getCurrentBsonType:()Lorg/bson/BsonType;
            astore 3 /* bsonType */
        start local 3 // org.bson.BsonType bsonType
         1: .line 140
            aload 3 /* bsonType */
            getstatic org.bson.BsonType.NULL:Lorg/bson/BsonType;
            if_acmpne 4
         2: .line 141
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.readNull:()V
         3: .line 142
            aconst_null
            areturn
         4: .line 143
      StackMap locals: org.bson.BsonType
      StackMap stack:
            aload 3 /* bsonType */
            getstatic org.bson.BsonType.ARRAY:Lorg/bson/BsonType;
            if_acmpne 6
         5: .line 144
            aload 2 /* decoderContext */
            aload 0 /* this */
            getfield org.bson.codecs.MapCodec.registry:Lorg/bson/codecs/configuration/CodecRegistry;
            ldc Ljava/util/List;
            invokeinterface org.bson.codecs.configuration.CodecRegistry.get:(Ljava/lang/Class;)Lorg/bson/codecs/Codec;
            aload 1 /* reader */
            invokevirtual org.bson.codecs.DecoderContext.decodeWithChildContext:(Lorg/bson/codecs/Decoder;Lorg/bson/BsonReader;)Ljava/lang/Object;
            areturn
         6: .line 145
      StackMap locals:
      StackMap stack:
            aload 3 /* bsonType */
            getstatic org.bson.BsonType.BINARY:Lorg/bson/BsonType;
            if_acmpne 18
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.peekBinarySize:()I
            bipush 16
            if_icmpne 18
         7: .line 146
            aload 0 /* this */
            getfield org.bson.codecs.MapCodec.bsonTypeCodecMap:Lorg/bson/codecs/BsonTypeCodecMap;
            aload 3 /* bsonType */
            invokevirtual org.bson.codecs.BsonTypeCodecMap.get:(Lorg/bson/BsonType;)Lorg/bson/codecs/Codec;
            astore 4 /* codec */
        start local 4 // org.bson.codecs.Codec codec
         8: .line 147
            aload 1 /* reader */
            invokeinterface org.bson.BsonReader.peekBinarySubType:()B
            tableswitch { // 3 - 4
                    3: 9
                    4: 14
              default: 17
          }
         9: .line 149
      StackMap locals: org.bson.codecs.Codec
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.codecs.MapCodec.uuidRepresentation:Lorg/bson/UuidRepresentation;
            getstatic org.bson.UuidRepresentation.JAVA_LEGACY:Lorg/bson/UuidRepresentation;
            if_acmpeq 12
        10: .line 150
            aload 0 /* this */
            getfield org.bson.codecs.MapCodec.uuidRepresentation:Lorg/bson/UuidRepresentation;
            getstatic org.bson.UuidRepresentation.C_SHARP_LEGACY:Lorg/bson/UuidRepresentation;
            if_acmpeq 12
        11: .line 151
            aload 0 /* this */
            getfield org.bson.codecs.MapCodec.uuidRepresentation:Lorg/bson/UuidRepresentation;
            getstatic org.bson.UuidRepresentation.PYTHON_LEGACY:Lorg/bson/UuidRepresentation;
            if_acmpne 17
        12: .line 152
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.codecs.MapCodec.registry: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 */
        13: .line 154
            goto 17
        14: .line 156
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.codecs.MapCodec.uuidRepresentation:Lorg/bson/UuidRepresentation;
            getstatic org.bson.UuidRepresentation.JAVA_LEGACY:Lorg/bson/UuidRepresentation;
            if_acmpeq 15
            aload 0 /* this */
            getfield org.bson.codecs.MapCodec.uuidRepresentation:Lorg/bson/UuidRepresentation;
            getstatic org.bson.UuidRepresentation.STANDARD:Lorg/bson/UuidRepresentation;
            if_acmpne 17
        15: .line 157
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.codecs.MapCodec.registry: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 */
        16: .line 159
            goto 17
        17: .line 164
      StackMap locals:
      StackMap stack:
            aload 2 /* decoderContext */
            aload 4 /* codec */
            aload 1 /* reader */
            invokevirtual org.bson.codecs.DecoderContext.decodeWithChildContext:(Lorg/bson/codecs/Decoder;Lorg/bson/BsonReader;)Ljava/lang/Object;
            areturn
        end local 4 // org.bson.codecs.Codec codec
        18: .line 166
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.codecs.MapCodec.valueTransformer:Lorg/bson/Transformer;
            aload 0 /* this */
            getfield org.bson.codecs.MapCodec.bsonTypeCodecMap:Lorg/bson/codecs/BsonTypeCodecMap;
            aload 3 /* 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;
            invokeinterface org.bson.Transformer.transform:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 3 // org.bson.BsonType bsonType
        end local 2 // org.bson.codecs.DecoderContext decoderContext
        end local 1 // org.bson.BsonReader reader
        end local 0 // org.bson.codecs.MapCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   19     0            this  Lorg/bson/codecs/MapCodec;
            0   19     1          reader  Lorg/bson/BsonReader;
            0   19     2  decoderContext  Lorg/bson/codecs/DecoderContext;
            1   19     3        bsonType  Lorg/bson/BsonType;
            8   18     4           codec  Lorg/bson/codecs/Codec<*>;
    MethodParameters:
                Name  Flags
      reader          final
      decoderContext  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=5, args_size=4
        start local 0 // org.bson.codecs.MapCodec this
        start local 1 // org.bson.BsonWriter writer
        start local 2 // org.bson.codecs.EncoderContext encoderContext
        start local 3 // java.lang.Object value
         0: .line 171
            aload 3 /* value */
            ifnonnull 3
         1: .line 172
            aload 1 /* writer */
            invokeinterface org.bson.BsonWriter.writeNull:()V
         2: .line 173
            goto 5
         3: .line 174
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.codecs.MapCodec.registry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 3 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            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
         4: .line 175
            aload 2 /* encoderContext */
            aload 4 /* codec */
            aload 1 /* writer */
            aload 3 /* value */
            invokevirtual org.bson.codecs.EncoderContext.encodeWithChildContext:(Lorg/bson/codecs/Encoder;Lorg/bson/BsonWriter;Ljava/lang/Object;)V
        end local 4 // org.bson.codecs.Codec codec
         5: .line 177
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Object value
        end local 2 // org.bson.codecs.EncoderContext encoderContext
        end local 1 // org.bson.BsonWriter writer
        end local 0 // org.bson.codecs.MapCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lorg/bson/codecs/MapCodec;
            0    6     1          writer  Lorg/bson/BsonWriter;
            0    6     2  encoderContext  Lorg/bson/codecs/EncoderContext;
            0    6     3           value  Ljava/lang/Object;
            4    5     4           codec  Lorg/bson/codecs/Codec;
    MethodParameters:
                Name  Flags
      writer          final
      encoderContext  final
      value           final

  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 org.bson.codecs.MapCodec.decode:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Ljava/util/Map;
            areturn
      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 java.util.Map
            aload 3
            invokevirtual org.bson.codecs.MapCodec.encode:(Lorg/bson/BsonWriter;Ljava/util/Map;Lorg/bson/codecs/EncoderContext;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Object;Lorg/bson/codecs/Codec<Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;>;Lorg/bson/codecs/OverridableUuidRepresentationCodec<Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;>;
SourceFile: "MapCodec.java"
NestMembers:
  org.bson.codecs.MapCodec$1
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  org.bson.codecs.MapCodec$1