class org.bson.json.JsonScanner
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.bson.json.JsonScanner
  super_class: java.lang.Object
{
  private final org.bson.json.JsonBuffer buffer;
    descriptor: Lorg/bson/json/JsonBuffer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  void <init>(org.bson.json.JsonBuffer);
    descriptor: (Lorg/bson/json/JsonBuffer;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.json.JsonScanner this
        start local 1 // org.bson.json.JsonBuffer buffer
         0: .line 32
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 33
            aload 0 /* this */
            aload 1 /* buffer */
            putfield org.bson.json.JsonScanner.buffer:Lorg/bson/json/JsonBuffer;
         2: .line 34
            return
        end local 1 // org.bson.json.JsonBuffer buffer
        end local 0 // org.bson.json.JsonScanner this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/bson/json/JsonScanner;
            0    3     1  buffer  Lorg/bson/json/JsonBuffer;
    MethodParameters:
        Name  Flags
      buffer  final

  void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bson.json.JsonScanner this
        start local 1 // java.lang.String json
         0: .line 37
            aload 0 /* this */
            new org.bson.json.JsonStringBuffer
            dup
            aload 1 /* json */
            invokespecial org.bson.json.JsonStringBuffer.<init>:(Ljava/lang/String;)V
            invokespecial org.bson.json.JsonScanner.<init>:(Lorg/bson/json/JsonBuffer;)V
         1: .line 38
            return
        end local 1 // java.lang.String json
        end local 0 // org.bson.json.JsonScanner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/json/JsonScanner;
            0    2     1  json  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      json  final

  void <init>(java.io.Reader);
    descriptor: (Ljava/io/Reader;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bson.json.JsonScanner this
        start local 1 // java.io.Reader reader
         0: .line 41
            aload 0 /* this */
            new org.bson.json.JsonStreamBuffer
            dup
            aload 1 /* reader */
            invokespecial org.bson.json.JsonStreamBuffer.<init>:(Ljava/io/Reader;)V
            invokespecial org.bson.json.JsonScanner.<init>:(Lorg/bson/json/JsonBuffer;)V
         1: .line 42
            return
        end local 1 // java.io.Reader reader
        end local 0 // org.bson.json.JsonScanner this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/bson/json/JsonScanner;
            0    2     1  reader  Ljava/io/Reader;
    MethodParameters:
        Name  Flags
      reader  final

  public void reset(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.json.JsonScanner this
        start local 1 // int markPos
         0: .line 45
            aload 0 /* this */
            getfield org.bson.json.JsonScanner.buffer:Lorg/bson/json/JsonBuffer;
            iload 1 /* markPos */
            invokeinterface org.bson.json.JsonBuffer.reset:(I)V
         1: .line 46
            return
        end local 1 // int markPos
        end local 0 // org.bson.json.JsonScanner this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/bson/json/JsonScanner;
            0    2     1  markPos  I
    MethodParameters:
         Name  Flags
      markPos  final

  public int mark();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.json.JsonScanner this
         0: .line 49
            aload 0 /* this */
            getfield org.bson.json.JsonScanner.buffer:Lorg/bson/json/JsonBuffer;
            invokeinterface org.bson.json.JsonBuffer.mark:()I
            ireturn
        end local 0 // org.bson.json.JsonScanner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonScanner;

  public void discard(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.json.JsonScanner this
        start local 1 // int markPos
         0: .line 53
            aload 0 /* this */
            getfield org.bson.json.JsonScanner.buffer:Lorg/bson/json/JsonBuffer;
            iload 1 /* markPos */
            invokeinterface org.bson.json.JsonBuffer.discard:(I)V
         1: .line 54
            return
        end local 1 // int markPos
        end local 0 // org.bson.json.JsonScanner this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/bson/json/JsonScanner;
            0    2     1  markPos  I
    MethodParameters:
         Name  Flags
      markPos  final

  public org.bson.json.JsonToken nextToken();
    descriptor: ()Lorg/bson/json/JsonToken;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // org.bson.json.JsonScanner this
         0: .line 65
            aload 0 /* this */
            getfield org.bson.json.JsonScanner.buffer:Lorg/bson/json/JsonBuffer;
            invokeinterface org.bson.json.JsonBuffer.read:()I
            istore 1 /* c */
        start local 1 // int c
         1: .line 66
            goto 3
         2: .line 67
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.json.JsonScanner.buffer:Lorg/bson/json/JsonBuffer;
            invokeinterface org.bson.json.JsonBuffer.read:()I
            istore 1 /* c */
         3: .line 66
      StackMap locals:
      StackMap stack:
            iload 1 /* c */
            iconst_m1
            if_icmpeq 4
            iload 1 /* c */
            invokestatic java.lang.Character.isWhitespace:(I)Z
            ifne 2
         4: .line 69
      StackMap locals:
      StackMap stack:
            iload 1 /* c */
            iconst_m1
            if_icmpne 6
         5: .line 70
            new org.bson.json.JsonToken
            dup
            getstatic org.bson.json.JsonTokenType.END_OF_FILE:Lorg/bson/json/JsonTokenType;
            ldc "<eof>"
            invokespecial org.bson.json.JsonToken.<init>:(Lorg/bson/json/JsonTokenType;Ljava/lang/Object;)V
            areturn
         6: .line 73
      StackMap locals:
      StackMap stack:
            iload 1 /* c */
            lookupswitch { // 11
                   34: 15
                   39: 15
                   40: 11
                   41: 12
                   44: 14
                   47: 16
                   58: 13
                   91: 9
                   93: 10
                  123: 7
                  125: 8
              default: 17
          }
         7: .line 75
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonToken
            dup
            getstatic org.bson.json.JsonTokenType.BEGIN_OBJECT:Lorg/bson/json/JsonTokenType;
            ldc "{"
            invokespecial org.bson.json.JsonToken.<init>:(Lorg/bson/json/JsonTokenType;Ljava/lang/Object;)V
            areturn
         8: .line 77
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonToken
            dup
            getstatic org.bson.json.JsonTokenType.END_OBJECT:Lorg/bson/json/JsonTokenType;
            ldc "}"
            invokespecial org.bson.json.JsonToken.<init>:(Lorg/bson/json/JsonTokenType;Ljava/lang/Object;)V
            areturn
         9: .line 79
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonToken
            dup
            getstatic org.bson.json.JsonTokenType.BEGIN_ARRAY:Lorg/bson/json/JsonTokenType;
            ldc "["
            invokespecial org.bson.json.JsonToken.<init>:(Lorg/bson/json/JsonTokenType;Ljava/lang/Object;)V
            areturn
        10: .line 81
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonToken
            dup
            getstatic org.bson.json.JsonTokenType.END_ARRAY:Lorg/bson/json/JsonTokenType;
            ldc "]"
            invokespecial org.bson.json.JsonToken.<init>:(Lorg/bson/json/JsonTokenType;Ljava/lang/Object;)V
            areturn
        11: .line 83
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonToken
            dup
            getstatic org.bson.json.JsonTokenType.LEFT_PAREN:Lorg/bson/json/JsonTokenType;
            ldc "("
            invokespecial org.bson.json.JsonToken.<init>:(Lorg/bson/json/JsonTokenType;Ljava/lang/Object;)V
            areturn
        12: .line 85
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonToken
            dup
            getstatic org.bson.json.JsonTokenType.RIGHT_PAREN:Lorg/bson/json/JsonTokenType;
            ldc ")"
            invokespecial org.bson.json.JsonToken.<init>:(Lorg/bson/json/JsonTokenType;Ljava/lang/Object;)V
            areturn
        13: .line 87
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonToken
            dup
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            ldc ":"
            invokespecial org.bson.json.JsonToken.<init>:(Lorg/bson/json/JsonTokenType;Ljava/lang/Object;)V
            areturn
        14: .line 89
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonToken
            dup
            getstatic org.bson.json.JsonTokenType.COMMA:Lorg/bson/json/JsonTokenType;
            ldc ","
            invokespecial org.bson.json.JsonToken.<init>:(Lorg/bson/json/JsonTokenType;Ljava/lang/Object;)V
            areturn
        15: .line 92
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* c */
            i2c
            invokevirtual org.bson.json.JsonScanner.scanString:(C)Lorg/bson/json/JsonToken;
            areturn
        16: .line 94
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonScanner.scanRegularExpression:()Lorg/bson/json/JsonToken;
            areturn
        17: .line 96
      StackMap locals:
      StackMap stack:
            iload 1 /* c */
            bipush 45
            if_icmpeq 18
            iload 1 /* c */
            invokestatic java.lang.Character.isDigit:(I)Z
            ifeq 19
        18: .line 97
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* c */
            i2c
            invokevirtual org.bson.json.JsonScanner.scanNumber:(C)Lorg/bson/json/JsonToken;
            areturn
        19: .line 98
      StackMap locals:
      StackMap stack:
            iload 1 /* c */
            bipush 36
            if_icmpeq 20
            iload 1 /* c */
            bipush 95
            if_icmpeq 20
            iload 1 /* c */
            invokestatic java.lang.Character.isLetter:(I)Z
            ifeq 21
        20: .line 99
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* c */
            i2c
            invokevirtual org.bson.json.JsonScanner.scanUnquotedString:(C)Lorg/bson/json/JsonToken;
            areturn
        21: .line 101
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.json.JsonScanner.buffer:Lorg/bson/json/JsonBuffer;
            invokeinterface org.bson.json.JsonBuffer.getPosition:()I
            istore 2 /* position */
        start local 2 // int position
        22: .line 102
            aload 0 /* this */
            getfield org.bson.json.JsonScanner.buffer:Lorg/bson/json/JsonBuffer;
            iload 1 /* c */
            invokeinterface org.bson.json.JsonBuffer.unread:(I)V
        23: .line 103
            new org.bson.json.JsonParseException
            dup
            ldc "Invalid JSON input. Position: %d. Character: '%c'."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            iload 2 /* position */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iload 1 /* c */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        end local 2 // int position
        end local 1 // int c
        end local 0 // org.bson.json.JsonScanner this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   24     0      this  Lorg/bson/json/JsonScanner;
            1   24     1         c  I
           22   24     2  position  I

  private org.bson.json.JsonToken scanRegularExpression();
    descriptor: ()Lorg/bson/json/JsonToken;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=1
        start local 0 // org.bson.json.JsonScanner this
         0: .line 122
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* patternBuilder */
        start local 1 // java.lang.StringBuilder patternBuilder
         1: .line 123
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* optionsBuilder */
        start local 2 // java.lang.StringBuilder optionsBuilder
         2: .line 124
            getstatic org.bson.json.JsonScanner$RegularExpressionState.IN_PATTERN:Lorg/bson/json/JsonScanner$RegularExpressionState;
            astore 3 /* state */
        start local 3 // org.bson.json.JsonScanner$RegularExpressionState state
         3: .line 126
      StackMap locals: java.lang.StringBuilder java.lang.StringBuilder org.bson.json.JsonScanner$RegularExpressionState
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.json.JsonScanner.buffer:Lorg/bson/json/JsonBuffer;
            invokeinterface org.bson.json.JsonBuffer.read:()I
            istore 4 /* c */
        start local 4 // int c
         4: .line 127
            invokestatic org.bson.json.JsonScanner.$SWITCH_TABLE$org$bson$json$JsonScanner$RegularExpressionState:()[I
            aload 3 /* state */
            invokevirtual org.bson.json.JsonScanner$RegularExpressionState.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 5
                    2: 14
                    3: 16
              default: 26
          }
         5: .line 129
      StackMap locals: int
      StackMap stack:
            iload 4 /* c */
            lookupswitch { // 3
                   -1: 6
                   47: 8
                   92: 10
              default: 12
          }
         6: .line 131
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$RegularExpressionState.INVALID:Lorg/bson/json/JsonScanner$RegularExpressionState;
            astore 3 /* state */
         7: .line 132
            goto 26
         8: .line 134
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$RegularExpressionState.IN_OPTIONS:Lorg/bson/json/JsonScanner$RegularExpressionState;
            astore 3 /* state */
         9: .line 135
            goto 26
        10: .line 137
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$RegularExpressionState.IN_ESCAPE_SEQUENCE:Lorg/bson/json/JsonScanner$RegularExpressionState;
            astore 3 /* state */
        11: .line 138
            goto 26
        12: .line 140
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$RegularExpressionState.IN_PATTERN:Lorg/bson/json/JsonScanner$RegularExpressionState;
            astore 3 /* state */
        13: .line 143
            goto 26
        14: .line 145
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$RegularExpressionState.IN_PATTERN:Lorg/bson/json/JsonScanner$RegularExpressionState;
            astore 3 /* state */
        15: .line 146
            goto 26
        16: .line 148
      StackMap locals:
      StackMap stack:
            iload 4 /* c */
            lookupswitch { // 9
                   -1: 19
                   41: 19
                   44: 19
                   93: 19
                  105: 17
                  109: 17
                  115: 17
                  120: 17
                  125: 19
              default: 21
          }
        17: .line 153
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$RegularExpressionState.IN_OPTIONS:Lorg/bson/json/JsonScanner$RegularExpressionState;
            astore 3 /* state */
        18: .line 154
            goto 26
        19: .line 160
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$RegularExpressionState.DONE:Lorg/bson/json/JsonScanner$RegularExpressionState;
            astore 3 /* state */
        20: .line 161
            goto 26
        21: .line 163
      StackMap locals:
      StackMap stack:
            iload 4 /* c */
            invokestatic java.lang.Character.isWhitespace:(I)Z
            ifeq 24
        22: .line 164
            getstatic org.bson.json.JsonScanner$RegularExpressionState.DONE:Lorg/bson/json/JsonScanner$RegularExpressionState;
            astore 3 /* state */
        23: .line 165
            goto 26
        24: .line 166
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$RegularExpressionState.INVALID:Lorg/bson/json/JsonScanner$RegularExpressionState;
            astore 3 /* state */
        25: .line 170
            goto 26
        26: .line 172
      StackMap locals:
      StackMap stack:
            invokestatic org.bson.json.JsonScanner.$SWITCH_TABLE$org$bson$json$JsonScanner$RegularExpressionState:()[I
        27: .line 175
            aload 3 /* state */
            invokevirtual org.bson.json.JsonScanner$RegularExpressionState.ordinal:()I
            iaload
            tableswitch { // 4 - 5
                    4: 28
                    5: 32
              default: 33
          }
        28: .line 177
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.json.JsonScanner.buffer:Lorg/bson/json/JsonBuffer;
            iload 4 /* c */
            invokeinterface org.bson.json.JsonBuffer.unread:(I)V
        29: .line 179
            new org.bson.BsonRegularExpression
            dup
            aload 1 /* patternBuilder */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* optionsBuilder */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.bson.BsonRegularExpression.<init>:(Ljava/lang/String;Ljava/lang/String;)V
        30: .line 178
            astore 5 /* regex */
        start local 5 // org.bson.BsonRegularExpression regex
        31: .line 180
            new org.bson.json.JsonToken
            dup
            getstatic org.bson.json.JsonTokenType.REGULAR_EXPRESSION:Lorg/bson/json/JsonTokenType;
            aload 5 /* regex */
            invokespecial org.bson.json.JsonToken.<init>:(Lorg/bson/json/JsonTokenType;Ljava/lang/Object;)V
            areturn
        end local 5 // org.bson.BsonRegularExpression regex
        32: .line 182
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonParseException
            dup
            ldc "Invalid JSON regular expression. Position: %d."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.bson.json.JsonScanner.buffer:Lorg/bson/json/JsonBuffer;
            invokeinterface org.bson.json.JsonBuffer.getPosition:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        33: .line 184
      StackMap locals:
      StackMap stack:
            invokestatic org.bson.json.JsonScanner.$SWITCH_TABLE$org$bson$json$JsonScanner$RegularExpressionState:()[I
            aload 3 /* state */
            invokevirtual org.bson.json.JsonScanner$RegularExpressionState.ordinal:()I
            iaload
            tableswitch { // 3 - 3
                    3: 34
              default: 37
          }
        34: .line 186
      StackMap locals:
      StackMap stack:
            iload 4 /* c */
            bipush 47
            if_icmpeq 3
        35: .line 187
            aload 2 /* optionsBuilder */
            iload 4 /* c */
            i2c
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        36: .line 189
            goto 3
        37: .line 191
      StackMap locals:
      StackMap stack:
            aload 1 /* patternBuilder */
            iload 4 /* c */
            i2c
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 4 // int c
        38: .line 125
            goto 3
        end local 3 // org.bson.json.JsonScanner$RegularExpressionState state
        end local 2 // java.lang.StringBuilder optionsBuilder
        end local 1 // java.lang.StringBuilder patternBuilder
        end local 0 // org.bson.json.JsonScanner this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   39     0            this  Lorg/bson/json/JsonScanner;
            1   39     1  patternBuilder  Ljava/lang/StringBuilder;
            2   39     2  optionsBuilder  Ljava/lang/StringBuilder;
            3   39     3           state  Lorg/bson/json/JsonScanner$RegularExpressionState;
            4   38     4               c  I
           31   32     5           regex  Lorg/bson/BsonRegularExpression;

  private org.bson.json.JsonToken scanUnquotedString(char);
    descriptor: (C)Lorg/bson/json/JsonToken;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.bson.json.JsonScanner this
        start local 1 // char firstChar
         0: .line 204
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         1: .line 205
            aload 2 /* sb */
            iload 1 /* firstChar */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         2: .line 206
            aload 0 /* this */
            getfield org.bson.json.JsonScanner.buffer:Lorg/bson/json/JsonBuffer;
            invokeinterface org.bson.json.JsonBuffer.read:()I
            istore 3 /* c */
        start local 3 // int c
         3: .line 207
            goto 6
         4: .line 208
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 2 /* sb */
            iload 3 /* c */
            i2c
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         5: .line 209
            aload 0 /* this */
            getfield org.bson.json.JsonScanner.buffer:Lorg/bson/json/JsonBuffer;
            invokeinterface org.bson.json.JsonBuffer.read:()I
            istore 3 /* c */
         6: .line 207
      StackMap locals:
      StackMap stack:
            iload 3 /* c */
            bipush 36
            if_icmpeq 4
            iload 3 /* c */
            bipush 95
            if_icmpeq 4
            iload 3 /* c */
            invokestatic java.lang.Character.isLetterOrDigit:(I)Z
            ifne 4
         7: .line 211
            aload 0 /* this */
            getfield org.bson.json.JsonScanner.buffer:Lorg/bson/json/JsonBuffer;
            iload 3 /* c */
            invokeinterface org.bson.json.JsonBuffer.unread:(I)V
         8: .line 212
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* lexeme */
        start local 4 // java.lang.String lexeme
         9: .line 213
            new org.bson.json.JsonToken
            dup
            getstatic org.bson.json.JsonTokenType.UNQUOTED_STRING:Lorg/bson/json/JsonTokenType;
            aload 4 /* lexeme */
            invokespecial org.bson.json.JsonToken.<init>:(Lorg/bson/json/JsonTokenType;Ljava/lang/Object;)V
            areturn
        end local 4 // java.lang.String lexeme
        end local 3 // int c
        end local 2 // java.lang.StringBuilder sb
        end local 1 // char firstChar
        end local 0 // org.bson.json.JsonScanner this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lorg/bson/json/JsonScanner;
            0   10     1  firstChar  C
            1   10     2         sb  Ljava/lang/StringBuilder;
            3   10     3          c  I
            9   10     4     lexeme  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      firstChar  final

  private org.bson.json.JsonToken scanNumber(char);
    descriptor: (C)Lorg/bson/json/JsonToken;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // org.bson.json.JsonScanner this
        start local 1 // char firstChar
         0: .line 237
            iload 1 /* firstChar */
            istore 2 /* c */
        start local 2 // int c
         1: .line 238
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* sb */
        start local 3 // java.lang.StringBuilder sb
         2: .line 239
            aload 3 /* sb */
            iload 1 /* firstChar */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         3: .line 243
            iload 2 /* c */
            tableswitch { // 45 - 48
                   45: 4
                   46: 8
                   47: 8
                   48: 6
              default: 8
          }
         4: .line 245
      StackMap locals: int java.lang.StringBuilder
      StackMap stack:
            getstatic org.bson.json.JsonScanner$NumberState.SAW_LEADING_MINUS:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        start local 4 // org.bson.json.JsonScanner$NumberState state
         5: .line 246
            goto 9
        end local 4 // org.bson.json.JsonScanner$NumberState state
         6: .line 248
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$NumberState.SAW_LEADING_ZERO:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        start local 4 // org.bson.json.JsonScanner$NumberState state
         7: .line 249
            goto 9
        end local 4 // org.bson.json.JsonScanner$NumberState state
         8: .line 251
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$NumberState.SAW_INTEGER_DIGITS:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        start local 4 // org.bson.json.JsonScanner$NumberState state
         9: .line 255
      StackMap locals: org.bson.json.JsonScanner$NumberState
      StackMap stack:
            getstatic org.bson.json.JsonTokenType.INT64:Lorg/bson/json/JsonTokenType;
            astore 5 /* type */
        start local 5 // org.bson.json.JsonTokenType type
        10: .line 259
      StackMap locals: org.bson.json.JsonTokenType
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.json.JsonScanner.buffer:Lorg/bson/json/JsonBuffer;
            invokeinterface org.bson.json.JsonBuffer.read:()I
            istore 2 /* c */
        11: .line 260
            invokestatic org.bson.json.JsonScanner.$SWITCH_TABLE$org$bson$json$JsonScanner$NumberState:()[I
            aload 4 /* state */
            invokevirtual org.bson.json.JsonScanner$NumberState.ordinal:()I
            iaload
            tableswitch { // 1 - 9
                    1: 12
                    2: 22
                    3: 37
                    4: 52
                    5: 58
                    6: 71
                    7: 80
                    8: 85
                    9: 96
              default: 118
          }
        12: .line 262
      StackMap locals:
      StackMap stack:
            iload 2 /* c */
            lookupswitch { // 2
                   48: 13
                   73: 15
              default: 17
          }
        13: .line 264
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$NumberState.SAW_LEADING_ZERO:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        14: .line 265
            goto 118
        15: .line 267
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$NumberState.SAW_MINUS_I:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        16: .line 268
            goto 118
        17: .line 270
      StackMap locals:
      StackMap stack:
            iload 2 /* c */
            invokestatic java.lang.Character.isDigit:(I)Z
            ifeq 20
        18: .line 271
            getstatic org.bson.json.JsonScanner$NumberState.SAW_INTEGER_DIGITS:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        19: .line 272
            goto 118
        20: .line 273
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$NumberState.INVALID:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        21: .line 277
            goto 118
        22: .line 279
      StackMap locals:
      StackMap stack:
            iload 2 /* c */
            lookupswitch { // 8
                   -1: 27
                   41: 27
                   44: 27
                   46: 23
                   69: 25
                   93: 27
                  101: 25
                  125: 27
              default: 29
          }
        23: .line 281
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$NumberState.SAW_DECIMAL_POINT:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        24: .line 282
            goto 118
        25: .line 285
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$NumberState.SAW_EXPONENT_LETTER:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        26: .line 286
            goto 118
        27: .line 292
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$NumberState.DONE:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        28: .line 293
            goto 118
        29: .line 295
      StackMap locals:
      StackMap stack:
            iload 2 /* c */
            invokestatic java.lang.Character.isDigit:(I)Z
            ifeq 32
        30: .line 296
            getstatic org.bson.json.JsonScanner$NumberState.SAW_INTEGER_DIGITS:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        31: .line 297
            goto 118
      StackMap locals:
      StackMap stack:
        32: iload 2 /* c */
            invokestatic java.lang.Character.isWhitespace:(I)Z
            ifeq 35
        33: .line 298
            getstatic org.bson.json.JsonScanner$NumberState.DONE:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        34: .line 299
            goto 118
        35: .line 300
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$NumberState.INVALID:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        36: .line 304
            goto 118
        37: .line 306
      StackMap locals:
      StackMap stack:
            iload 2 /* c */
            lookupswitch { // 8
                   -1: 42
                   41: 42
                   44: 42
                   46: 38
                   69: 40
                   93: 42
                  101: 40
                  125: 42
              default: 44
          }
        38: .line 308
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$NumberState.SAW_DECIMAL_POINT:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        39: .line 309
            goto 118
        40: .line 312
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$NumberState.SAW_EXPONENT_LETTER:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        41: .line 313
            goto 118
        42: .line 319
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$NumberState.DONE:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        43: .line 320
            goto 118
        44: .line 322
      StackMap locals:
      StackMap stack:
            iload 2 /* c */
            invokestatic java.lang.Character.isDigit:(I)Z
            ifeq 47
        45: .line 323
            getstatic org.bson.json.JsonScanner$NumberState.SAW_INTEGER_DIGITS:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        46: .line 324
            goto 118
      StackMap locals:
      StackMap stack:
        47: iload 2 /* c */
            invokestatic java.lang.Character.isWhitespace:(I)Z
            ifeq 50
        48: .line 325
            getstatic org.bson.json.JsonScanner$NumberState.DONE:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        49: .line 326
            goto 118
        50: .line 327
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$NumberState.INVALID:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        51: .line 331
            goto 118
        52: .line 333
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonTokenType.DOUBLE:Lorg/bson/json/JsonTokenType;
            astore 5 /* type */
        53: .line 334
            iload 2 /* c */
            invokestatic java.lang.Character.isDigit:(I)Z
            ifeq 56
        54: .line 335
            getstatic org.bson.json.JsonScanner$NumberState.SAW_FRACTION_DIGITS:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        55: .line 336
            goto 118
        56: .line 337
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$NumberState.INVALID:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        57: .line 339
            goto 118
        58: .line 341
      StackMap locals:
      StackMap stack:
            iload 2 /* c */
            lookupswitch { // 7
                   -1: 61
                   41: 61
                   44: 61
                   69: 59
                   93: 61
                  101: 59
                  125: 61
              default: 63
          }
        59: .line 344
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$NumberState.SAW_EXPONENT_LETTER:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        60: .line 345
            goto 118
        61: .line 351
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$NumberState.DONE:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        62: .line 352
            goto 118
        63: .line 354
      StackMap locals:
      StackMap stack:
            iload 2 /* c */
            invokestatic java.lang.Character.isDigit:(I)Z
            ifeq 66
        64: .line 355
            getstatic org.bson.json.JsonScanner$NumberState.SAW_FRACTION_DIGITS:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        65: .line 356
            goto 118
      StackMap locals:
      StackMap stack:
        66: iload 2 /* c */
            invokestatic java.lang.Character.isWhitespace:(I)Z
            ifeq 69
        67: .line 357
            getstatic org.bson.json.JsonScanner$NumberState.DONE:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        68: .line 358
            goto 118
        69: .line 359
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$NumberState.INVALID:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        70: .line 363
            goto 118
        71: .line 365
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonTokenType.DOUBLE:Lorg/bson/json/JsonTokenType;
            astore 5 /* type */
        72: .line 366
            iload 2 /* c */
            tableswitch { // 43 - 45
                   43: 73
                   44: 75
                   45: 73
              default: 75
          }
        73: .line 369
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$NumberState.SAW_EXPONENT_SIGN:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        74: .line 370
            goto 118
        75: .line 372
      StackMap locals:
      StackMap stack:
            iload 2 /* c */
            invokestatic java.lang.Character.isDigit:(I)Z
            ifeq 78
        76: .line 373
            getstatic org.bson.json.JsonScanner$NumberState.SAW_EXPONENT_DIGITS:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        77: .line 374
            goto 118
        78: .line 375
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$NumberState.INVALID:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        79: .line 379
            goto 118
        80: .line 381
      StackMap locals:
      StackMap stack:
            iload 2 /* c */
            invokestatic java.lang.Character.isDigit:(I)Z
            ifeq 83
        81: .line 382
            getstatic org.bson.json.JsonScanner$NumberState.SAW_EXPONENT_DIGITS:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        82: .line 383
            goto 118
        83: .line 384
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$NumberState.INVALID:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        84: .line 386
            goto 118
        85: .line 388
      StackMap locals:
      StackMap stack:
            iload 2 /* c */
            lookupswitch { // 4
                   41: 86
                   44: 86
                   93: 86
                  125: 86
              default: 88
          }
        86: .line 393
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$NumberState.DONE:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        87: .line 394
            goto 118
        88: .line 396
      StackMap locals:
      StackMap stack:
            iload 2 /* c */
            invokestatic java.lang.Character.isDigit:(I)Z
            ifeq 91
        89: .line 397
            getstatic org.bson.json.JsonScanner$NumberState.SAW_EXPONENT_DIGITS:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        90: .line 398
            goto 118
      StackMap locals:
      StackMap stack:
        91: iload 2 /* c */
            invokestatic java.lang.Character.isWhitespace:(I)Z
            ifeq 94
        92: .line 399
            getstatic org.bson.json.JsonScanner$NumberState.DONE:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        93: .line 400
            goto 118
        94: .line 401
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$NumberState.INVALID:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        95: .line 405
            goto 118
        96: .line 407
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 6 /* sawMinusInfinity */
        start local 6 // boolean sawMinusInfinity
        97: .line 408
            bipush 7
            newarray 5
            dup
            iconst_0
            bipush 110
            castore
            dup
            iconst_1
            bipush 102
            castore
            dup
            iconst_2
            bipush 105
            castore
            dup
            iconst_3
            bipush 110
            castore
            dup
            iconst_4
            bipush 105
            castore
            dup
            iconst_5
            bipush 116
            castore
            dup
            bipush 6
            bipush 121
            castore
            astore 7 /* nfinity */
        start local 7 // char[] nfinity
        98: .line 409
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        99: goto 106
       100: .line 410
      StackMap locals: int char[] int
      StackMap stack:
            iload 2 /* c */
            aload 7 /* nfinity */
            iload 8 /* i */
            caload
            if_icmpeq 103
       101: .line 411
            iconst_0
            istore 6 /* sawMinusInfinity */
       102: .line 412
            goto 107
       103: .line 414
      StackMap locals:
      StackMap stack:
            aload 3 /* sb */
            iload 2 /* c */
            i2c
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
       104: .line 415
            aload 0 /* this */
            getfield org.bson.json.JsonScanner.buffer:Lorg/bson/json/JsonBuffer;
            invokeinterface org.bson.json.JsonBuffer.read:()I
            istore 2 /* c */
       105: .line 409
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
       106: iload 8 /* i */
            aload 7 /* nfinity */
            arraylength
            if_icmplt 100
        end local 8 // int i
       107: .line 417
      StackMap locals:
      StackMap stack:
            iload 6 /* sawMinusInfinity */
            ifeq 117
       108: .line 418
            getstatic org.bson.json.JsonTokenType.DOUBLE:Lorg/bson/json/JsonTokenType;
            astore 5 /* type */
       109: .line 419
            iload 2 /* c */
            lookupswitch { // 5
                   -1: 110
                   41: 110
                   44: 110
                   93: 110
                  125: 110
              default: 112
          }
       110: .line 425
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$NumberState.DONE:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
       111: .line 426
            goto 118
       112: .line 428
      StackMap locals:
      StackMap stack:
            iload 2 /* c */
            invokestatic java.lang.Character.isWhitespace:(I)Z
            ifeq 115
       113: .line 429
            getstatic org.bson.json.JsonScanner$NumberState.DONE:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
       114: .line 430
            goto 118
       115: .line 431
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$NumberState.INVALID:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
       116: .line 435
            goto 118
       117: .line 436
      StackMap locals:
      StackMap stack:
            getstatic org.bson.json.JsonScanner$NumberState.INVALID:Lorg/bson/json/JsonScanner$NumberState;
            astore 4 /* state */
        end local 7 // char[] nfinity
        end local 6 // boolean sawMinusInfinity
       118: .line 438
      StackMap locals:
      StackMap stack:
            invokestatic org.bson.json.JsonScanner.$SWITCH_TABLE$org$bson$json$JsonScanner$NumberState:()[I
       119: .line 442
            aload 4 /* state */
            invokevirtual org.bson.json.JsonScanner$NumberState.ordinal:()I
            iaload
            tableswitch { // 10 - 11
                   10: 121
                   11: 120
              default: 129
          }
       120: .line 444
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonParseException
            dup
            ldc "Invalid JSON number"
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;)V
            athrow
       121: .line 446
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.json.JsonScanner.buffer:Lorg/bson/json/JsonBuffer;
            iload 2 /* c */
            invokeinterface org.bson.json.JsonBuffer.unread:(I)V
       122: .line 447
            aload 3 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* lexeme */
        start local 6 // java.lang.String lexeme
       123: .line 448
            aload 5 /* type */
            getstatic org.bson.json.JsonTokenType.DOUBLE:Lorg/bson/json/JsonTokenType;
            if_acmpne 125
       124: .line 449
            new org.bson.json.JsonToken
            dup
            getstatic org.bson.json.JsonTokenType.DOUBLE:Lorg/bson/json/JsonTokenType;
            aload 6 /* lexeme */
            invokestatic java.lang.Double.parseDouble:(Ljava/lang/String;)D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            invokespecial org.bson.json.JsonToken.<init>:(Lorg/bson/json/JsonTokenType;Ljava/lang/Object;)V
            areturn
       125: .line 451
      StackMap locals: java.lang.String
      StackMap stack:
            aload 6 /* lexeme */
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            lstore 7 /* value */
        start local 7 // long value
       126: .line 452
            lload 7 /* value */
            ldc -2147483648
            lcmp
            iflt 127
            lload 7 /* value */
            ldc 2147483647
            lcmp
            ifle 128
       127: .line 453
      StackMap locals: long
      StackMap stack:
            new org.bson.json.JsonToken
            dup
            getstatic org.bson.json.JsonTokenType.INT64:Lorg/bson/json/JsonTokenType;
            lload 7 /* value */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokespecial org.bson.json.JsonToken.<init>:(Lorg/bson/json/JsonTokenType;Ljava/lang/Object;)V
            areturn
       128: .line 455
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonToken
            dup
            getstatic org.bson.json.JsonTokenType.INT32:Lorg/bson/json/JsonTokenType;
            lload 7 /* value */
            l2i
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokespecial org.bson.json.JsonToken.<init>:(Lorg/bson/json/JsonTokenType;Ljava/lang/Object;)V
            areturn
        end local 7 // long value
        end local 6 // java.lang.String lexeme
       129: .line 459
      StackMap locals:
      StackMap stack:
            aload 3 /* sb */
            iload 2 /* c */
            i2c
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
       130: .line 258
            goto 10
        end local 5 // org.bson.json.JsonTokenType type
        end local 4 // org.bson.json.JsonScanner$NumberState state
        end local 3 // java.lang.StringBuilder sb
        end local 2 // int c
        end local 1 // char firstChar
        end local 0 // org.bson.json.JsonScanner this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0  131     0              this  Lorg/bson/json/JsonScanner;
            0  131     1         firstChar  C
            1  131     2                 c  I
            2  131     3                sb  Ljava/lang/StringBuilder;
            5    6     4             state  Lorg/bson/json/JsonScanner$NumberState;
            7    8     4             state  Lorg/bson/json/JsonScanner$NumberState;
            9  131     4             state  Lorg/bson/json/JsonScanner$NumberState;
           10  131     5              type  Lorg/bson/json/JsonTokenType;
           97  118     6  sawMinusInfinity  Z
           98  118     7           nfinity  [C
           99  107     8                 i  I
          123  129     6            lexeme  Ljava/lang/String;
          126  129     7             value  J
    MethodParameters:
           Name  Flags
      firstChar  final

  private org.bson.json.JsonToken scanString(char);
    descriptor: (C)Lorg/bson/json/JsonToken;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=9, args_size=2
        start local 0 // org.bson.json.JsonScanner this
        start local 1 // char quoteCharacter
         0: .line 474
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         1: .line 477
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.json.JsonScanner.buffer:Lorg/bson/json/JsonBuffer;
            invokeinterface org.bson.json.JsonBuffer.read:()I
            istore 3 /* c */
        start local 3 // int c
         2: .line 478
            iload 3 /* c */
            tableswitch { // 92 - 92
                   92: 3
              default: 32
          }
         3: .line 480
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.json.JsonScanner.buffer:Lorg/bson/json/JsonBuffer;
            invokeinterface org.bson.json.JsonBuffer.read:()I
            istore 3 /* c */
         4: .line 481
            iload 3 /* c */
            lookupswitch { // 10
                   34: 7
                   39: 5
                   47: 11
                   92: 9
                   98: 13
                  102: 15
                  110: 17
                  114: 19
                  116: 21
                  117: 23
              default: 31
          }
         5: .line 483
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            bipush 39
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         6: .line 484
            goto 36
         7: .line 486
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            bipush 34
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         8: .line 487
            goto 36
         9: .line 489
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            bipush 92
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        10: .line 490
            goto 36
        11: .line 492
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            bipush 47
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        12: .line 493
            goto 36
        13: .line 495
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            bipush 8
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        14: .line 496
            goto 36
        15: .line 498
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            bipush 12
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        16: .line 499
            goto 36
        17: .line 501
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        18: .line 502
            goto 36
        19: .line 504
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            bipush 13
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        20: .line 505
            goto 36
        21: .line 507
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            bipush 9
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        22: .line 508
            goto 36
        23: .line 510
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.json.JsonScanner.buffer:Lorg/bson/json/JsonBuffer;
            invokeinterface org.bson.json.JsonBuffer.read:()I
            istore 4 /* u1 */
        start local 4 // int u1
        24: .line 511
            aload 0 /* this */
            getfield org.bson.json.JsonScanner.buffer:Lorg/bson/json/JsonBuffer;
            invokeinterface org.bson.json.JsonBuffer.read:()I
            istore 5 /* u2 */
        start local 5 // int u2
        25: .line 512
            aload 0 /* this */
            getfield org.bson.json.JsonScanner.buffer:Lorg/bson/json/JsonBuffer;
            invokeinterface org.bson.json.JsonBuffer.read:()I
            istore 6 /* u3 */
        start local 6 // int u3
        26: .line 513
            aload 0 /* this */
            getfield org.bson.json.JsonScanner.buffer:Lorg/bson/json/JsonBuffer;
            invokeinterface org.bson.json.JsonBuffer.read:()I
            istore 7 /* u4 */
        start local 7 // int u4
        27: .line 514
            iload 7 /* u4 */
            iconst_m1
            if_icmpeq 36
        28: .line 515
            new java.lang.String
            dup
            iconst_4
            newarray 5
            dup
            iconst_0
            iload 4 /* u1 */
            i2c
            castore
            dup
            iconst_1
            iload 5 /* u2 */
            i2c
            castore
            dup
            iconst_2
            iload 6 /* u3 */
            i2c
            castore
            dup
            iconst_3
            iload 7 /* u4 */
            i2c
            castore
            invokespecial java.lang.String.<init>:([C)V
            astore 8 /* hex */
        start local 8 // java.lang.String hex
        29: .line 516
            aload 2 /* sb */
            aload 8 /* hex */
            bipush 16
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;I)I
            i2c
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 8 // java.lang.String hex
        30: .line 518
            goto 36
        end local 7 // int u4
        end local 6 // int u3
        end local 5 // int u2
        end local 4 // int u1
        31: .line 520
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonParseException
            dup
            ldc "Invalid escape sequence in JSON string '\\%c'."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 3 /* c */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        32: .line 525
      StackMap locals:
      StackMap stack:
            iload 3 /* c */
            iload 1 /* quoteCharacter */
            if_icmpne 34
        33: .line 526
            new org.bson.json.JsonToken
            dup
            getstatic org.bson.json.JsonTokenType.STRING:Lorg/bson/json/JsonTokenType;
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.bson.json.JsonToken.<init>:(Lorg/bson/json/JsonTokenType;Ljava/lang/Object;)V
            areturn
        34: .line 528
      StackMap locals:
      StackMap stack:
            iload 3 /* c */
            iconst_m1
            if_icmpeq 36
        35: .line 529
            aload 2 /* sb */
            iload 3 /* c */
            i2c
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        36: .line 532
      StackMap locals:
      StackMap stack:
            iload 3 /* c */
            iconst_m1
            if_icmpne 1
        37: .line 533
            new org.bson.json.JsonParseException
            dup
            ldc "End of file in JSON string."
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // int c
        end local 2 // java.lang.StringBuilder sb
        end local 1 // char quoteCharacter
        end local 0 // org.bson.json.JsonScanner this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   38     0            this  Lorg/bson/json/JsonScanner;
            0   38     1  quoteCharacter  C
            1   38     2              sb  Ljava/lang/StringBuilder;
            2   38     3               c  I
           24   31     4              u1  I
           25   31     5              u2  I
           26   31     6              u3  I
           27   31     7              u4  I
           29   30     8             hex  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      quoteCharacter  final

  static int[] $SWITCH_TABLE$org$bson$json$JsonScanner$RegularExpressionState();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 28
            getstatic org.bson.json.JsonScanner.$SWITCH_TABLE$org$bson$json$JsonScanner$RegularExpressionState:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.bson.json.JsonScanner$RegularExpressionState.values:()[Lorg/bson/json/JsonScanner$RegularExpressionState;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.bson.json.JsonScanner$RegularExpressionState.DONE:Lorg/bson/json/JsonScanner$RegularExpressionState;
            invokevirtual org.bson.json.JsonScanner$RegularExpressionState.ordinal:()I
            iconst_4
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.bson.json.JsonScanner$RegularExpressionState.INVALID:Lorg/bson/json/JsonScanner$RegularExpressionState;
            invokevirtual org.bson.json.JsonScanner$RegularExpressionState.ordinal:()I
            iconst_5
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.bson.json.JsonScanner$RegularExpressionState.IN_ESCAPE_SEQUENCE:Lorg/bson/json/JsonScanner$RegularExpressionState;
            invokevirtual org.bson.json.JsonScanner$RegularExpressionState.ordinal:()I
            iconst_2
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.bson.json.JsonScanner$RegularExpressionState.IN_OPTIONS:Lorg/bson/json/JsonScanner$RegularExpressionState;
            invokevirtual org.bson.json.JsonScanner$RegularExpressionState.ordinal:()I
            iconst_3
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.bson.json.JsonScanner$RegularExpressionState.IN_PATTERN:Lorg/bson/json/JsonScanner$RegularExpressionState;
            invokevirtual org.bson.json.JsonScanner$RegularExpressionState.ordinal:()I
            iconst_1
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            dup
            putstatic org.bson.json.JsonScanner.$SWITCH_TABLE$org$bson$json$JsonScanner$RegularExpressionState:[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

  static int[] $SWITCH_TABLE$org$bson$json$JsonScanner$NumberState();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 28
            getstatic org.bson.json.JsonScanner.$SWITCH_TABLE$org$bson$json$JsonScanner$NumberState:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.bson.json.JsonScanner$NumberState.values:()[Lorg/bson/json/JsonScanner$NumberState;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.bson.json.JsonScanner$NumberState.DONE:Lorg/bson/json/JsonScanner$NumberState;
            invokevirtual org.bson.json.JsonScanner$NumberState.ordinal:()I
            bipush 10
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.bson.json.JsonScanner$NumberState.INVALID:Lorg/bson/json/JsonScanner$NumberState;
            invokevirtual org.bson.json.JsonScanner$NumberState.ordinal:()I
            bipush 11
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.bson.json.JsonScanner$NumberState.SAW_DECIMAL_POINT:Lorg/bson/json/JsonScanner$NumberState;
            invokevirtual org.bson.json.JsonScanner$NumberState.ordinal:()I
            iconst_4
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.bson.json.JsonScanner$NumberState.SAW_EXPONENT_DIGITS:Lorg/bson/json/JsonScanner$NumberState;
            invokevirtual org.bson.json.JsonScanner$NumberState.ordinal:()I
            bipush 8
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.bson.json.JsonScanner$NumberState.SAW_EXPONENT_LETTER:Lorg/bson/json/JsonScanner$NumberState;
            invokevirtual org.bson.json.JsonScanner$NumberState.ordinal:()I
            bipush 6
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic org.bson.json.JsonScanner$NumberState.SAW_EXPONENT_SIGN:Lorg/bson/json/JsonScanner$NumberState;
            invokevirtual org.bson.json.JsonScanner$NumberState.ordinal:()I
            bipush 7
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic org.bson.json.JsonScanner$NumberState.SAW_FRACTION_DIGITS:Lorg/bson/json/JsonScanner$NumberState;
            invokevirtual org.bson.json.JsonScanner$NumberState.ordinal:()I
            iconst_5
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic org.bson.json.JsonScanner$NumberState.SAW_INTEGER_DIGITS:Lorg/bson/json/JsonScanner$NumberState;
            invokevirtual org.bson.json.JsonScanner$NumberState.ordinal:()I
            iconst_3
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic org.bson.json.JsonScanner$NumberState.SAW_LEADING_MINUS:Lorg/bson/json/JsonScanner$NumberState;
            invokevirtual org.bson.json.JsonScanner$NumberState.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.json.JsonScanner$NumberState.SAW_LEADING_ZERO:Lorg/bson/json/JsonScanner$NumberState;
            invokevirtual org.bson.json.JsonScanner$NumberState.ordinal:()I
            iconst_2
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic org.bson.json.JsonScanner$NumberState.SAW_MINUS_I:Lorg/bson/json/JsonScanner$NumberState;
            invokevirtual org.bson.json.JsonScanner$NumberState.ordinal:()I
            bipush 9
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            dup
            putstatic org.bson.json.JsonScanner.$SWITCH_TABLE$org$bson$json$JsonScanner$NumberState:[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
}
SourceFile: "JsonScanner.java"
NestMembers:
  org.bson.json.JsonScanner$NumberState  org.bson.json.JsonScanner$RegularExpressionState
InnerClasses:
  private final NumberState = org.bson.json.JsonScanner$NumberState of org.bson.json.JsonScanner
  private final RegularExpressionState = org.bson.json.JsonScanner$RegularExpressionState of org.bson.json.JsonScanner